module function Kernel.#srand

srand -> Integer[permalink][rdoc][edit]
srand(seed) -> Integer

Kernel.#randRandom.rand で使用される擬似乱数生成器の種を設定し、古い種を返します。

seed に整数を指定するとその絶対値を乱数の種に設定します。それ以外の値を指定した場合は seed.to_int が指定されたものとして扱います。 seed に既知の値を与えると、以前の Kernel.#rand の値を再現できます。

seed が省略された時には現在の時刻やプロセス ID、srand を呼び出した回数、また可能なら /dev/urandom から読み出したデータなどを元に種を作ります。

[PARAM] seed:
乱数の種となる整数を指定します。 Bignum も指定可能です。


num = 455675
seeds = []

srand(num)

p rand(6) #=> 3
p rand(6) #=> 0
p rand(0) #=> 0.445804380918972
p rand(0) #=> 0.422248634121701

seeds << srand

p rand(6) #=> 3
p rand(6) #=> 3
p rand(0) #=> 0.938911141393347
p rand(0) #=> 0.915824970865251

seeds << srand(num)

p rand(6) #=> 3
p rand(6) #=> 0
p rand(0) #=> 0.445804380918972
p rand(0) #=> 0.422248634121701

seeds << srand

p seeds #=> [455675, 2995620310703489221660585195204777696, 455675]

[SEE_ALSO] Kernel.#rand, Random::DEFAULT