ブックマーク / qiita.com/rsky (1)

  • なぜmt_rand()の誤った実装をサクッと修正できないのか - Qiita

    @scaled_wurm さんのPHP の mt_rand() は一貫して壊れている(consistently broken)らしいに便乗してみる。 擬似乱数の特性は「周期性があること」です。周期性とはつまり再現性で、ほとんどの擬似乱数は長い周期性をもち次に出力される数を予測することが困難である一方、初期状態を固定する事で決まったパターンで値を返します。これは完全な乱数にはないもので、用途によっては完全な乱数より擬似乱数を使う方が好ましいこともあります。 例えば単体テストで乱数を扱う場合のことを考えてみましょう。 class RandomTest extends TestCase { public function testInitialValue() { mt_srand(0); $this->assertEquals(963932192, mt_rand()); } } mt_rand

    なぜmt_rand()の誤った実装をサクッと修正できないのか - Qiita
    Eggnog
    Eggnog 2016/02/23
    creat(2)
  • 1