Pascalsches Dreieck ohne array und rekursion

t_daniel

Mitglied
Hallo,

also ich habe folgende Frage oder auch Problem. Ich möchte das Pascalsche Dreieck ausgeben. Möchte aber dazu kein arrays und rekursionen verwenden. Aber irgendwie komme ich bis dato auf keinen grünen Zweig mit der Berechnung. Ich hoffe mir kann da jemand weiterhelfen. Hier mal mein Programm bis jetzt.

Java:
public static int pascalsches(int zeile, int spalte) {
		if (spalte==0 || spalte==zeile)								
			return 3;										
			return pascalsches(zeile-1,spalte) + pascalsches(zeile-1,spalte-1);
	}
public static void main(String[] args) {
String leerzeile="";
char l= ' ';
int i=50;
			
	for (int zeile=0; zeile<10; zeile++) {
		leerzeile="";
		i-=2;
	for (int a=i; a>=0;a--) {
		leerzeile+=""+l;
	}
	System.out.printf(leerzeile);
	for (int spalte=0;spalte<=zeile;spalte++){
		System.out.printf("%4d", pascalsches(zeile,spalte));
	}
System.out.println();
}
int wert = pascalsches(2, 1); //spätere Zeile die angezeigt wird
if (wert==0)
	System.out.println("Eingabe ist fehlerhaft");
else {
System.out.println("________________________" );
System.out.println("Zahl ist " + wert);
}
}
}

Also das ist mein Code soweit. Ich hoffe ihr könnt mir weiterhelfen.

Liebe grüße
 
G

Gast2

Gast
Du kannst jede Zahl innerhalb des pascalschen Dreiecks anhand der Zeile i und Spalte j berechnen. Die zahl die du suchst ist dann einfach "i über j". Du musst dir also nicht die vorherigen Zahlen in nem array merken.
Alles was du brauchst wäre so ne Methode wie:
Code:
printZeile(int zeile)
 

modolo

Mitglied
@EikeB:

Habe das gleiche Problem und muss leider gestehen, dass ich deinen Beitrag nicht sooo ganz verstehe.
Das mit dem Binomialkoeffizient scheint soweit kein Thema zu sein.
Nun stehe ich ein wenig auf dem Schlauch wie ich beides verbinden soll.
Wie schaffe ich es ohne Array dem Programm zu sagen:
Rechne den Bino aus und gebe für 6 Zeilen das Dreieck aus!
Sprich, dass es eben wie folgt aussieht

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

Schonmal Danke im Voraus
 
G

Gast2

Gast
Jede Zahl in dem Dreieck lässt sich ja als Binomialkoeffizient darstellen. die Zahl in Zeile n und Spalte k entspricht "n über k", n und k beginnen jeweils bei 0.

Mit dem Wissen lassen sich relativ einfach die nötigen Methoden schreiben. Die erste wäre z.b. printRow(int row) die uns eine beliebige Zeile des Pascalschen Dreicks ausspuckt:
Java:
	private void printRow(final int row) {
		for (int i = 0; i <= row; i++) {
			int binCoeff = binomialCoefficient(row, i);

			System.out.print(binCoeff + " ");
		}
	}
Nun brauchen wir nur noch eine Methode die uns alle Zeilen ausgibt, die könnte z.b. so aussehen:
Java:
	public void printPascalTriangle(final int rows) {
		for (int i = 0; i < rows; i++) {
			printRow(i);
			System.out.println();
		}
	}
Rufen wir diese Methode nun auf, wird das komplette Pascalsche Dreieck mit den Zeilen 0 bis rows-1 auf der Konsole ausgegeben. Die Methode
Code:
binomialCoefficient
muss dann natürlich auch noch entsprechend implementiert werden, da gibts ja mehrere Ansätze.
 

modolo

Mitglied
Das wäre ja dann die main class
public static void main (String[] args)

anschließend die Binoclass mit n und k
public static void long binomialkoeffizient (long n, long k)

und dann die Klassen die du netterweise für mich vorbereitet hast. Dafür auch schon mal Danke :).

right? Oder lieg ich da falsch?
 
S

SlaterB

Gast
> public static void main (String[] args)
kommt in quasi jeden Programm vor

> public static void long binomialkoeffizient (long n, long k)
ergibt sich aus dem geposteten Code, richtig, nicht notwendigerweise statisch, aber durchaus denkbar

insofern: right, ja, viel zu bestätigen gab es da aber nicht
 

modolo

Mitglied
Oh man, mir hängt das scheinbar höher als gedacht :-(

Mit folgendem Quellcode hätte man ohne Arrays geschafft.

Java:
package mypack;

public class pascal {

			public static int function_pascal(int zeile, int spalte) {
			if (spalte==0 || spalte==zeile)
			return 1;
			return function_pascal(zeile-1,spalte) + function_pascal(zeile-1,spalte-1);
			}

			public static void main(String[] args) {
			for (int zeile=0; zeile<7; zeile++) {
			for (int spalte=0; spalte<=zeile; spalte++) {
			System.out.print(function_pascal(zeile, spalte) + " ");
			}
			System.out.println();
			}
			}
	}
Ist zwar nicht umbedingt sooo schön formatiert von der Ausgabe her, aber das wäre ja schon der ganz Spass. Wäre da nicht noch die Anforderung das man mit diesem verdammten Binomialkoeffizienten schaffen soll.
Und da ist genau mein Problem. Wie schreibe ich das Programm jetzt so um, dass ich den Bino noch mit rein nehme das ganze dann ohne Arrays arbeitet und ach so, ja rekursiv darf es ja auch nicht sein ...
Verdammte Axt, ich verzweifel hier echt noch...
???:L
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
Binomialkoeffizient kann man doch berechnen, lustig Zahlen multiplizieren
Binomialkoeffizient ? Wikipedia

denke dabei unbedingt an optimiere Varianten, sonst sehr schnell Überlauf des Zahlenbereichs,
bei (10 über 9) nicht 10! und 9! ausrechnen und teilen sondern kürzen

Rekursion brauchst du in diesem Fall ansonsten auch gar nicht, insofern keine Sorgen, Schleife über Schleife und Werte korrekt normal berechnen
 

modolo

Mitglied
Sag SlaterB... Sorry, bin noch absoluter Neuling...
Habe jetzt für den Bino folgenden Code.
Und bin jetzt am überlegen wie ich die zwei zusammenschraube. Ist dies möglich oder sagst du, dass ich das wieder verwerfen soll und die sache anders betrachten muss

package mypack;

public class PascalschesDreieck {

public static void main(int zeile, int spalte){
int n = 4;
int k = 3;
int x = n-k;
int test = 5;
int nfakultaet = 1;
int kfakultaet = 1;
int nkfakultaet = 1;

for (int i= 1; i<= n; i++)
nfakultaet=nfakultaet*i;
System.out.println("Die Fakultaet von " +n +" ist " +nfakultaet);

for (int i= 1; i<= k; i++)
kfakultaet=kfakultaet*i;
System.out.println("Die Fakultaet von " +k +" ist " +kfakultaet);

for (int i= 1; i<= x; i++)
nkfakultaet=nkfakultaet*i;
System.out.println("Die Fakultaet von " +x +" ist " +nkfakultaet);

test= nfakultaet/(kfakultaet*nkfakultaet);
System.out.println(test);

if (n<0 || k<0 || n<k)
{System.out.println("Ausgabe nicht moeglich");
}
else
System.out.println();

}
}

Schon mal Danke für die bisherige Hilfe... Gibt mir wenigstens nen kleinen Lichtblick
 
S

SlaterB

Gast
ohne Listen/ Arrays wird die Optimierung vielleicht hässlich, falls es bisher schon klappt, soll es mir recht sein,
6! ist das höchste?

denke daran [ JAVA ]-Tags zu verwenden, steht doch überall in roter Schrift..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N lwjgl Projection Matrix löscht Dreieck Allgemeine Java-Themen 1
temi Valides Dreieck erzeugen Allgemeine Java-Themen 6
U Java Dreieck Winkel Allgemeine Java-Themen 1
R Dreieck-Dreieck Kollision (triangle-triangle intersection) Allgemeine Java-Themen 11
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
O Maven ein externes jar laden ohne die Applikation neu zu kompilieren Allgemeine Java-Themen 4
Mike80 Processing Programm fiert ohne Arduino ein Allgemeine Java-Themen 2
T Datum OHNE Uhrzeit Zeitzonen-übergreifend Allgemeine Java-Themen 4
N mit sysout, ohne sysout Allgemeine Java-Themen 17
O Programmierprüfung auf moodle ohne Hilfsmittel... Allgemeine Java-Themen 23
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
M Switches ohne String Allgemeine Java-Themen 18
A Java JDK ohne Oracle Konto Allgemeine Java-Themen 5
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
N E-Mail Validator (ohne Regex!) Allgemeine Java-Themen 7
A Java ListNode Element einfügen ohne Bibliothek Allgemeine Java-Themen 6
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
Thallius Zeitzone zu einem LocalDate hinzufügen aber ohne es zu ändern... Allgemeine Java-Themen 2
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
X Adjazenzliste ohne ArrayList Allgemeine Java-Themen 6
N Keylistener ohne Dazugehörige Gui Allgemeine Java-Themen 6
P Input/Output entfernte Datei mit Java öffnen ohne Download Allgemeine Java-Themen 5
Kirby.exe Keyboard Input ohne Enter Allgemeine Java-Themen 43
T Abgeleitetes Interface public ohne Schlüsselwort "interface"? Allgemeine Java-Themen 3
S Potenzieren mit rationalen Potenzen ohne Math.pow Allgemeine Java-Themen 16
F Timestamp in Oracle ohne Formatierung reinbekommen Allgemeine Java-Themen 7
M Drucken ohne Dialog Allgemeine Java-Themen 1
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
J .java-Dateitext Compile zur Laufzeit ohne File Allgemeine Java-Themen 15
O Zugriff auf mySQL ohne JDBC Allgemeine Java-Themen 3
S Input/Output Jave.utill.logging ohne Default-Locale also in Englisch Allgemeine Java-Themen 3
J ftp - delete file ohne appache Allgemeine Java-Themen 8
H float Berechnung: Ergebnis ohne wissenschaftliche Notation Allgemeine Java-Themen 5
offi Excel mit Inhalten aus DB öffnen ohne zu speichern Allgemeine Java-Themen 8
E String in Zahl umwandeln, ohne Befehl Integer.parseInt Allgemeine Java-Themen 3
S Java Plugin System (ohne OSGI) Allgemeine Java-Themen 10
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
Aruetiise Swing JOptionPane ohne denn Thread zu pausieren Allgemeine Java-Themen 1
RalleYTN Audiolänge einer MP3 Datei erhalten ohne diese vollständig zu laden Allgemeine Java-Themen 15
RalleYTN 2D-Grafik Bild ohne AWT, Swing und JavaFX rotieren Allgemeine Java-Themen 12
A BufferedReader ohne System.in Allgemeine Java-Themen 9
E Programm ohne Windowsrand(Vollbild) ? Allgemeine Java-Themen 5
B Applikation ohne (direkt)Java installiert zu haben auszuführen Allgemeine Java-Themen 8
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
OnDemand JavaMail ohne Anhang senden Allgemeine Java-Themen 4
N String ins Clipboard kopieren ohne makieren. Allgemeine Java-Themen 12
T Ziffernsumme ohne String Operatoren Allgemeine Java-Themen 4
E Threads Ausführung in Threads ist langsamer als ohne Threads Allgemeine Java-Themen 13
R NullPointerException Ohne Grund Allgemeine Java-Themen 5
RalleYTN JPEG mit CMYK(ohne JAI oder TwelveMonkeys!) Allgemeine Java-Themen 0
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
HarleyDavidson Input/Output Heruntergeladene Datei direkt nach dem Download öffnen ohne zu speichern Allgemeine Java-Themen 1
Y String to Double ohne ParseDouble Allgemeine Java-Themen 11
S Methoden ohne Methodenkopf ?! Allgemeine Java-Themen 5
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
A Linux: Native Library mit Rootrechten ohne Prozess mit sudo zu starten Allgemeine Java-Themen 1
T Threads Input/Output im Thread - Datei ohne Inhalt Allgemeine Java-Themen 1
A Konstrukt ohne Main für Xml-Parser Allgemeine Java-Themen 1
S Performante Visualisierung groẞer Datenmengen (ohne JFreeChart) Allgemeine Java-Themen 22
M Permutation ohne Wiederholung mit rekursion Allgemeine Java-Themen 4
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
F File.listFiles ohne .sort Allgemeine Java-Themen 6
H Unicode ausgeben ohne Umwandlung - geht das? Allgemeine Java-Themen 3
L iText PDF-Generierung ohne Speichern Allgemeine Java-Themen 10
R Wie schaffe ich es, dass java zB 100 zählt ohne ständig "else if" hinschreiben zu müssen? Allgemeine Java-Themen 7
T Zwei Wortendungen vergleichen ohne .equals Allgemeine Java-Themen 10
J Array ohne vorher festgelegte Länge oder Wie wandle ich Zahlen in Zahlen mit anderen Basen um? Allgemeine Java-Themen 6
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
T Programm bleibt ohne Fehler stehen Allgemeine Java-Themen 4
J log4j ohne propertiedatei Allgemeine Java-Themen 4
D Classloader ohne Package Allgemeine Java-Themen 10
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
K print() geht nicht ohne println() Allgemeine Java-Themen 3
S KeyListener ohne Focus - Wie? Allgemeine Java-Themen 2
Rudolf JUnit4-Testklasse erweitern ohne zu vererben Allgemeine Java-Themen 6
W Passwort Clientseitig sicher ablegen ohne Hash Allgemeine Java-Themen 2
S Antlr Grammatik übersetzt ohne Fehler, dennoch wird Zahl nicht als Eingabe erkannt Allgemeine Java-Themen 4
A Java ohne Java-Installation? Allgemeine Java-Themen 5
H Apache POI HSSF - Farbe/Rahmen etc. ohne Style-Vorlage? Allgemeine Java-Themen 4
E KeyListener ohne GUI Allgemeine Java-Themen 6
Guybrush Threepwood Pattern gesucht: Punkt ohne Leerzeichen dahinter Allgemeine Java-Themen 3
S Entfernen von allen Nicht-Buchstaben chars aus einem String ohne Regex..? Allgemeine Java-Themen 10
K Vererbung ohne Basisklasse zu kennen Allgemeine Java-Themen 20
B File umbennen ohne Extension zu aendern Allgemeine Java-Themen 2
J Laden von JAR Files geht ohne ADMIN Rechte sehr langsam Allgemeine Java-Themen 6
A Methoden ohne Referenzen finden Allgemeine Java-Themen 9
P Tastatur abfrage ohne KeyListener Allgemeine Java-Themen 3
L JAR verändern - JAVAC soll einfach nur kompilieren, ohne Prüfungen Allgemeine Java-Themen 16
S auf public void Methode zugreifen ohne static Allgemeine Java-Themen 11
N Guice - Ohne injector.getInstance Allgemeine Java-Themen 2
S Datei aus zip öffnen ohne zip zu entpacken Allgemeine Java-Themen 4
J Rechtsverschiebung OHNE Vorzeichenerweiterung Allgemeine Java-Themen 2
R Input/Output Objekte speichern ohne überschreiben Allgemeine Java-Themen 7
S Strg+V ohne Fokus simulieren! Allgemeine Java-Themen 12
T String in Date parsen (*ohne* bekanntes Format) Allgemeine Java-Themen 8
S Wörter ohne Leerzeichen erkennen Allgemeine Java-Themen 5
W Input/Output Drucken ohne GUI Allgemeine Java-Themen 11
M Klassen Zugriff auf getMethode ohne Klasse zu erzeugen Allgemeine Java-Themen 6
Kr0e Reflection - Instanz einer Klasse erstellen, ohne Default-Constructor Allgemeine Java-Themen 15

Ähnliche Java Themen

Neue Themen


Oben