Variable *RANDOM-STATE*
乱数状態
実装依存
現在の乱数状態として使用されます。 例えば、関数random
では乱数状態を明に指定しないときに使用されます。
random-state-p *random-state*) => true
(setq snap-shot (make-random-state))
(;; この列はどの時点においてもランダムですが、
;; ある時点でやり直したときは同じ列を取得できます。
list (loop for i from 1 to 10 collect (random))
(let ((*random-state* snap-shot))
(loop for i from 1 to 10 collect (random)))
(loop for i from 1 to 10 collect (random))
(let ((*random-state* snap-shot))
(loop for i from 1 to 10 collect (random))))
(=> ((19 16 44 19 96 15 76 96 13 61)
19 16 44 19 96 15 76 96 13 61)
(16 67 0 43 70 79 58 5 63 50)
(16 67 0 43 70 79 58 5 63 50)) (
実装。
random
make-random-state
, random
, random-state
*random-state*
を 正しく保存された別の乱数状態オブジェクトに束縛すると 古い乱数状態オブジェクトが復元されます。