高木です。

On Fri, 1 Jul 2005 15:59:56 +0900
Hideo Konami <konami / kyoto-wu.ac.jp> 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 <gollum / hi-net.zaq.ne.jp>