ruby에서 random을 쓰는 방법이 궁금합니다.


ruby에서 0부터 n까지의 숫자를 만들려면 어떻게 해야되나요?

  • 2016년 02월 23일에 작성됨

조회수 228


1 답변


좋아요
0
싫어요
채택취소하기

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) 사이의 값
  • 2016년 02월 23일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close