ランダムに並べる(シャッフル)

『単純で正しそうなものが正しいとは限らない』
http://d.hatena.ne.jp/KZR/20081203/p2

ちょっと手を抜くだけで低品質なコードになっちゃいますよ、的な話。元記事は、

『The Danger of Naïveté』
http://www.codinghorror.com/blog/archives/001015.html

寝る前に、眠い目をこすって読んだのであんま理解できてないかもしれないけど、要するに、Naïve shuffleの問題点は、
この方法で得られる順列の総数(って表現していいのか・・・)は、元データから数学的に求まる順列の数の倍数になってないので、得られる順列はものによって発生確率が変わってくる、ってとこ。かなぁ。

重複を許さずにランダムに並べるアルゴリズムには、Knuth-Fisher-Yatesシャッフル、ってのがあるってのを知れたのは収穫。
それにしても、単純な問題にもかかわらず、十二分にしっかりとデータをまとめてあるのに驚いた。自分の研究分野は特にそうなんだけど、海外の人ってしっかりしたドキュメントを作る傾向があるような気がする。海外では、ドキュメントのまとめ方、みたいな教育受けてるのかなぁ。。。