Matematiska institutionen Chalmers Tekniska Högskola och Göteborgs Universitet

Statistisk databehandling ht 95

L 5 : Test av slumptalsgeneratorer

Uppgift 1

I filen L5-fil1.dat finns 5000 slumptal med likformig fördelning över {0, 1, …, 9} bildade mha. slumptalsgeneratorn i Splus. Pröva mha. både frekvenstest och partest på nivån 5 % om datamaterialet signifikant avviker från “riktiga slumptal”.

Uppgift 2

Gör pokertest för “slumptalen” z_{1}, z_{2}, …, z_{2500} erhållna som första decimalen i “slumptalen” mellan 0 och 1 y_{1}, y_{2}, …, y_{2500} bildade mha. kongruensgeneratorn

x_{0} = 54327,
x_{n} = 147x_{n−1}(mod 10^{5}), n ≥ 1,
y_{n} = x_{n}/10^{5},  n ≥ 1.

Slå därvid ihop utfallen “kåk”, “fyrtal” och “femtal” till ett enda utfall.

Tips: Tilldelningen (av värde för a) a = b(mod m) kan i Splus programmeras

a <- b%%m
if (a==0) {a <- m}

I Splus blir vidare

z[n] <- as.integer(10*y[n])%%10

Om Freq[1], Freq[2], Freq[3], Freq[4] och Freq[5] registrerar antalet utfall med “alla olika”, “par”, “två par”, “tretal” resp. “kåk, fyrtal eller femtal” så kan Freq beräknas i Splus med programslingan (jmf. Appendix 2 i Rådes bok)

Freq <- rep(0, times=5)
i <- 0
while (i < 500) {
count <- 1

j <- 1
while (j < 5) {
k <- j+1
while (k < 6) {
if (z[5*i+j]==z[5*i+k]) {count <- count+1}
k <- k+1}
j <- j+1}
Freq[min(count,5)] <- Freq[min(count,5)]+1
i <- i+1}

Uppgift 3

Bestäm perioden för kongruensgeneratorn i uppgift 2.

Tips: Låt datorn leta sig fram till första återkomsten av x_{0} (i sviten {x_{n}}_{n≥1}).