Java Programm Statistik Wuerfeln

Status
Nicht offen für weitere Antworten.

sternchen

Mitglied
Hallo alle...

Ich bin ein richtiger Programmier Anfänger und weiß einfach nicht wie ich anfangen soll bei meiner aufgabe ;(

Schreiben sie ein java programm, das eine statistik über die anzahl der zum würfeln eines paschs benötigten runden erstellt. erfragen sie die zahl der auszuführenden versuche vom nutzer. es soll ausgegeben werden, in wievielen versuchen 1,2,3,4, bis 9, 10 bis 49, bzw mind 50 runden nötig waren.

das ganze mach ich mit hilfe einer schleife das ist mir klar nur welche bedingung soll ich wählen??? müssen es evtl 2 schleifen sein? einmal eine die den pasch abfragt sprich ( würfel1==würfel2 && würfel2=würfel3) achso ja das ganze soll mit 3 Würfeln geschehen.

LG
 

Final_Striker

Top Contributor
dann du die anzahl der versuche kennst, kannst du auch eine for-schleife benutzen.

in der schleife muss du für jeden würfel eine zufallszahl berechnen und diese mit deiner bedingung vergleichen.
 

sternchen

Mitglied
also ich habe bisher das hier aber ich komme nicht mehr weiter, ich denke mein Ansatz ist auch falsch?

class StatistikWuerfeln {

public static void main (String [] args) {

int wuerfel1, wuerfel2, wuerfel3, i=0;

wuerfel1 = (int) (Math.random() * 6) +1;
wuerfel2 = (int) (Math.random() * 6) +1;
wuerfel3 = (int) (Math.random() * 6) +1;


Out.println ("Bitte Anzahl gewuenschter Versuche eingeben: ");
int versuche= In.readInt();

for (i=0; i==versuche; i++){

wuerfel1 = (int) (Math.random() * 6) +1;
wuerfel2 = (int) (Math.random() * 6) +1;
wuerfel3 = (int) (Math.random() * 6) +1;

if (wuerfel1==wuerfel2 && wuerfel1==wuerfel3);{

i++;
}

Out.println ("Pasch in 1. Runde: "+ i +"-mal");
Out.println ("Pasch in 2. Runde: "+ i+ "-mal");
Out.println ("Pasch in 3. Runde: "+ i +"-mal");
Out.println ("Pasch in 4 bis 9 Runden: "+ i +"-mal");
Out.println ("Pasch in 10 bis 49 Runden: "+ i +"-mal");
Out.println ("Pasch in 50 oder mehr Runden: "+ i +"-mal");

}
}
}
 

Cola_Colin

Top Contributor
knapp über der Box zum Posten hat gesagt.:
Java™ Quelltext bitte in
Java:
-Tags schreiben: [JAVA-]currentPost.edit();[-/JAVA][/QUOTE]

Du kannst nicht i verwenden, um die erfolgreichen Würfe zu zählen, mach dir dafür eine weitere Variable, i ist schon er Schleifezähler.

[code=Java]if (wuerfel1==wuerfel2 && wuerfel1==wuerfel3);{

i++;
}

Das ; hinter der Bedingung hat da nichts verloren, bei der Bedingung selber bin ich mir nicht ganz sicher, du fragst ab, ob alle 3 Würfel gleich sind, ist das ein Pasch für dich ?
 

sternchen

Mitglied
ok das dann ändere ich das mal....

also ich hatte die idee einmal eine variabale in der schleife die einmal zählt wieviele pasche man hat und eine variable muss ja die runden zählen.

aber wie mach ich das mit der ausgabe so dass die versuche ja gleich der pasche sind. also muss die abbruchbedingung irgendwie sowas sein wie anzahl pasche= Versuche? oder ist da mein gedanke falsch?

als beispiel für die ausgabe wurde folgendes gegeben:

Bitte Anzahl gewuenschter Versuche eingeben: 100000
Pasch in 1. Runde: 2786- mal
Pasch in 2. Runde: 2663- mal
Pasch in 3. Runde: 2657- mal
Pasch in 4 bis 9 Runden: 14379- mal
Pasch in 10 bis 49 Runden: 52372- mal
Pasch in 50 oder mehr Runden: 25143- mal
 

ttplayer

Aktives Mitglied
Also du darfst i auf jeden Fall nicht als Schleifenzähler und als Paschzähler verwenden...
und das System.out.println() musst du noch ein bisschen ändern, sonst gibt es ja in jedem Durchlauf alles aus, oder?
 
S

SlaterB

Gast
die Anzahl der Versuche ist keine Abbruchbedingung, genau soviele 'Zählungen' werden durchgeführt,
eine 'Zählung' ist aber kein einzelner Wurf, sondern eine Menge von bis zu 50 Würfen, die mit einem Pasch oder bei 50 abgebrochen wird,

am besten hast du einen getrennten Aufbau, durch Methoden ideal erreichbar:
Java:
for ( i Anzahl Versuche) {
  int paschNach = fuehreEineZaehlungBis50Durch();
  // speichere Ergebnis dieser einen Zählung
}
in der Untermethode steht dann eine neue Schleife oder so


siehe auch
http://www.java-forum.org/java-basi...uerfeln-ueber-schleifen-abbruchbedingung.html
 

sternchen

Mitglied
oh man das verstehe ich nicht so wirklich. also ich muss die zählung der pasche doch auch mehr als 50 mal durchführen da steht ja 50 oder mehr runden? muss es dann so eine innere schleife sein die unendlich läuft und nicht terminiert ist?

i= anzahl Pasche
j= anzahl Runden

for (i=0; i< versuche; i++)
 

sternchen

Mitglied
näschte schleife wäre

for( j=1; j=j ; j++)

wäre es so möglich und wie ist es mit dem int PaschNach gemeint? das hab ich noch nicht so ganz verstanden?

ich bin ein echter anfänger, sorry :bahnhof:
 
S

SlaterB

Gast
bei 50 kannst du abbrechen, ganz egal ob es 55 oder 39432 Versuche sind, am Ende reicht dir die Information 'mehr als 50 Versuche',
natürlich kannst du die Schleife auch zu Ende laufen lassen, so wichtig ist das nicht,

> wäre es so möglich

von zwei Schleifendefinitionen kann man nichts sinnvoll sagen,

> wie ist es mit dem int PaschNach gemeint?

ignoriere es einfach erstmal, das macht erst Sinn, wenn du den Gesamtablauf kennst,

----

da du eigentlich nichts verstehst, wäre es eine Taktik, die Aufgabe zurückzustellen,
versuche erstmal ein Programm, welches genau 1x sooft würfelt, bis der Pasch kommt, und dann ausgibt, wieviel Versuche es waren


-------

und einer der allerbesten Tipps, die das Leben erleichtern:
NIE NIE NIE Benutzereingaben

in einem Testprogramm reicht
int versuche= 1;
statt
int versuche= In.readInt();

selbst wenn die Aufgabe Benutzereingaben verlangt, das kann man ganz am Ende einbauen, wenn alles andere funktioniert,
so hindert es einen nur
 

sternchen

Mitglied
so ich hab es jetzt mal mit einmal sooft versuche gemacht...

class VersucheWuerfel {

public static void main (String [] args) {


int wuerfel1, wuerfel2, wuerfel3;
int versuche=0; int i;


wuerfel1 = (int) (Math.random() * 6) +1;
wuerfel2 = (int) (Math.random() * 6) +1;
wuerfel3 = (int) (Math.random() * 6) +1;

for(i=1; !( wuerfel1==wuerfel2 && wuerfel1==wuerfel3); i++){

versuche += i;

wuerfel1 = (int) (Math.random() * 6) +1;
wuerfel2 = (int) (Math.random() * 6) +1;
wuerfel3 = (int) (Math.random() * 6) +1;

}
Out.println ("Versuche: " +versuche);

}
}


das wäre ja so richtig oder? hab es auch ausprobiert und es funtioniert =)

so jetzt hab ich das prinzip glaube verstanden... wie macht man das denn jetzt dür die 1. runde 2. runde usw:?
 

ttplayer

Aktives Mitglied
so ich hab es jetzt mal mit einmal sooft versuche gemacht...

class VersucheWuerfel {

public static void main (String [] args) {


int wuerfel1, wuerfel2, wuerfel3;
int versuche=0; int i;


wuerfel1 = (int) (Math.random() * 6) +1;Das passiert schon in der Schleife
wuerfel2 = (int) (Math.random() * 6) +1;
wuerfel3 = (int) (Math.random() * 6) +1;

for(i=1; !( wuerfel1==wuerfel2 && wuerfel1==wuerfel3); i++){

versuche += i;ich dachte, i wären die Versuche??

wuerfel1 = (int) (Math.random() * 6) +1;
wuerfel2 = (int) (Math.random() * 6) +1;
wuerfel3 = (int) (Math.random() * 6) +1;

}
Out.println ("Versuche: " +versuche);Das ist ja gar nicht bedingt...

}
}


das wäre ja so richtig oder? hab es auch ausprobiert und es funtioniert =)

so jetzt hab ich das prinzip glaube verstanden... wie macht man das denn jetzt dür die 1. runde 2. runde usw:?

Java:
int w1, w2, w3, Treffer = 0, Versuche = 50; //z.B.

for (int i = 0; i < Versuche ; i++)
{
    w1 = (int) (MATH.random() * 6 + 1);
    w2 = (int) (MATH.random() * 6 + 1);
    w3 = (int) (MATH.random() * 6 + 1);
    if (w1 = w2 && w1 = w3) Treffer++;
}
System.out.printf("Bei %d Versuchen gab es %d Paschs", Versuche, Treffer);
 
S

SlaterB

Gast
ttplayer, dein Programm macht was anderes, das verwirrt hier etwas, wobei auch nicht uninteressant,

die Aussage 'bei 100 Versuchen gab es 10 Paschs' bringt wenig, man möchte eher pro Pasch wissen, wieviele Versuche dafür nötig waren,
das kann man aus so einer großen Schleife bei geschickter Mitzählung auch herauslesen,
das Konzept mit zwei Schleifen scheint mir aber eingängiger

--------
@sternchen
soweit ganz gut,
am Ende hast du ja eine Ausgabe '1 Versuche' oder '50 Versuche' oder so, bzw. auch über 50, das solltest du auf 50 kürzen, oder auch erstmal egal,

diesen ganzen Code packst du nun in eine separate Methode, statt Out.println wird die Zahl zurückgegeben,
Aufruf der Methode:
int paschNach = fuehreEineZaehlungBis50Durch();
oder meinetwegen
int versuche = fuehreEineZaehlungBis50Durch();

der Rückgabewert ist eine Zahl von 1 bis 50 bzw. auch mehr als 50


nun beginnt der Rest des Programms, nun musst du diese Aktion x-mal wiederholen,
die Anzahl der Wiederholungen hieß in deinem früheren Programmen auch 'versuche', das ist schlecht, denn mit der Zahl 1-50 hat das nix zu tun,
es geht jetzt um die Anzahl der Wiederholungen

wie gesagt brauchst du also eine Schleife
Java:
for ( i Anzahl Wiederholungen) {
  int paschNach = fuehreEineZaehlungBis50Durch();
  // speichere Ergebnis dieser einen Zählung
}
so bekommst du x verschiedene oder auch gleiche Ergebnisse, die du dir alle merken musst
um am Ende auszugeben, wieviel von jeder Art dabei war,
da denk mal drüber nach
 
Zuletzt bearbeitet von einem Moderator:

sternchen

Mitglied
meinst du es so?

int wuerfel1, wuerfel2, wuerfel3;

wuerfel1 = (int) (Math.random() * 6) +1;
wuerfel2 = (int) (Math.random() * 6) +1;
wuerfel3 = (int) (Math.random() * 6) +1;


Out.println ("Bitte Anzahl gewuenschter Versuche eingeben: ");
int versuche= In.readInt();
int i //Anzahl der Wiederholungen

for (i=0; i< versuche; i++){


int versuche= fuehreEineZaehlungBis50Durch();

wuerfel1 = (int) (Math.random() * 6) +1;
wuerfel2 = (int) (Math.random() * 6) +1;
wuerfel3 = (int) (Math.random() * 6) +1;
}
}


bei der ausgabe muss ich dann Out.println( und dann irgendwas mit den versuchen?) hin schreiben? oder geht es mit 1. Runde 2.Runde??? eingentlich sollte ich ja i. Runde immer schreiben oder? aber wie mach ich es dann bei zb. 4-9. runde?
 
S

SlaterB

Gast
wie wenig kann ein Mensch verstehen?
der ganze Code aus dem Posting 11:48 macht genau eins: er berechnet eine Zahl 'versuche',
der ganze Code (hier nochmal: ganze ganze ganze ganze ganze ganze) soll in eine Methode

wenn das fertig ist, kann man die Methode aufrufen:
int versuche= fuehreEineZaehlungBis50Durch();
und zwar von woanders aus,

wie schaffst du es dann, diesen Aufruf genau in die Mitte des vorhandenen, für sich eigentlich abgeschlossenen fertigen Code einzufügen?
zu solchem Unverständnis kann ich nicht helfen

------

und ich schreib extra noch, dass es zwei verschiedene 'versuche' gibt,
zum einen die eingelesene Zahl, z.B. 100000
zum anderen das Ergebnis einer Pachschreibe, die Zahl 1-50,
die beiden Dinge haben nichts miteinander zu tun

auch das schaffst du wieder komplett durcheinanderzubringen,
wenn du das wenigstens auseinanderhalten könntest, wäre für einen Tag schon viel geschafft...
 
Zuletzt bearbeitet von einem Moderator:

Charlie

Mitglied
Hallo...
ich habe gerade erst mit Java begonnen, und mich würde interessieren, warum man hier noch +1 schreibt:

Java:
(int) (Math.random() * 6) +1;

Ist vielleicht eine blöde Frage, wäre aber äußerst dankbar für eine Antwort :oops:
 
I

IMartin

Gast
@Charlie:
Code:
Math.random()
liefert einen Wert >= 0 und < 1
Code:
(int)(Math.random()*6)
liefert also entweder 0, 1, 2, 3, 4 oder 5
Code:
(int)(Math.random()*6) + 1
entsprechend 1, 2, 3, 4, 5 oder 6 wie bei einem Würfel.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
M JAVA Programm in Website einbinden Java Basics - Anfänger-Themen 19
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
N Best Practice How can I creat a programm with java under windows 10 in order to open an spreadsheet in libreoffice calc format Java Basics - Anfänger-Themen 11
P Wie für EIN Java Programm von 64bit Java (=Standard) auf 32bit Java Installation (Windows) umschalten? Java Basics - Anfänger-Themen 6
X Kurzes Java-Programm, das sich komisch verhält Java Basics - Anfänger-Themen 6
G Java-Programm Terminal Java Basics - Anfänger-Themen 2
Dimax Java Programm mit exec starten Java Basics - Anfänger-Themen 5
I Java Programm sieht wie exe aus. Java Basics - Anfänger-Themen 3
G Java-Programm weitergeben Java Basics - Anfänger-Themen 14
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
W Java Programm mit API Anbindung Java Basics - Anfänger-Themen 2
D Java Programm mit JavaScript einbinden Java Basics - Anfänger-Themen 8
X Java Programm MacOS Java Basics - Anfänger-Themen 1
F Java Programm schließen Java Basics - Anfänger-Themen 1
M Java Methode editierbar machen im Programm Java Basics - Anfänger-Themen 62
B Mit Java anderes Java Programm starten Java Basics - Anfänger-Themen 3
J Java Programm Java Basics - Anfänger-Themen 29
B Java Eclipse Programm in einer Batch ausführen Java Basics - Anfänger-Themen 3
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
S Bestehendes Java Programm, einen festen Wert ändern Java Basics - Anfänger-Themen 17
L Java Zip-Programm Java Basics - Anfänger-Themen 16
C Input/Output Textdatei vom Java-Programm nicht geladen Java Basics - Anfänger-Themen 58
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
B Brauch Hilfe für Java Programm Java Basics - Anfänger-Themen 12
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
L Java-Programm kompilieren Java Basics - Anfänger-Themen 24
D Java BlueJ Programm wiederholen? Java Basics - Anfänger-Themen 6
M Java Programm: Lottozahlen Java Basics - Anfänger-Themen 4
I Java Programm Java Basics - Anfänger-Themen 12
F Java Programm öffnen Java Basics - Anfänger-Themen 3
A Erste Schritte Programm in Shell mit bestimmter Java-Version aufrufen Java Basics - Anfänger-Themen 10
J Pdf-Dokument im Java-Programm öffnen Java Basics - Anfänger-Themen 3
M Chat Programm in Java Java Basics - Anfänger-Themen 1
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
M Mein erstes Java Programm Java Basics - Anfänger-Themen 5
L Herunterladbares Java Programm in bestimmten Ordner speicher Java Basics - Anfänger-Themen 3
L Konsole öffnen und Java Programm darin ausführen Java Basics - Anfänger-Themen 4
C Programm JAR startet nicht - Could not create the Java Virtual Machine Java Basics - Anfänger-Themen 4
T CMD mit Java Programm öffnen? Java Basics - Anfänger-Themen 5
B Java Programm ohne statische Main Methode aufrufen Java Basics - Anfänger-Themen 5
G Input/Output CSV-Datei über Java-Programm erstellen, Zeichensalat Java Basics - Anfänger-Themen 3
F Java-Programm gibt in Eingabeaufforderung nichts aus Java Basics - Anfänger-Themen 4
M Erste Schritte Java programm unable to access Java Basics - Anfänger-Themen 10
? Klassen einfacher Fehler in einem Java Programm. Java Basics - Anfänger-Themen 5
? Methoden Fehler in einfachem Java Programm. Java Basics - Anfänger-Themen 9
T Selbst erstellten Dateityp mit java Programm assoziieren? Java Basics - Anfänger-Themen 4
S Programm wie Java? Java Basics - Anfänger-Themen 10
M C++ programm (kompiliertes) aus java aufrufen Java Basics - Anfänger-Themen 7
A Eclipse - Java-Programm exportieren für Ubuntu TLS 10 Java Basics - Anfänger-Themen 9
F Java-Programm aus CMD ausführen mit Parametern Java Basics - Anfänger-Themen 7
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
P Probleme Java Programm Java Basics - Anfänger-Themen 6
MiMa Lauffähiges Java Programm erstellen Java Basics - Anfänger-Themen 4
J C++ Bitmanipulations-Programm in Java umwandeln Java Basics - Anfänger-Themen 10
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Externes Java Programm starten Java Basics - Anfänger-Themen 9
D Java Programm auf Kommandozeile durchführen Java Basics - Anfänger-Themen 12
H Ich kann mein Java Programm Test.class nicht ausführen Java Basics - Anfänger-Themen 6
M Kann Java Programm nicht starten Java Basics - Anfänger-Themen 7
V Java Chat Programm Problem mit IP Addresse Java Basics - Anfänger-Themen 7
S Hilfe zu Java-Programm und JUnit Test!! Java Basics - Anfänger-Themen 5
B Mit Java-Programm Daten aus MySQL-Datenbank auslesen, lokal und nicht lokal. Java Basics - Anfänger-Themen 10
P Java Programm in Powerpoint Java Basics - Anfänger-Themen 5
Y Java Programm URL und String Vergleich! Java Basics - Anfänger-Themen 4
U Java-Programm auf einem Server starten Java Basics - Anfänger-Themen 33
M Kann mein Java Programm nicht starten Java Basics - Anfänger-Themen 6
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
P Java Programm von außen aufrufen Java Basics - Anfänger-Themen 8
D Java programm durch vorgegebene bat ausführen Java Basics - Anfänger-Themen 3
Crashbreaker Eigene Java-Programm ohne hilfe des CMD starten Java Basics - Anfänger-Themen 11
S Interpreter-Fehler Java - Programm ausführen! Java Basics - Anfänger-Themen 12
B Grafische Oberfläche für Java-Programm Java Basics - Anfänger-Themen 5
T Mac OSX - Programm aus Java öffnen Java Basics - Anfänger-Themen 3
H Wie kann ich offline ein Java Programm abspeichern Java Basics - Anfänger-Themen 14
U Visual-Basic Programm mit Java steuern Java Basics - Anfänger-Themen 8
K In MySQL Select Variablen aus Java Programm benutzen Java Basics - Anfänger-Themen 8
J Java-Programm starten Java Basics - Anfänger-Themen 6
C java programm mit Texten, speichern und so Java Basics - Anfänger-Themen 3
W Java-Programm als Icon mit Doppelklick einfach öffnen ? Java Basics - Anfänger-Themen 3
B Java-Programm-Dienst sauber beenden Java Basics - Anfänger-Themen 6
P Java Programm geschrieben ... und nun? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben