Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Kernel | rand

概要

Kernel#rand(max = 0) -> Integer | Float
Kernel#rand(range) -> Integer | Float | nil

詳細

擬似乱数を発生させる。

・Kernel#rand(max = 0)
max が 0 の場合は 0.0 以上 1.0 未満の実数を、正の整数の場合は 0 以上 max 未満の整数を返す。
それ以外の値を指定した場合は max.to_int の絶対値が指定されたものとして扱う。

Kernel#rand(range)
二番目の形式では range で指定された範囲の値を返す。
range の始端と終端が共に整数の場合は整数を、少なくとも片方が実数の場合は実数を返します。
range に含まれる数が無い場合は nil を返します。

サンプルコード
5.times { print rand, "," }
puts
20.times { print rand(10), "," }
puts
20.times { print rand(10..15), "," }
puts
5.times { print rand(1.618..3.14), "," }
puts

出力

0.020002887740866004,0.5727760008264157,0.7094309202359375,0.7679083324602716,0.7483579600780531,
4,5,2,8,3,7,8,1,8,5,0,1,4,0,6,7,4,8,5,0,
13,10,10,12,10,14,12,11,13,11,12,13,13,15,10,12,10,13,11,13,
2.2546050487564284,2.549052449957986,2.6430267438642296,2.876379157395875,1.972214122439303,