Zufallszahlen ohne doppelte_oder_ Vergleiche in Arrays
-
Hallo,
ich benötige 20positive Zufallszahlen in meinem Programm. Es werden zwar Zahlen erstellt, aber beim Überprüfen auf doppelte Zahlen versagt mein Programm.
Gleiche Werte im Array werden nicht erkannt.
Daher nun 2 Fragen:
1. Gibt es in VS Express schon was vorgefertigtes für einmalige Zufallszahlen?
2. Weshalb wird der Vergleich von Lotto[i]==Lotto[j] niemals true?/* Anfang Zufallszahlen*///---------------------------------------------------------------- array< int^ >^ lotto = gcnew array< int^ >( 20 );//Initialisieren: bool neueZahl; Random^ randObj = gcnew Random(); for(int i=0; i<20; i++) // 20 Zufallszahlen erzeugen { lotto[i]= gcnew int; do // wiederhole die Ziehung, bis die neue Zahl { // nicht mit einer der vorigen identisch ist. lotto[i] = randObj->Next(0,20);// Bereich der Zufallszahlen neueZahl = true; // positive Grundeinstellung //---------------------------------------------------- for (int j=0; j<i; j++) { // durchlaufe alle bisher gezogenen Zahlen if (lotto[i]==lotto[j]) { // Hier wurde ein Doppelter entdeckt // wird scheinbar nie durchlaufen neueZahl = false; } } } while (!neueZahl); } /* Ende Zufallszahlen*///------------------------------------------------------------------
In der Variablenüberwachung erscheinen regelmäßig doppelte Zufallszahlen.
wwipfel
-
lotto[i]==lotto[j]
vergleicht nur zwei zeiger, oder?ich denke, du meinst nur
array< int >^ lotto = gcnew array< int >( 20 );
-
Danke