RANDU on lineaarinen kongruentti pseudosatunnaislukugeneraattori , joka otettiin käyttöön 1960-luvulla. Sen määrää toistuvuussuhde :
missä on outoa .
Pseudosatunnaisluvut lasketaan seuraavasti:
Yleisesti uskotaan, että tämä algoritmi on yksi vähiten harkituista näennäissatunnaislukugeneraattoreista, joita on koskaan ehdotettu, koska se epäonnistuu spektritestissä, kun mittausten määrä ylittää 2 [1] [2] .
Syynä generaattorin parametrien valinnalle oli se, että kokonaislukujen 32-bittisen konearitmeetiikan puitteissa modulo-operaatiot , erityisesti mielivaltaisen luvun kertominen luvulla , suoritetaan tehokkaasti. Samalla tällä valinnalla on myös perustavanlaatuinen haittapuoli. Harkitse seuraavaa lauseketta (oletamme, että kaikki toiminnot suoritetaan modulo ):
mistä laajentamalla neliötekijää saamme:
joka puolestaan osoittaa lineaarisen suhteen (ja siten täydellisen korrelaation ) olemassaolon sekvenssin kolmen vierekkäisen elementin välillä:
Korrelaation seurauksena kolmiulotteisen avaruuden pisteet, joiden koordinaatit saadaan tällä algoritmilla, sijaitsevat suhteellisen pienellä määrällä tasoja (annetussa esimerkissä 15 tasossa). [3]
Esimerkki RANDU-algoritmin luomasta näennäissatunnaisesta sekvenssistä, jonka alkuarvo on :
yksi 65539 393225 1769499 7077969 26542323 95552217 334432395 1146624417 1722371299 14608041 ... 134633675 1893599841 1559961379 907304297 2141591611 388843697 238606867 79531577 477211307 yksi
Sen nimi - RANDU (samanlainen kuin "satunnainen" - "satunnainen" - noin toim. ) voi aiheuttaa säikähdystä silmissä ja vatsakramppeja monille tietotekniikan tutkijoille! [neljä]
Alkuperäinen teksti (englanniksi)[ näytäpiilottaa]…sen nimensä RANDU riittää saamaan tyrmistyksen monien tietojenkäsittelytieteilijöiden silmiin ja vatsaan! [5]
Yksi meistä muistaa, että hän sai kerran graafisen kuvan "satunnaisesta" sekvenssistä, joka koostui vain 11 tasosta. Vastauksena tietokonekeskuksen ohjelmointikonsultti totesi, että satunnaislukugeneraattoria on käytetty väärin: "Takaamme, että jokainen numero on sinänsä satunnainen, mutta emme takaa, että useampi kuin yksi niistä on satunnainen." Yritä ymmärtää tämä.
Alkuperäinen teksti (englanniksi)[ näytäpiilottaa]Eräs meistä muistaa tehneensä "satunnaisen" juonen, jossa oli vain 11 konetta, ja hänen tietokonekeskuksensa ohjelmointikonsultti kertoi hänelle, että hän oli käyttänyt väärin satunnaislukugeneraattoria: "Takaamme, että jokainen numero on satunnainen erikseen, mutta emme takaa, että useampi kuin yksi niistä on satunnainen." selvittää. [6]