names=srand
visibility=public
kind=defined

--- srand -> Integer
--- srand(seed) -> Integer

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

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

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

@param seed 乱数の種となる整数を指定します。
            [[c: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 [[m:Kernel.#rand]], [[m:Random::DEFAULT]]

