1 답변
-
1. 커널의 rand
- rand(max=0) -> number
인자가 주어지지 않거나,
max.to_i.abs
가 0이면, pseudo-random floating point를 return합니다. 이 때 return되는 값의 범위는 [0.0, 1.0) 입니다.puts rand
max.abs가 1이상인 경우, pseudo-random integer를 return합니다. 이 떄 return되는 값의 범위는 [0,max.to_i.abs)입니다.
puts rand(100)
max
가 range인 경우,range.member?(number) == true
인 random number를 return합니다.max
는 음수나 floating point일 수 있지만, 예상과는 다른 결과를 낼 수 있습니다.puts rand(-100) puts rand(-0.5) puts rand(1.9)
seed를 주려면 srand를 써야 합니다.
Random 클래스
- rand → float
- rand(max) → number
max
가 정수인 경우, [0, max) 범위의 정수를 return합니다. 앞선 커널의 rand와는 다르게max
가 음수인 경우는ArgumentError
를 raise합니다.puts Random.new.rand(100)
max
가 float인 경우, [0.0, max) 범위의 floating point를 return합니다.puts Random.new.rand(1.5)
max
가 range인 경우,range.member?(number) == true
인 random number를 return합니다.prng = Random.new puts prng.rand(5..9) # => [5, 6, 7, 8, 9] 중에 하나 puts prng.rand(5...9) # => [5, 6, 7, 8] 중에 하나 puts prng.rand(5.0..9.0) # => [5.0, 9.0] 사이의 값 puts prng.rand(5.0...9.0) # => [5.0, 9.0) 사이의 값
댓글 입력