Ich bin auf der Suche nach einer Funktion, die einen Samen der C# Random
Klasse basierend auf den ersten beiden int Zahlen von Random.Next()
produziert zurückgibt. Ich möchte rohe Gewalt vermeiden (das habe ich versucht). Im Grunde bin ich für eine Reverse-Funktion für diesen Code suchen, das nicht auf Brute-Force-BasisWie bekomme ich Random Seed gegeben ersten 2 Pseudozufallszahlen
using System;
public class Program
{
public static void Main()
{
int seed = 0;
Random rnd = new Random(seed);
Console.WriteLine($"Seed: {seed}");
Console.WriteLine($"Rnd1: {rnd.Next()}");
Console.WriteLine($"Rnd2: {rnd.Next()}");
}
}
Welche
drucktSeed: 0
Rnd1: 1559595546
Rnd2: 1755192844
Gibt es einen schnellen Weg Seed
gegeben Rnd1
und Rnd2
zu erhalten?
Also, was haben Sie versucht? Ich habe einige Schritte erwartet, zumindest Informationen über den in .NET verwendeten PRNG (?). Wenn du das tust, wirst du wahrscheinlich eine Formel finden, die leicht auszunutzen scheint, ziemlich einfach (zu passend, um deine Konstante von 2 zu geben), was mich denken lässt, dass dies von einer Art Codierungstest oder Konkurrenz herrührt? – sascha
Sie können die Quelle für Random finden [hier] (https://referencesource.microsoft.com/#mscorlib/system/random.cs4c2fc83207c654d1) – spectacularbob
[Ist dieser Beitrag von irgendeiner Verwendung?] (Https: // stackoverflow. com/questions/17420424/bestimmen-die-seed-of-c-sharp-random-instance). Es scheint, dass es nicht möglich ist, oder zumindest diese rohe Gewalt ist eigentlich ziemlich schnell. – Equalsk