Ich versuche, ein System zu verteilen, und ich brauche nextGaussian()
aus der Java-Klasse Random
. Der einzige Weg, den ich gefunden habe, um die Datenabhängigkeit zu brechen, die ein eindeutiger Seed erzeugt, war die Verwendung mehrerer Seeds, wodurch mehrere Randoms erzeugt wurden.Erstellen neue zufällige vs mit der gleichen Zufall
Lassen Sie uns über den Kontext meines Problems vergessen, ich möchte nur wissen, wie gut normalisierte Verwendung mehrerer zufällige Instanzen im Vergleich zur Verwendung nur einer Instanz ist. Mit anderen Worten ... Wie zufällig ist das genNew
im Vergleich zu genSame
?
Der Code:
public double[] genNew(int lim, long seed)
{
double[] rand = new double[lim];
for(int i = 0; i < lim; i++)
{
//A random for each iteration.
Random r = new Random(i*seed);
rand[i] = r.nextGaussian();
}
return rand;
}
public double[] genSame(int lim, long seed)
{
double[] rand = new double[lim];
//A random for all iterations
Random r = new Random(seed);
for(int i = 0; i < lim; i++)
rand[i] = r.nextGaussian();
return rand;
}
Die Ergebnisse ich sind sehr unterschiedlich, wenn ich beide Arrays zu meinem Code anzuwenden. Ich kann einfach nicht erklären warum.
EDIT: Ich weiß, dass dies nicht die gleichen Arrays erzeugen wird, ist es nur, dass bei Verwendung einer großen Menge von normalized Randoms eine Zahl berechnet, sollten beide Zahlen nahe sein (wegen der Normalisierung), aber sie sind nicht.
RNGs sollten nicht verwendet werden, um eine Zahl zu generieren, sie liefern bessere Ergebnisse, wenn sie oft verwendet werden. Hast du die Werte von genNew überprüft? –
Ja, die Werte saugen. Deshalb habe ich mich gefragt, ob ich etwas falsch mache ... –
Warum "saugen" die Werte? Warum glaubst du, dass sie nicht zufällig sind? Solange Sie die Methode 'genSame()' verwenden, sollten sie ziemlich zufällig sein, obwohl Computer niemals wirklich zufällig arbeiten können, aber sehr nahe kommen können. [Schauen Sie hier für weitere Informationen über Zufallszahlen] (https://blog.malwarebytes.org/cybercrime/2013/09/in-computers-are-random-numbers-really-random/) – Draken