タグ

乱数に関するshiumachiのブックマーク (2)

  • すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog

    みなさん、こんにちは、今回は乱数の話です。 特に複数機種でのコンシューマ機でゲームを開発をしていると、機種間で乱数値を統一するために乱数生成アルゴリズムを自作しますよね。 そこでよく使われるアルゴリズムが「線形合同法」です、内容は至って簡単で、以下の漸化式を使います。 A,B,Mは定数で、どの値が入るかは処理系依存です。 例えばUnixなどの処理系ではA=1103515245,B=12345,M=2147483647などが入ります。 C言語ですと以下のようになります。 static unsigned int x=1; void srand(unsigned int s) { x=s; } unsigned int rand() { x=x*1103515245UL+12345UL; return x&2147483647UL; } この「線形合同法」は計算が簡単で高速ですから、いろいろな環

    すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog
  • 乱数のタネの新しい生成法 - SourceForge.JP Magazine

    広く知られているように、コンピュータだけでは真の乱数を発生させることはできない。だから、ソフトウェアで乱数が必要なときは、代わりに疑似乱数を使うのが一般的だ。暗号処理など「乱数」を使うアプリケーションは、したがって、一般に考えられているほど安全ではない。だが、こうしたコンピュータによる乱数発生の限界を超える試みがある。よく使われるのはシステム・クロックを使う方法だ。こうした人間が直接関わらない方法のほかに、人間の入力操作を直接的に利用する方法もある。 おもしろいことに、Googleを利用すると、人間が直接関わらない方法で乱数を発生させることができる。インターネットではWebページやドメインがひっきりなしに作られ変更され削除されており、絶え間なく無作為に動いている。したがって、Googleのデータベースのような巨大なデータの集まりから、乱数のタネを取ることができるのである。このタネ(種)とい

  • 1