Hi@all
Ich habe in der letzten Woche ein Programm zur empirischen Lösung des Ziegenproblems geschrieben.
http://de.wikipedia.org/wiki/Ziegenproblem
Es ging hierbei darum zu zeigen, das bei einer ausreichend großen Menge an Durchläufen die Wahrscheinlihckeit ein Auto zu gewinnen 0,66 oder 66% ist (genaue Wahrscheinlihckeit ist 2/3)
Allerdings bekomme ich,wenn ich das Programm 100000 mal durchlaufen lasse hochsignifikante Abweichungen, weshalb das Programm nicht repräsentativ ist.
Ich hab mal nen bischen geguckt woran das liegt und mir ist aufgefallen, dass ich in 100-1000 durchläufen die selbe zufallszahl mit random.next() bekomme. Wahrscheinlihc liegt es daran, dass der PC die Zufallszahl mit der zeit berechnet und es in einer ms 100 Durchläufe packt.
Deshalb meine Frage: gibt es einen besseren zufallsgenerator?
lg
Alex
Zitat meines ehemaligen Mathelehrers:
Ein Experte ist nicht jemand, der alles kann oder richtig macht,
sondern der schon möglichst viele Fehler auf seinem Gebiet gemacht und aus diesen gelernt hat.
Erzeuge das Random Objekt außerhalb deiner Schleife, sonst lieferts oft die gleichen Ergebnisse.
Lg XXX
/EDIT: Siehe dazu auch: Random.Next liefert immer dieselben Zahlen, aber nicht beim Debuggen
Hallo Axxus,
wie erstellst du deinen Random?
for(int i = 0; i < 1000000; i++)
{
new Random().Next();
}
oder
Random r = new Random();
for(int i = 0; i < 1000000; i++)
{
r.Next();
}
Obriger Code ist nicht zufallsmäßig, da new Random die Zeit als Seed hernimmt,.
Siehe unter dem Punkt Hinweise: Random
Hallo Axxus,
alternativ zu den Pseudo-RNGs aus dem Framework kannst du deine Simulation auch mit echten Zufallszahlen laufen lassen, die du z.B. von random.org beziehen kannst.
Dazu siehe:1.http://www.random.org/clients/http/ 1.http://www.random.org/clients/http/archive/
Normalerweise sollte aber auch die Qualität der Pseudo-RNGs ausreichen, wenn du sie denn richtig benutzt (siehe meine beiden Vorposter).
Mfg NeuroCoder
Ansonsten wäre in deinem Fall System.Security.Cryptography.RandomNumberGenerator besser geeignet.
Mfg
Aratar
vielen dank
das erstellen der klasse außerhalb der schleife hat geholfen
Ich hab nicht gewusst dass das einen Untershchied macht
Danke
Alex
Zitat meines ehemaligen Mathelehrers:
Ein Experte ist nicht jemand, der alles kann oder richtig macht,
sondern der schon möglichst viele Fehler auf seinem Gebiet gemacht und aus diesen gelernt hat.