at posts/single.html

カブらない数字を4桁だすの

id:dropdbさんのとこより。 僕が思いついたのはこんなの。

nums = (0..9).to_a
4.times do
  print nums.delete_at(rand(nums.size))
end

先に0から9までの配列を作っておいて、そこからランダムに一つずつ取り出すイメージ。 頭の中のイメージをそのままコードに出来るのが Ruby の魅力の一つかも。

追記

id:dropdbさんとこのコメントのコードに感動した。

(0..9).sort_by{rand}[0,4]

[1,2,3,4,5].sort_by{rand} と書くと、配列の内容をランダムに並び変えることができる*1。 Perl の

foreach $key (sort keys %hash)

みたいな分かりやすさだなぁ。

関連する日記