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

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

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) 사이의 값
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.