Wie generiert man mit с# gerade oder ungerade Zufallszahlen?

Chrisslybear5  05.09.2021, 12:27

Was ist deine Frage?

Alice530 
Fragesteller
 05.09.2021, 13:07

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.

Woher ich das weiß:Berufserfahrung

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.