Home

技術系のメモと日々の雑感

Perl の配列の要素をシャッフル

他の人が作った Perl のソースを見ていたら目からウロコのロジックを発見。

@array=('hoge','fuga','are','sore');
for($cnt=0; $cnt<@array; $cnt++){
  $idx=int(rand(@array-$cnt));
  push(@array,$array[$idx]);
  splice(@array,$idx,1);
}

何をしているのかすぐには理解できなくてしばらく固まってしまった。
しっかし、要素をランダムに抜き取って配列の末尾に追加するなんてよく思い付くもんだなぁ。
くやしいけど脱帽・・・。

この記事に対するトラックバック

この記事のトラックバックURL

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/15(日) 19:14:09

-

管理人の承認後に表示されます

  • From: |
  • 2013/07/13(土) 23:35:05

この記事に対するコメント

承認待ちコメント

このコメントは管理者の承認待ちです

  • 投稿者: -
  • 2011/02/26 09:23:06
  • [編集]

この記事にコメントする

管理者にだけ表示を許可する