タグ

randomとperlに関するopparaのブックマーク (2)

  • algorithm - 重みをつけて乱択する : 404 Blog Not Found

    2011年12月27日17:15 カテゴリ algorithm - 重みをつけて乱択する 数学ガール/乱択アルゴリズム 結城浩 同意なのだけど… Perlで生でrand関数をごちゃごちゃ使うコードはもう嫌だ | hirobanex.net とにかく、プログラムッチクというとなにかとランダムという要件が多いし、こんなコードばかりグチャグチャ書くのはもういやですね。 これを一般化するという問題はアルゴリズムの実習にちょうど手頃なサイズなので。 JavaScriptによる実装 頻度を高い順に並べて、乱数<合計頻度となったところでそれを選択します。O(n)ですが選択肢を頻度順に並べることでその分ループが回る確率を抑えています。 (function(global){ var make_random_picker = function(picks){ var choices = Array.proto

    algorithm - 重みをつけて乱択する : 404 Blog Not Found
  • 配列からランダムで要素を抽出する - Unknown::Programming

    覚え書。 Perl版。 my @array = (0,1,2,3,4,5); my $value = splice @array, int rand @array , 1; PHP版。 <?php $array = array(0,1,2,3,4,5); $value = array_shift(array_splice($array,array_rand($array),1)); PHPのことだから一発で抽出できる関数あるもんだと思ってたけど無かったっぽい。 肝心なとこで関数無いんだよないつも・・・。 追記: ちょっと言葉足らずだったので補足。 配列からランダムで要素を”取得”したいわけではなく、”抽出”したいわけです。 つまり上記のソースを実行すると、 @array = (0,1,2,4,5); $value = 3; みたいな感じで元配列から抜き取るような結果になって欲しいと。 Li

    配列からランダムで要素を抽出する - Unknown::Programming
  • 1