• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データのシャッフルについて)

データのシャッフルについて

このQ&Aのポイント
  • データのランダムな並べ替えについて質問し、JavaScriptの回答をPerlに移植した。公平なランダムの実装を知りたい。
  • 質問Q.725588で参考にしたPerlのコードを紹介。@listの要素をランダムに入れ替えるshuffle関数を実装。
  • 質問Q.944003では、No.3やNo.4のアルゴリズムになるでしょうか。ソートを使ったアルゴリズムには理解がない。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

PerlのFAQに、 「How do I shuffle an array randomly? (配列をランダムにかき混ぜるには?)」 ――ってのが、あります。質問の中でかかれているのと、そんなに変わらないみたいですが。 また、Perl 5.8.0以降なら、モジュールList::Utilにshuffleという関数が定義されてます。こっちはXSですので、処理速度の面で有利です。

参考URL:
http://perldoc.jp/docs/perl/5.6.1/perlfaq4.pod
mone
質問者

お礼

回答ありがとうございます。 perlのドキュメントにも書いてあったのですね。同じ項に載っていたspliceを使った例なども、とても参考になりました。これらの方法を参考に、どんな風に書くと高速化できるのかなど検証してみたいと思います。 また、Q.944003のNo.2で示されたソートを使った方法というのが気になっており、そのアルゴリズムやコードに関する情報をもう少し待ってみたいと思います。