![]() |
Deterministischer Pseudozufallszahlengenerator gesucht
Aloha,
ich entwickle im Moment ein Spiel und möchte bei diesem Spiel "zufällig" Levels generieren können. Bisher nutze ich dazu einfach ein Math.random() (Java), was mir eine double-Zahl zw. 0 und 1 liefert. Jetzt habe ich mir aber überlegt, dass ich zwecks Vergleichbarkeit in einer Online-Highscore-Liste bei allen Spielern dieselben zufälligen Levels erzeugen will. Deshalb möchte ich mir einen möglichst einfachen Pseudozufallszahlengenerator basteln, der je nach Startwert (Seed) eine Folge von bestimmten, aber eben zufällig erscheinenden, Zahlen zurückliefert. Setze ich den Startwert irgendwann wieder auf denselben alten Startwert, kommen dieselben "Zufalls"zahlen. Da gibts natürlich hunderte Möglichkeiten, aber vielleicht hat ja schon jemand Erfahrung und kann wertvolle Tipps geben? Wenn man "einfach mal so" aufm Papier sich was ausdenkt und das dann umsetzt, gibt das wohl keine wirklich guten Zahlen (Gleichverteilung, Wiederholungen, erkennbare Nicht-Zufälligkeit, ...). Andererseits will ich auch keine 20 Seiten Quellcode portieren, zumal es möglichst performant laufen sollte. Schöne Grüße flo |
Re: Deterministischer Pseudozufallszahlengenerator gesucht
Zitat:
//edit: Oh, ich sehe gerade: Java. Was der Zufallszahlengenerator von Java macht, weiss ich leider nicht. Sollte aber vom Prinzip her auch nichts anderes sein. |
Re: Deterministischer Pseudozufallszahlengenerator gesucht
In Java:
Delphi-Quellcode:
Wie man
import java.util.Random;
Random generator2 = new Random( 19580427 ); // irgendein long int als Seed ![]() |
Re: Deterministischer Pseudozufallszahlengenerator gesucht
Bei Java hast du aber ein Problem.
Da ja der "Zufalls"Generator der Java-Runtime-Library verwendet wird und sich die Berechnung des Zufalls in verschiedenen Version der JRE unterscheiden kann, kann es vorkommen, daß auf unterschiedlichen PCs auch eine unterschiedliche Zahlenfolge enstehen kann, selbt wenn der Startwert (Seed) gleich ist. |
Re: Deterministischer Pseudozufallszahlengenerator gesucht
Zitat:
@himitsu: Hm, das ist natürlich ärgerlich .. muss mir da mal was überlegen. Aber im Moment reicht die Lsg von Nikolas vollkommen. |
Re: Deterministischer Pseudozufallszahlengenerator gesucht
im Prinzip kannst dir auch einfach einen eigenen bauen ... wie der von Delphi arbeitet, sieht man in einigen DP-Threads
|
Re: Deterministischer Pseudozufallszahlengenerator gesucht
Schaut doch mal in die Dokumentation zu java.util.Random:
Zitat:
|
Re: Deterministischer Pseudozufallszahlengenerator gesucht
also wenn der Algo unveränderlich festgelegt ist, dann gibts da keine Probleme.
z.B. in der Delphi-Hilfe steht schon seit vielen Jahren, daß man den Generator aus soeinem Grund nicht für Verschlüsselungen nehmen so, aber bis jetzt hat weder Borland noch Codegear oder Embarcadero da was umgebaut :roll: |
Re: Deterministischer Pseudozufallszahlengenerator gesucht
Ich würde dazu spontan mal mehr auf sowas wie lineare Abhängigkeit der Pseudozufallszahlen und die Tatsache, dass man den Algorithmus weiter- und rückrechnen kann, tippen. :wink:
Gute Zufallszahlen für Verschlüsslungen müssen möglichst viel Entropie aufweisen (also baut man sich am besten radioaktiv zerfallende Stoffe in den Rechner ein und errechnet sie daraus). |
Re: Deterministischer Pseudozufallszahlengenerator gesucht
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein Vorschlag in Delphi...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz