From: Hiroshi Takagi Date: 2005-07-01T17:22:32+09:00 Subject: [ruby-list:40895] Re: 配列をシャッフル 高木です。 On Fri, 1 Jul 2005 15:59:56 +0900 Hideo Konami wrote: > 小波です。 > 統計の無作為非復元抽出のシミュレーションのために,配列をシャッフル > する方法を考えていて,次のような処理を思いつきました。これまで ....(snip)... > 思ったのですが,もっとうまいやり方はないものでしょうか。お付き合い > くださる方がおられましたら,よろしくお願いします。 「おまっちゃRuby (The Ruby Way)」によると、 配列のランダム化として、こんなのがあります。 class Array def randomize! result = collect { slice!(rand length) } replace result end def randomize arr = self.dup arr.randomize! arr end end slice 使ってるところがミソですね。 あと、 OneLiners で sort{ .5 <=> rand } ってのもあるそうで。 (こっちは、ぱっとみてわかんないぞ^^; -- Hiroshi Takagi