Random.Next gibt keine Zufallszahl

7

Hallo Dies, wie ich das zufällige verwendet, aber es gibt immer "1" Index zu indexOfAChosenListCell.
Wenn ich es debugge, zeigt es andere Werte, aber beim regelmäßigen Laufen bekomme ich jedes Mal die gleiche Bewegung.
Was ist das Problem mit Random, es ist statisch nicht zufällig ...:)

%Vor%     
Mulder 27.03.2011, 00:46
quelle

8 Antworten

4

Ich würde vorschlagen, den Zufallszahlengenerator zu säen. Wie ich es verstehe, werden Sie bei jedem Start der Anwendung dieselbe pseudozufällige Zahlenfolge erhalten. Ich kann mich irren.

%Vor%     
Anx 27.03.2011, 01:15
quelle
21

make randomListCell eine Instanzvariable und initialisiere sie nur einmal - sonst bekommst du wieder die gleichen Zahlen.

Von MSDN :

  

Standardmäßig ist das Parameterless   Konstruktor der Random-Klasse verwendet   die Systemuhr, um ihren Seed zu generieren   Wert, während es parametrisiert ist   Konstruktor kann einen Int32-Wert annehmen   basierend auf der Anzahl der Ticks in der   aktuelle Uhrzeit.    Da die Uhr jedoch eine begrenzte Auflösung hat, verwenden Sie den parameterlosen Konstruktor zum Erstellen    verschiedene Zufallsobjekte in enger Abfolge erzeugen eine Zufallszahl     Generatoren, die identische produzieren     Sequenzen von Zufallszahlen.

    
BrokenGlass 27.03.2011 00:49
quelle
5

Random.Next(Int32)

  

Gibt eine nicht negative Zufallszahl weniger als das angegebene Maximum

zurück

Die größte Zahl, die Sie jemals bekommen werden, ist Count - 2 , wahrscheinlich nicht das, was Sie wollten.

    
Ben Voigt 27.03.2011 00:49
quelle
4

Deklarieren Sie Random als private Membervariable, instanziieren Sie es dann den Konstruktor, und rufen Sie Random.Next nur in Ihrer Methode auf.

    
jonsca 27.03.2011 00:49
quelle
3

Ihr Zufall sollte außerhalb der Funktion

erstellt werden %Vor%     
djeeg 27.03.2011 00:49
quelle
3

Erstellen Sie nicht jedes Mal einen neuen Random, wenn Sie eine neue Nummer benötigen. Wenn Sie eine Sequenz von verschiedenen Zufallszahlen wünschen, möchten Sie ein einzelnes Random-Objekt behalten und es wiederholt nach neuen suchen.

    
Ernest Friedman-Hill 27.03.2011 00:50
quelle
2

Ich werde den Unterschied zeigen:

%Vor%

Ergebnis: # DE2193

%Vor%

Ergebnis: # 999999

    
user666 09.04.2013 10:10
quelle
0

Deklarieren Sie ein zufälliges Objekt außerhalb der Funktion, so dass dasselbe Objekt zum Erzeugen einer neuen Zahl verwendet wird. Sie erstellen jedes Mal ein neues Objekt, das denselben Samen verwendet und Ihnen meistens die gleichen Zahlen gibt ...

%Vor%     
A.T. 21.05.2013 07:19
quelle

Tags und Links