Hi Leute, hab mal wieder ein kleines Problem.
Also wir sollen ein Programm entwickeln was eine Statistik aufstellt.
Es werden drei Würfel simuliert. Der Benutzer soll die Anzahl der Würfe eingeben. Dabei soll aufgezeichnet werden wie oft ein Pasch in der 1, 2, 3 Runde, 4-9 Runde, 10 - 49 Runde geworfen wurde.
Ich hoffe, dass ist erstmal soweit alles klar.
Ich habe das ganze so umgesetzt:
Die Variable int b stellt die Rundenanzahl da, ich denke der Rest ist aus dem Programm ersichtlich.
Ich scheine irgendwas mit b falsch zu machen. Bei 100000 müsste ungefähr folgende Werte ausgespuckt werden:
Bei mir kommen folgende Werte raus:
Da stimmt irgendwas nicht, ich komm nichtmal auf die Gesamtzahl der Versuche, hab jetzt schon soviel mit b rumgetüftelt, aber es will einfach nicht klappen.
Seht ihr den Fehler? Eigentlich müsste es so doch klappen.
Danke schonmal im Vorraus
Also wir sollen ein Programm entwickeln was eine Statistik aufstellt.
Es werden drei Würfel simuliert. Der Benutzer soll die Anzahl der Würfe eingeben. Dabei soll aufgezeichnet werden wie oft ein Pasch in der 1, 2, 3 Runde, 4-9 Runde, 10 - 49 Runde geworfen wurde.
Ich hoffe, dass ist erstmal soweit alles klar.
Ich habe das ganze so umgesetzt:
Die Variable int b stellt die Rundenanzahl da, ich denke der Rest ist aus dem Programm ersichtlich.
Java:
class StatistikWuerfeln{
public static void main(String[] args){
int n, runde1 = 0, runde2 = 0 , runde3 = 0, runde4_9 = 0 , runde10_49 = 0, runde50 = 0, b = 1;
int zahl1, zahl2, zahl3;
n = In.readInt();
for(int i = 0; i < n; ++i){
zahl1 = (int) (Math.random() * 6) + 1;
zahl2 = (int) (Math.random() * 6) + 1;
zahl3 = (int) (Math.random() * 6) + 1;
if((b == 1) && (zahl1 == zahl2) && (zahl2 == zahl3)){
runde1 += 1;
b = 0;
}
if((b == 2) && (zahl1 == zahl2) && (zahl2 == zahl3)){
runde2 += 1;
b = 0;
}
if((b == 3) && (zahl1 == zahl2) && (zahl2 == zahl3)){
runde3 += 1;
b = 0;
}
if((b >= 4) && (b <= 9) && (zahl1 == zahl2) && (zahl2 == zahl3)){
runde4_9 += 1;
b = 0;
}
if((b >= 10) && (b <= 49) && (zahl1 == zahl2) && (zahl2 == zahl3)){
runde10_49 += 1;
b = 0;
}
if((b > 50) && (zahl1 == zahl2) && (zahl2 == zahl3)){
runde50 += 1;
b = 0;
}
++b;
//Out.println("Zahl1: " + zahl1 + "Zahl2 :" + zahl2 + "zahl3: " + zahl3 + "b: " + b);
}
Out.println("Pasch in 1. Runde: " + runde1 + "-mal");
Out.println("Pasch in 2. Runde: " + runde2 + "-mal");
Out.println("Pasch in 3. Runde: " + runde3 + "-mal");
Out.println("Pasch in 4 bis 9 Runden: " + runde4_9 + "-mal");
Out.println("Pasch in 10 bis 49 Runden: " + runde10_49 + "-mal");
Out.println("Pasch in 50 oder mehr Runden: " + runde50 + "-mal");
}
}
Ich scheine irgendwas mit b falsch zu machen. Bei 100000 müsste ungefähr folgende Werte ausgespuckt werden:
Code:
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
Bei mir kommen folgende Werte raus:
Code:
100000
Pasch in 1. Runde: 72-mal
Pasch in 2. Runde: 69-mal
Pasch in 3. Runde: 63-mal
Pasch in 4 bis 9 Runden: 417-mal
Pasch in 10 bis 49 Runden: 1453-mal
Pasch in 50 oder mehr Runden: 677-mal
Da stimmt irgendwas nicht, ich komm nichtmal auf die Gesamtzahl der Versuche, hab jetzt schon soviel mit b rumgetüftelt, aber es will einfach nicht klappen.
Seht ihr den Fehler? Eigentlich müsste es so doch klappen.
Danke schonmal im Vorraus