Jest dwa sposoby, że komputery mogą generować liczby losowe: Największa
Można tworzyć jakieś urządzenie, które monitoruje całkowicie losowe zdarzenia naturalne i wysyła swoje wyniki do komputera. Na przykład, można umieścić kawałek materiału promieniotwórczego przed licznikiem Geigera i podłączyć licznik Geigera do komputera. Od rozpadu radioaktywnego jest przypadkowa, licznik Geigera stworzy prawdziwie liczb losowych. Takie podejście jest dość rzadkie, ponieważ wiele osób nie mają liczniki Geigera podłączonych do swoich maszyn. Możesz stworzyć formułę, która generuje wiele pseudolosowych. Projektując wzór, pomysł jest na to, aby stworzyć ciąg liczb, które wyglądają losowo dla każdego, kto nie wiedział, co formuła jest. Cechy dobrego wzoru to:
Oto przykład prostego liczb losowych wzór ze. książka " C Programming Language, " przez Kernighana i Ritchie: Największa
int rand () {random_seed = random_seed * 1103515245 +12345; powrotu (unsigned int) (random_seed /65536)% 32768; }Wzór ten zakłada istnienie zmienną random_seed, która jest początkowo ustawiona w pewnej liczbie. Zmienna random_seed jest mnożona przez 1,103,515,245 i 12345 jest dodawany do produktu; random_seed zostaje zastąpiona nową wartość. Właściwie jest to całkiem dobry pseudo-generator liczb losowych. Ma dobrą dystrybucję i to bez powtarzania. Jeśli używamy go do produkcji przypadkowych liczb od 0 do 9, oto pierwsze 20 wartości, które go produkuje, czy ziarno jest 10: Największa
44607423505664567674Jeśli masz produkować 10.000 wartości od 0 do 9, tutaj jest dystrybucja: Największa
0 - 10151 - 10242 - 10483 - 9964 - 9885 - 10016 - 9967 - 10068 - 9659 - 961Każdy pseudolosowych numer wzoru zależy od wartości nasion, aby rozpocząć sekwencję. Jeśli zaczniesz z tego samego nasienia, dostaniesz taką samą sekwencję wartości ze wzoru. Więc jeśli dasz funkcji rand () pokazany powyżej n
Page [1] [2]