: Linear congruential generators, LCGs




ABMM>AM>BA>0B0

生成

編集

    使

A=3B=5M=13 =8Xn+1便

 

3使

 



 


周期性

編集

83183MM

(一)BM

(二)A-1M

(三)M4A-14

A=13B=5M=24

B=0000...MAMM-1B=0

長所

編集



(1) (2) (3)使2n-1 

MLFSR

使

短所

編集

使

r0, r1, r2, r3, ... (r0, r1), (r1, r2), (r2, r3), ... 1000010000x10000  Random numbers fall mainly in the planes. The rain in Spain stays mainly in the plain.[1][2][3]3

MMM201

3240

rand(3)java.util.Randomrand() % 6 + 12rand() / (RAND_MAX / 6 + 1) + 11/6

Park & Miller

編集

Stephen K. Park  Keith W. Miller 使

 

Ccomp.lang.c FAQ list · Question 13.15[4]

由来不詳

編集



 

CPOSIXrandinformativeEXAMPLES[5]2017Rosetta CodeBSD formulaPark & MillerPOSIX248BSDUnix7 /usr/src/libc/gen/rand.c 

注・出典

編集
  1. ^ 引用元については スペインの雨 を参照。
  2. ^ Random Numbers Fall Mainly in the Planes
  3. ^ このタイトルで書かれた文献の著者は George Marsaglia(en:George Marsaglia)だが、ドナルド・クヌースはこの表現の出典を(TAoCPにて)ウォレス・ギヴンスとしている。
  4. ^ comp.lang.c FAQ list · Question 13.15 ただしソースコードでは乗数が 16807 になっているので注意すること。48271 を使ったほうが(もしかしたら計算がわずかに重くなるかもしれないが)少し良い乱数列になる。ソースコード中のその数の部分を書き換えるだけでよい。
  5. ^ http://pubs.opengroup.org/onlinepubs/9699919799/functions/rand.html#tag_16_473_06_02

参考文献

編集
  1. Park and Miller, "Random Number Generators: Good Ones are Hard to Find"
  2. 結城浩著『暗号技術入門 - 秘密の国のアリス』、ソフトバンク、ISBN 4-7973-2297-7、pp.305-307.

関連項目

編集