none
Auswahl bei Random RRS feed

  • Frage

  • Hi,

    ich habe ein Problem bei der Erstellung von Zufallszahlen.

    Radom r = new Random();

    zahl = r.Next(1, 10)

    So erzeuge ich Zahlen von 1 - 9. Was ist wenn ich aber z.B. entweder eine 5, eine 7 oder eine 9 haben möchte?

    Dienstag, 29. Juli 2014 13:41

Antworten

  • In dem Du etwas rechnen lässt: Lasst Dir Zufallszahlen im Bereich 1 - 3 generieren, multiplizierst diese Zahl mit 2 und addierest noch eine 3 drauf.

    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Dienstag, 29. Juli 2014 14:45
  • Hi,

    oder du arbeitest mit Modulo

    %5

    %7

    %9

    Rest muss immer 0 ergeben

    grüße

    Cay

    • Als Antwort markiert James000001 Freitag, 1. August 2014 15:30
    Dienstag, 29. Juli 2014 14:47
  • Du kannst die Zufallszahl als index mit einem Array oder List<> benutzen.

             int[] zahlenAusZuWaehlen = new int[] { 5, 7, 9 };
             Random rand = new Random();
    
             int index = rand.Next(0, zahlenAusZuWaehlen.Length);
             int zahl = zahlenAusZuWaehlen[index];

    • Als Antwort markiert James000001 Freitag, 1. August 2014 15:30
    Mittwoch, 30. Juli 2014 02:28
  • zahl1 = r.Next(1, 6 * 2);

    Das ist nichts anderes als

    zahl1 = r.Next(1, 12);

    also Zahlen von 1 bis 12. Wenn Du nur gerade Zahlen von 2-12 haben willst =>

    zahl1 = 2 * r.Next(1, 6);


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert James000001 Freitag, 1. August 2014 15:30
    Mittwoch, 30. Juli 2014 07:11

Alle Antworten

  • In dem Du etwas rechnen lässt: Lasst Dir Zufallszahlen im Bereich 1 - 3 generieren, multiplizierst diese Zahl mit 2 und addierest noch eine 3 drauf.

    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Dienstag, 29. Juli 2014 14:45
  • Hi,

    oder du arbeitest mit Modulo

    %5

    %7

    %9

    Rest muss immer 0 ergeben

    grüße

    Cay

    • Als Antwort markiert James000001 Freitag, 1. August 2014 15:30
    Dienstag, 29. Juli 2014 14:47
  • Du kannst die Zufallszahl als index mit einem Array oder List<> benutzen.

             int[] zahlenAusZuWaehlen = new int[] { 5, 7, 9 };
             Random rand = new Random();
    
             int index = rand.Next(0, zahlenAusZuWaehlen.Length);
             int zahl = zahlenAusZuWaehlen[index];

    • Als Antwort markiert James000001 Freitag, 1. August 2014 15:30
    Mittwoch, 30. Juli 2014 02:28
  • Vielen Dank für die vielen Antworten. Nun möchte ich nur gerade Zahlen, und habe folgenden Code:

    zahl1 = r.Next(1, 6 * 2);

    Nun kommt es aber vor, dass auch einmal eine 3 oder 7 erzeugt wird.

    • Als Antwort markiert James000001 Freitag, 1. August 2014 15:30
    • Tag als Antwort aufgehoben James000001 Freitag, 1. August 2014 15:30
    Mittwoch, 30. Juli 2014 07:06
  • zahl1 = r.Next(1, 6 * 2);

    Das ist nichts anderes als

    zahl1 = r.Next(1, 12);

    also Zahlen von 1 bis 12. Wenn Du nur gerade Zahlen von 2-12 haben willst =>

    zahl1 = 2 * r.Next(1, 6);


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert James000001 Freitag, 1. August 2014 15:30
    Mittwoch, 30. Juli 2014 07:11
  • Stimmt. Vielen Dank
    Donnerstag, 31. Juli 2014 11:53