Ero sivun ”Näennäissatunnaislukugeneraattori” versioiden välillä

[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
Ei muokkausyhteenvetoa
Prhi (keskustelu | muokkaukset)
Lisäsin tarkemman generaattorin esityksen, työtä vielä riittää
Rivi 5:
Satunnaislukugeneraattorin tasoa arvioidaan sen perusteella, kuinka sen tuottama satunnaislukujono käyttäytyy. Hyvä generaattori pystyy tuottamaan suunnattoman määrän toisistaan riippumattomia satunnaislukuja joiden jakauma noudattaa satunnaisjakaumaa. Huono generaattori tuottaa vain esim. tuhannen luvun jonon, jonka jälkeen lukujono alkaa toistaa itseään. Tällöin myös merkkijonon jakauma on epätasainen, ja satunnaisuuden näennäinen matkiminen ei toteudu.
 
== Käytännön satunnaislukugeneraattorit ==
=== Algoritmejä ===
Tyypillinen näennäissatunnaislukugeneraattori laskee seuraavan arvon edellisestä satunnaisluvusta
*Lineaarinen satunnaislukugeneraattori
jollain sopivalla funktiolla.
::Esimerkiksi N'=23*N MOD 101, R=N/101 antaa siemenellä N=1 N-jonoksi 1,23,24,47,71,17,.. ja R-jonoksi 0.009, 0.228, 0.238, 0.465,0.703,0.168,..
x<sup>n+1</sup> = f(x<sup>n</sup>)
*[[RC4]]
Ensimmäinen luku on valittava, ja sitä sanotaan '''siemeneksi'''.
*Linkki laadukkaaseen näennäissatunnaislukugeneraattori [[algoritmi]]in:
http://astronomy.swin.edu.au/~pbourke/analysis/random/
 
Mikäli satunnaisluvuksi tulee sama kuin siemenestä, koko kierros alkaa identtisenä alusta. Jokaisella näennäissatunnaislukugeneraattorilla on siis toistuva '''jakso'''.
{{tynkä}}
 
Lineaarisessa näennäsissatunnaisulukugeneraattorissa luku kerrotaan sopivalla
[[en:Pseudorandom number generator]]
vakiolla ja tuloksesta otetaan jakojäännös.
x<sup>n+1</sup> = c * x<sup>n</sup> mod m
 
Jotta jaksosta saadaan mahdollisimman pitkä, luvut c ja m on valittava erittäin hyvin. Käytännössä parhaat tulokset on mahdollista saavuttaa alkuluvuilla.
 
Esimerkiksi arvoilla c=23 ja n=101 ja siemenen ollessa 1:
x<sup>n+1</sup> = 23 * x<sup>n</sup> mod 101
saadaan satunnaislukujen jonoksi 1,23,24,47,71,17,..
 
* [http://astronomy.swin.edu.au/~pbourke/analysis/random/] Esimerkki näennäissatunnaislukugeneraattorista
 
{{tynkä}}
[[en:Pseudorandom_number_generator]]
[[ru:%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB]]
[[zh:%E9%9A%8F%E6%9C%BA%E5%87%BD%E6%95%B0]]