メソッド >乱数

乱れた数と書いて > rand (random)
ランダムに選んだ数字を得るためのメソッド。

  • rand の後に何も付けずに書くと 0.0 <1.0 の数字がランダムにひとつ出現 (1.0は含まれない)
  • rand(8) とか書くと 0<8 の整数がひとつ出現。この時、8は含まれないので要注意

randのふるまいを実行してみましょ。

puts rand
puts rand
puts rand
puts 'これは楽しい'
puts rand(10)
puts rand(10)
puts rand(1)
puts rand(1)
puts rand(99999999999999999999)
puts '明日の降水確率はなん%かしら'
puts rand(101) + '% くらいらしいよ'
puts 'さすが梅雨ですね'
moomin:ProgrammingRuby tomomi$ ruby random.rb
0.861290463156853
0.0625702892401213
0.0433106169526352
これは楽しい
9
3
0
0
57361100899743440577
明日の降水確率はなん%かしら
random.rb:11:in `+': String can't be coerced into Fixnum (TypeError)
	from random.rb:11

Oh, どこ間違えた。Stringがなんちゃらということは文字列の扱いにerrorがあるらしい。ちょっと待って。

トライ2

出た。そうか、rand(ごにょ) 自体は数字のため文章で使う時には文字列(.to_s)にしないといけないのですね。また、ソースコードは同じだけど先の実行と比べるとランダムに数字が出力されてるのがわかる。randたのしい。
これ、iPod shuffleなどのランダムに選曲してくれるプログラムなどに使われてるんじゃなかろうか。

puts rand
puts rand
puts rand
puts 'これは楽しい'
puts rand(10)
puts rand(10)
puts rand(1)
puts rand(1)
puts rand(99999999999999999999)
puts '明日の降水確率はなん%かしら'
puts rand(101).to_s + '% くらいらしいよ'
puts 'さすが梅雨ですね'
moomin:ProgrammingRuby tomomi$ ruby random.rb
0.439469925443474
0.27964719638377
0.999305456811891
これは楽しい
6
9
0
0
17204319042123805422
明日の降水確率はなん%かしら
25% くらいらしいよ
さすが梅雨ですね