So erzeugen Sie eine Reihe von Zufallszahlen in python-ohne Wiederholung

Ich möchte Zufallszahlen im Bereich (0..."MAX"). Ich würde gerne eine Schleife, die jedes mal durch die Schleife eine neue eindeutige Zufallszahl generiert wird (sollte sich nicht wiederholen). Die Schleife wird weiterhin eine insgesamt "MAX" - Zeiten. Es sollte "MAX" Anzahl der Zufallszahlen generiert in Summe. Wenn sortiert, die Werte sollten 0..."MAX"; keine Wiederholung.

Einschränkungen:
- Übernahme der MAX ist viel größer als int. (kein Speicher zum speichern der Anzahl Permutationen in Erinnerung)

Meine vorgeschlagene Lösung:
Wenn ich Samen des Generators von 0...MAX wäre, die mir erlauben, zu drucken jede eindeutige Zahl zwischen 0 und MAX, wie in der unten-Funktion? Angenommen es ist kein Speicherplatz zum speichern aller Nummern und mischen Sie Sie.

for x in range (0, MAX):
    random.seed(x)
    num=random.randint(0, MAX)
    print("seed = ",x, "    random number = ", num)

Wenn die Antwort ist, ja, dann würde diese generation reversibel sein (bekomme ich das Saatgut aus der Zufallszahl)? In dem Fall würde dies als eine Art Chiffre, die, wenn die Samen (Schlüssel) und die Strecke ist die gleiche Länge?

Können Sie erklären, was die Ausgabe, die Sie wollen? Ihr code ist ungültig, weil randint Argumente erfordert. Auch nichts in deinem code wird verhindert Wiederholungen. Warum sind Sie das seeding der generator von neuem bei jeder iteration?
Tnx. Behoben. Ich möchte eine neue Zufallszahl im Bereich von 0...Max, die für jede iteration und muss es nicht wiederholen Sie mit den früheren zahlen. Ich bin seeding es, weil ich vermute, dass eine eindeutige Saatgut ist eine eindeutige Nummer für die erste iteration der PRG, aber ich weiß nicht, was ist die max seed prg dauern würde, bevor Sie zu wiederholen. Angenommen es ist kein Speicher zum speichern von alle zahlen.
"als eine Art block cipher" - wenn Sie planen, verwenden Sie diese für jede Art von kryptographischen Zweck, nicht.
es einfach benutzen zu generieren, nicht wiederholen random aber neugierig, ob es passen Sie die Beschreibung für eine block-Chiffre.
Welche Anforderungen haben Sie für die "Zufälligkeit"? Muss es sein, gut genug für Simulationen? Kryptographie? Tut es, musst es nur einmalig auftretenden? Wie groß ist MAX?

InformationsquelleAutor user1144251 | 2014-02-13

Schreibe einen Kommentar