Ich hatte viele Probleme mit der Randomisierung von Listen. Ich spreche von einer Liste von 200 Elementen, wo ich die Liste mischen möchte. Verstehen Sie mich nicht falsch, ich lese viel von Beispielen, und auf den ersten Blick gibt es ziemlich schöne Dinge, wie folgt aus:C# Zufällige Codes - Ist das meiste einfach falsch?
Aber in meiner Erfahrung, zumindest auf einer schnellen Maschine, das ist grundsätzlich wertlos. Das Mischen funktioniert so schnell, dass zwischen zwei Aufrufen von Random.NEXT() KEINE MS-Verzögerung auftritt, was zu nicht annähernd zufälligem Verhalten führt.
ich über Super sichere Sachen rede nicht nur ein Grundspiel zufällig. Ich weiß, dass ich eine Verzögerung von 1 MS hinzufügen kann, aber das bedeutet "Verschwendung" von 200 MS, nur um eine Liste zufällig zu machen.
Nun fand ich diesen Ansatz: http://www.codinghorror.com/blog/2007/12/shuffling.html
Es sieht nett aus, zu sortieren GUIDs zu verwenden. ABER sind sie nicht auf die gleiche Weise erstellt? Läßt es Schritt eine Kerbe, läßt vermuten, ich 1000 Nummern erstellt werden soll, zwischen 0 - 5 Dieser Code im Grunde nutzlos ist:
var resultA = new List<int>();
for (int i = 0; i < 1000; i++)
{
resultA.Add(new Random().Next(5));
}
var resultB = new List<int>();
for (int i = 0; i < 1000; i++)
{
resultB.Add(new Random().Next(5));
Thread.Sleep(1);
}
A überhaupt nicht funktionieren, zumindest nicht meine Umgebung in Windows Phone im, 7. B ist in Ordnung, aber es dauert eine Sekunde, die auch dumm ist. Irgendwelche Kommentare oder Gedanken, es kann nicht so schwer sein, eine zufällige Liste von ganzen Zahlen zu erstellen :-)
Oh, ich mich wirklich hassen jetzt :-) Ok, das erklärt es .. Nun gab es einige Fragen, bei denen es sinnvoll, eine neue Zufalls (jede Frage zu verwenden gemacht wurde erstellt, und es sollte das Element platzieren in 1-4, so die Frage kümmerte sich um das Ganze), aber sie waren zu schnell erstellt .. Ok, danke trotzdem, habe meinen dummen Fehler !! –
Verwenden Sie die Shuffle-Erweiterung für die Frage, auf die Sie verwiesen haben - oder sehen Sie, ob Sie Jon Skeets Implementierung finden können, es ist eine andere Frage. Aufeinanderfolgende Aufrufe von Next() auf demselben RNG sollten normalerweise andere Werte zurückgeben (obwohl es "zufällig" ist, sodass Sie in regelmäßigen Abständen doppelte Daten erhalten). – tvanfosson
Ja, und mit den Fragen verschiebe ich einfach den Zufallsgenerator zum Elternobjekt (das Spiel), also gibt es kein Problem mehr. Aber trotzdem, es ist lustig, wie lange du nach diesem blöden Fehler suchen kannst, und ich war mir sicher, dass "Zufallszahlen" nicht so schwer sein können. Sollte früher gefragt haben :-) –