RANDU är en linjär kongruent pseudo-slumptalsgenerator som togs i bruk på 1960-talet. Det bestäms av återfallsrelationen :
var är udda .
Pseudo-slumptal beräknas enligt följande:
Det är populärt att denna algoritm är en av de minst genomtänkta pseudo-slumptalsgeneratorerna som någonsin föreslagits, eftersom den inte klarar spektraltestet när antalet mätningar överstiger 2 [1] [2] .
Anledningen till att parametrarna för generatorn valdes var att, inom ramen för heltals 32-bitars maskinaritmetik, utförs modulo-operationer , i synnerhet multiplicering av ett godtyckligt tal med , effektivt. Samtidigt har detta val också en grundläggande nackdel. Tänk på följande uttryck (vi antar att alla operationer utförs modulo ):
varifrån vi utökar den kvadratiska faktorn får:
vilket i sin tur visar närvaron av ett linjärt samband (och därmed en fullständig korrelation ) mellan tre intilliggande element i sekvensen:
Som en konsekvens av korrelation är punkter i det tredimensionella rummet, vars koordinater erhålls med denna algoritm, belägna på ett relativt litet antal plan (i det givna exemplet på 15 plan). [3]
Ett exempel på en pseudo-slumpmässig sekvens genererad av RANDU-algoritmen med ett initialt värde på :
ett 65539 393225 1769499 7077969 26542323 95552217 334432395 1146624417 1722371299 14608041 ... 134633675 1893599841 1559961379 907304297 2141591611 388843697 238606867 79531577 477211307 ett
Själva namnet - RANDU (liknande "slumpmässigt" - "slumpmässigt" - Ungefär ed. ), kan orsaka skräck i ögonen och magkramper hos många datavetare! [fyra]
Originaltext (engelska)[ visaDölj]… själva namnet RANDU räcker för att väcka bestörtning i ögon och magar hos många datavetare! [5]
En av oss minns att han en gång fick en grafisk bild av en "slumpmässig" sekvens, bestående av endast 11 plan. Som svar uppgav en programmeringskonsult i datacenter att slumptalsgeneratorn användes felaktigt: "Vi garanterar att varje nummer är slumpmässigt i sig, men vi garanterar inte att mer än ett av dem är slumpmässigt." Försök att förstå detta.
Originaltext (engelska)[ visaDölj]En av oss minns att han producerade en "slumpmässig" plot med bara 11 plan och fick höra av sin datorcentrals programmeringskonsult att han hade missbrukat slumptalsgeneratorn: "Vi garanterar att varje nummer är slumpmässigt individuellt, men vi garanterar inte att mer än en av dem är slumpmässig." räkna ut. [6]