Warum ist die Ausgabe anders als das was im Bezeichner steht?

Leon K.

Mitglied
Hallo zusammen,
meine Aufgabe war eine Klasse Zufall und eine Klasse Wuerfel zu erstellen. Ich sollte zwei Würfelwürfe simulieren und noch ausgeben ob es ein Pasch ist oder nicht. Das hab ich auch gut hinbekommen, bloß meine frage ist, warum ich den Bezeichner maxAugenzahl(zeile 17 in WuerfelAnders) 6 + 2 definieren muss um eine Zahl zwischen 1 - 6 zu generieren. Ich habe auch schon größere Zahlen genommen und immer ist die größte generierte Zahl um zwei kleiner als der Bezeichner maxAugenzahl.
Danke schon mal im voraus.
 

Anhänge

  • Quelltext Wuerfel.png
    Quelltext Wuerfel.png
    46,4 KB · Aufrufe: 31
  • Quellcode Zufallszahl.png
    Quellcode Zufallszahl.png
    29 KB · Aufrufe: 44
Zuletzt bearbeitet:
Beste Antwort
K
Du solltest da einmal schauen, was Du da rechnest. Das zmin - zmax +1 klingt erst einmal dubios und erklärt wohl die Probleme, die Du hast.

Wenn Du eine Zahl von 1-6 willst, dann musst Du modulo 6 Rechnen um 0-5 zu bekommen und dann 1 addieren.

Die modulo 6 ist (max - min + 1) und nicht (min - max + 1)

Da also immer sehr sorgfältig die Rechnung aufstellen und genau prüfen. Das mit dem max +2 angeben, klappt, denn min - (max + 2) + 1 = min -max -1 und das ist -(max - min + 1).
Und x % y = x % (-y).
Wieso rufst du die Methode "zufallszahl" in "ganzePseudozufallszahl" auf? Das wirkt extrem umständlich und ist für mich schwer nachvollziehbar. Das klingt jetzt total harsch, aber die statische Klassenvariable ist Müll. Du hast Rückgabewerte, nutze diese
 
Zu anfang hatte ich das auch so, bloß ich wollte die Methode zufallszahl noch für andere Klassen verwenden und wollte keinen wertebereich nur von 1 - 6. Deswegen hab ich ne zweite Methode ganzePseudozufallszahl gemacht um nur ein bestimmten Zahlenbreich zu verwenden.
 

Anhänge

  • Wuerfel.png
    Wuerfel.png
    46,3 KB · Aufrufe: 39
  • Zufall.png
    Zufall.png
    26,4 KB · Aufrufe: 22
Du solltest da einmal schauen, was Du da rechnest. Das zmin - zmax +1 klingt erst einmal dubios und erklärt wohl die Probleme, die Du hast.

Wenn Du eine Zahl von 1-6 willst, dann musst Du modulo 6 Rechnen um 0-5 zu bekommen und dann 1 addieren.

Die modulo 6 ist (max - min + 1) und nicht (min - max + 1)

Da also immer sehr sorgfältig die Rechnung aufstellen und genau prüfen. Das mit dem max +2 angeben, klappt, denn min - (max + 2) + 1 = min -max -1 und das ist -(max - min + 1).
Und x % y = x % (-y).
 
Beste Antwort
Du solltest da einmal schauen, was Du da rechnest. Das zmin - zmax +1 klingt erst einmal dubios und erklärt wohl die Probleme, die Du hast.

Wenn Du eine Zahl von 1-6 willst, dann musst Du modulo 6 Rechnen um 0-5 zu bekommen und dann 1 addieren.

Die modulo 6 ist (max - min + 1) und nicht (min - max + 1)

Da also immer sehr sorgfältig die Rechnung aufstellen und genau prüfen. Das mit dem max +2 angeben, klappt, denn min - (max + 2) + 1 = min -max -1 und das ist -(max - min + 1).
Und x % y = x % (-y).
Achso danke jetzt funktioniert es.
 

Neue Themen


Zurück
Oben