Random gibt immer die gleichen Zahlen
-
Random r = new Random(); Console.WriteLine(r.Next(255)+" "+r.Next(255)+" "+r.Next(255));
Wieso gibt dieser Code dreimal 240 aus....egal wie oft ich das Programm starte
-
Zufall? Es ist theoretisch nicht ausgeschlossen, dass der Aufruf von Random bei dir immer nur 240 ausgibt.
Bei mir schauts so aus, das Zeit-Raum Kontinuum scheint also soweit noch OK zu sein (für den Moment).:
[jojo] [~] mcs test.cs [jojo] [~] mono test.exe 140 2 40 [jojo] [~] mono test.exe 92 196 96 [jojo] [~] mono test.exe 73 204 237 [jojo] [~] mono test.exe 24 92 129 [jojo] [~] mono test.exe 114 83 74
-
Das Random immer die gleiche Zahl ausgibt ist normal, zumindest so wie Du random initialisiert hast!
Die genaue Deklaration weiß ich grad nicht aber Du mußt random noch mit der internen Zeit deines Rechners "verbinden" damit wirklich eine Zufallszahl erzeugt wird.
So, wir Du es deklariert hast, wird es immer 240 als "Zufallszahl" ausspucken. Das ist zu Debugger-Zwecken. Sc hau bitte in der Hilfe nach wie Du random mir der Rechnerzeit verknüpfst.
mfg
Maretin
-
hö ?
Laut Doku wird beim Konstruktor ohne Parameter "Der Standardstartwert wird aus der Systemzeit abgeleitet." (Wer das SDK drauf hat: ms-help://MS.NETFramework.v20.de/cpref2/html/C_System_Random_ctor.htm)Dieses Verhalten kann ich bei mir auch im Debugger feststellen...
Ferner steht drin:
"Die erzeugten Zahlen sind gleichverteilt, d. h. die Wahrscheinlichkeit, zurückgegeben zu werden, ist für alle Zahlen gleich."
-
byte[] randomNumbers = new byte[10]; new RNGCryptoServiceProvider().GetNonZeroBytes(randomNumbers); for (int i = 0; i < 10; i++) Console.WriteLine(randomNumbers[i]);