Frage

In einer Ansicht in django ich random.random() verwenden. Wie oft muss ich random.seed() nennen? Einmal für jede Anforderung? Einmal für jede Jahreszeit? Eine Zeit, während der Webserver ausgeführt wird?

War es hilfreich?

Lösung

Anruf random.seed() selten, wenn überhaupt.

zufällig zu sein, müssen Sie die Zufallszahlengenerator erlauben ohne Berührung der Samen zu laufen. Die Reihenfolge der Zahlen ist, was zufällig ist. Wenn Sie die Samen ändern, starten Sie eine neue Sequenz. Die Startwerte können nicht sehr zufällig sein, was zu Problemen.

Je nachdem, wie viele Zahlen Sie benötigen, können Sie den Samen von /dev/random regelmäßig prüfen zurückgesetzt wird.

Sie sollten versuchen, die Samen zurücksetzen, bevor Sie die vorherigen Samen verbraucht haben. Sie haben nicht die vollen 32 Bits der Zufälligkeit erhalten, so dass Sie vielleicht den Samen nach dem Generieren 2 ** 28 Zahlen zurücksetzen möchten.

Andere Tipps

Sie den Samen nicht festgelegt.

Das einzige Mal, wenn Sie den Samen festlegen möchten, wenn Sie sicherstellen möchten, dass die gleichen Ereignisse immer wieder geschieht. Zum Beispiel, wenn Sie nicht wollen, die Spieler in Ihrem Spiel lassen betrüge können Sie die Samen speichern, und es dann gesetzt, wenn sie ihr Spiel laden. Dann, egal wie oft sie speichern + reload, gibt es immer noch die gleichen Ergebnisse.

Es hängt wirklich davon ab, was Sie die Zufallszahl für benötigen. Verwenden Sie einige Experimente, um herauszufinden, ob es einen Unterschied macht. Sie sollten auch bedenken, dass es tatsächlich ein Muster zu Pseudozufallszahlen ist. Macht es einen Unterschied für Sie machen, wenn jemand möglich, die nächste Zufallszahl erraten kann? Wenn nicht, Saatgut es einmal zu Beginn einer Sitzung oder wenn der Server zuerst startet.

Seeding einmal zu Beginn der Sitzung würde wahrscheinlich am meisten Sinn machen, IMO. Auf diese Weise wird der Benutzer einen Satz von Pseudozufallszahlen während ihrer Sitzung erhalten. Wenn Sie jedes Mal, wenn eine Seite Samen serviert wird, werden sie dies nicht garantiert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top