結城浩のSICP日記 RSSフィード

2006-05-05

SRFI-27疑似乱数発生器インタフェース SRFI-27疑似乱数発生器インタフェース - 結城浩のSICP日記 を含むブックマーク

shiroさんから教えていただいたSRFI-27: Sources of Random Bitsを試します。「ランダムビットのソース」としてちゃんとGaucheのマニュアルにも載っていました。

まずは、デフォルトの乱数発生源を用いる場合。

(use srfi-27)

(random-source-pseudo-randomize! default-random-source 314159 265358)
(random-integer 1000) ;=> 356
(random-integer 1000) ;=> 686
(random-integer 1000) ;=> 793

(random-real) ;=> 0.7874209480319674
(random-real) ;=> 0.45651510801265416
(random-real) ;=> 0.9846236986553446

乱数発生源を作って使う場合。

(use srfi-27)

(define s (make-random-source))
(random-source-pseudo-randomize! s 314159 265358)

(define f (random-source-make-integers s))
(f 1000) ;=> 356
(f 1000) ;=> 686
(f 1000) ;=> 793

(define g (random-source-make-reals s))
(g) ;=> 0.7874209480319674
(g) ;=> 0.45651510801265416
(g) ;=> 0.9846236986553446