aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden.

ijsnf

Mitglied
wie gehe ich es am besten an. Mein ansatz ist dass ich durch nextInt random zaheln für x und y bekomme aber nun komme ich nicht weiter. In einer welt aus zeilen und spalten soll eine figur in einem kasten sein und die summe der koordinate darf nur ungerade sein. Kann mir jemand helfen ?
 
Eine ungerade Summe aus Ganzzahlen erhältst du nur, wenn ein Summand gerade und der andere ungerade ist. Also musst du deine Zufallszahlen dahingehend überprüfen und nötigenfalls neue Zufallszahlen generieren. Die andere Möglichkeit ist, einfach immer die Summe zu bilden und dann nachzuschauen ob der Wert ungerade ist. Falls nicht, dann musst den Vorgang wiederholen.
 
Das geht noch einfacher: erzeuge zwei Zufallszahlen, bilde die Summe, ist sie gerade, dann addiere zu einer Zufallszahl einfach eine 1.

EDIT: Alternativ kann man den Spaß natürlich auch gleich richtig berechnen. Koordinate 1 wäre z. B. 2x und Koordinate 2 wäre 2y+1 wobei x und y zufällig bestimmt werden. Dann ist die Summe garantiert ungerade.
 
Das geht noch einfacher: erzeuge zwei Zufallszahlen, bilde die Summe, ist sie gerade, dann addiere zu einer Zufallszahl einfach eine 1.

EDIT: Alternativ kann man den Spaß natürlich auch gleich richtig berechnen. Koordinate 1 wäre z. B. 2x und Koordinate 2 wäre 2y+1 wobei x und y zufällig bestimmt werden. Dann ist die Summe garantiert ungerade.
... würde aber die Hälfte aller gültigen Möglichkeiten ausschließen. ob das dem Endergebnis zuträglich ist, ist nicht ersichtlich.
 
Eine ungerade Summe aus Ganzzahlen erhältst du nur, wenn ein Summand gerade und der andere ungerade ist. Also musst du deine Zufallszahlen dahingehend überprüfen und nötigenfalls neue Zufallszahlen generieren. Die andere Möglichkeit ist, einfach immer die Summe zu bilden und dann nachzuschauen ob der Wert ungerade ist. Falls nicht, dann musst den Vorgang wiederholen.
wie kann man denn den vorgang wiederholen ?
 
Du machst eine Schleife, die so lange zwei Zufallszahlen ermittelt, bis die Anforderung, die an diese gestellt wird, erfüllt ist.

Hier auch der klare Tipp: Arbeite mit Methoden, die alle relativ klein und übersichtlich sind. Das vereinfacht massiv, den Überblick zu behalten!
okay danke dann les ich mich noch bisschen rein und hoffe mal dass ich auf dem richtigen weg bin
 
ist es eine möglichkeit eine while schleife zu machen wo man macht, dass
while ( x+y%2 == 1) davor natürlich int x und int y mit den jeweiligen zufallszahlen ? Nur weiß ich nicht welche methoden man machen muss um die schleife so lange laufen zu lassen bis die zahlen stimmen
 
Du hast es doch schon fast ... Du brauchst die beiden Variablen. Dann eine Schleife, die mindestens einmal durchlaufen wird und die so lange läuft wie gilt (x+y) % 2 == 0 ist. (Die Klammern richtig setzen! Und dran denken: Die Bedingung besagt, wie lange die Schleife laufen soll!) In der Schleife musst Du x und y Zufallszahlen zuweisen.
 
int x = ThreadLocalRandom.current().nextInt(0, 7);
int y = ThreadLocalRandom.current().nextInt(0, 7);
while (1 == (x + y) % 2) {

}
so sieht der code aus aber weiß immernoch nicht was in die schleife muss aber hab alles mögliche versucht
 
Das ist nicht das, was formuliert wurde. Formuliere es immer erst in Worten! Code kommt immer erst ganz am Ende!

Also: Spiele es erst mit Stift und Papier durch, beschreibe es dann in Worten und dann - wenn Du verstanden hast, was da passieren soll - kannst Du anfangen irgend einen Code zu schreiben!

Und ich habe das ja schon formuliert - incl. Hinweisen zu der Bedingung!
 

Zurück
Oben