generieren von Zufallszahlen ohne Wiederholung in c#
Wie kann ich Zufallszahlen ohne Wiederholung in C#. Ich habe ein array und will ich füllen jeden Raum mit zufälligen zahlen von 0 bis 9. Jedes Zimmer soll, haben verschiedene Nummern. Ich benutze diese:
for (int i = 0; i < 20; i++)
{
Random rnd = new Random();
int temp = 0;
temp = rnd.Next(0, 9);
page[i] = temp;
}
Aber ich bekomme die gleiche Zahl im jeweiligen Raum ist der array.
- "Ich möchte nur wissen, wie kann ich Zufallszahlen ohne Wiederholung in c#?" - Das ist nicht möglich. Eine zufällige Zahl ist, nehmen Sie zu wiederholen, sonst ist es nicht wirklich ein random number generator, sondern einen eindeutigen Wert-generator, ist trival zu code. Dein code ist auch fehlerhaft, weil Sie immer den gleichen Ausgangswert.
- Sie sprechen über die Zimmer, aber haben eine Seite array!? Meinst du jeden Eintrag im array Seite soll einzigartig sein? Verstehe ich Sie richtig, dass Sie wollen 20 stellen in Seite, die alle verschiedene?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit so einer kleinen Liste von zahlen, um von zu wählen, können Sie erstellen Sie einfach eine Liste mit allen von Ihnen und dann shuffle Sie.
Dein problem ist, dass Sie die Random-Objekt in jeder Schleife. Das Random-Objekt muss nur einmal erstellt werden. Versuchen Sie dies:
Dadurch wird eine einzigartige Auswahl von 1 bis rangeEx inclusive. Die nächsten zwei Zeilen erstellen Sie ein random number Generator und Aufträge, die die IEnumerable-Bereich mit einer randome-Nummer. diese wird dann aufgerufen mit ToArray und zurück!
Ausgabe: 24354132435213245415 (nicht wiederholend)
100% Recht
//Beachten Sie, einzigartig zu sein, [Max - Min > Größe] NICHT gleich