Wie generiert man mit с# gerade oder ungerade Zufallszahlen?
wie erstellt man ein Programm, welches eine Zufallszahl zwischen 1 und 100 ausgibt. Der Nutzer wird gefragt, ob er sich eine gerade oder eine ungerade Zahl wünscht. Die Ausgabe ist entsprechend des Wunsches.
Also wie man eine Zufallszahl generiert weiss ich, meine Frage ist wie kann man es so machen das je nach dem nur eine gerade bzw. eine ungerade Zahl generiert wird?
Was ist deine Frage?
Wie man eine Zufallszahl ausgibt die je nachdem gerade oder ungerade ist
2 Antworten
Umrechnen verfälscht das Ergebnis und immer wieder neu versuchen ist ineffizient.
Erstelle einfach zwei Arrays mit den erlaubten Zahlen von 0 bis 100, einmal nur die geraden Zahlen und einmal die ungeraden Zahlen. Je nach Wünsch des Nutzers wählst Du dann das richtige Array aus.
Danach erzeugst Du eine Zufallszahl von 0 bis zur Größe des gewählten Arrays. Die Zufallszahl, die Du bekommst, verwendest Du dann als Index und kannst damit den eigentlichen zufallswert aus dem Array abrufen.
Entweder du erzeugst gleichverteilte Zufallszahlen k zwischen 1 und 50 und gibst entweder 2k oder 2k-1 aus. In Java würde man z.B.
int k = (int)(Math.random()*50)+1 ;
int z = gerade? 2*k : 2*k-1 ;
schreiben.
Oder du erzeugst Zufallszahlen zwischen 1 und 100 und machst einen erneuten Versuch, wenn sie nicht die gewünschte Eigenschaft (gerade oder ungerade) hat.
Die erste Version liefert immer sofort das gewünschte Ergebnis.