Durchschnittswert berechnen
-
@jasmin89
Mache deine Kontroll-printf vor dem break, da solltest du dann klarer sehen.
-
Außerdem ist deine Berechnung des Durchschnitts falsch!
Du rechnest:result = z1 / 1 + z2 / 2 + z3 / 3 + ...
Das ist aber nicht:
result = (z1 + z2 + z3 + ...) / num
-
@Schlangenmensch sagte in Durchschnittswert berechnen:
@jasmin89 sagte in Durchschnittswert berechnen:
if (z == 6) break;
Solange würfeln, bis eine 6 gewürfelt ist, dann abbrechen, die 6 aber nicht mitzählen. Die anderen Zahlen werden irgendwie komisch gewichten, je später sie kommen, desto weniger zählen sie.
Genau das möchte ich nicht. Ich möchte eben einmal Würfeln dann gucken ob die Zahl 6 ist, wenn nicht Zahl ausgeben, wenn Zahl 6, dann nochmals würfeln:
int roll() { int num = 0; double result = 0; while (1) { int z = rand() % 6 + 1; result += z; if (z != 6) break; // Wenn Zahl nicht 6 dann ausgeben num++; result += result = (+z) / num; } return result; }
-
@jasmin89 sagte in Durchschnittswert berechnen:
result += result = (+z) / num;
Bist du dir sicher, dass du weißt, was die Zeile tut?
Was soll die Funktion zurück geben, wenn eine 6 Gewürfelt wird? Was wenn zwei 6en gewürfelt werden?
-
Also du hast irgendein Random Programm geschrieben, das nichts mit der Aufgabe zu tun hat und dann wunderst du dich, das Ergebnis und Aufgabe nicht zueinander passen. Hmm, warum nur?
-
Ach.... Ich habe die Funktion nochmals neu gemacht: Tja das kommt als Anfänger mal vor
int roll() { int result = 0, z; do { z = rand() % 6 + 1; result += z; } while (z == 6); return result; }
Bin aber nicht sicher. Daher bin ich für eine kleine Unterstützung dankbar
-
@jasmin89 Wo bist du dir denn nicht sicher? Auf den ersten Blick sieht das erstmal gut aus.
-
@jasmin89 Das sieht richtig aus!
-
@Schlangenmensch sagte in Durchschnittswert berechnen:
@jasmin89 Wo bist du dir denn nicht sicher? Auf den ersten Blick sieht das erstmal gut aus.
Naja wenn ich das ganze ding nun in der main() simuliere, bin ich nicht ganz sicher ob der Durchschnittswert so korrekt ist. Mein Gedanke war dass ich vill. schon in der Funktion roll den Durchschnittswert berechnen sollte (aus der summe der Zahlen und den anzahl der durchläufen). Dann müsste ich in der main() die errechneten Durchschnittswerte aufsummieren und durch die Anzahl 100 dividieren.
Aber vill. ist da mein Gedankengang einfach nur falsch
-
@jasmin89
Das hängt halt von der Aufgabenstellung ab. Wenn der Durchschnittswert über alle Würfelwürfe gemacht werden soll und 7 (6+1) als zwei Würfe zählen, dann musst du den Durchschnitt wirklich über alle Würfe bilden. Wenn die 7 aber nur als ein Wurf zählt, dann darf er auch nur als ein Wurf gezählt werden.