タグ

Xorshiftに関するedo_m18のブックマーク (2)

  • いきちがいのぷろぐらむあ - 雑記/2010-01-26 - 2010-1-26[火] xorshift乱数のメモ

    XorShift乱数は、こちらとかのように短い関数で紹介されるけれど、たいていシード固定で書かれていて、シードを外部から与えたい場合はどうしたら、と悩んでしまう. もちろん、ちょっとぐぐったらシード設定できるソース載せてるサイトあるし、 おおもとのpaper に all 0でなければよいようなことかいてあるようだけど、 どの程度適当でよいのか不安にもなる. で、今さらながら2chの擬似乱数2 をみたら76に解説&seed設定付ソースがあった. シードは極端な設定をすると不自然な部分列が出力されるからMTのを参考にしたとある. ありがたく、これ流用させていただくことに... と、よくよくみれば、ここの初期化とほぼ同じ(改良版)のよう. その他、検索したときのサイトメモ. mt-liteの実行速度に xorshiftを含む各種乱数の速度比較あり. 良い乱数・悪い乱数に XorShiftと他の乱

  • Xorshift 乱数生成アルゴリズムを書いてみた。 - 野良C++erの雑記帳

    前回 BarrageLL の乱数について触れたので、今回もその続き。 計算機の応用において、擬似乱数というのは大切です。 なので、世の中には、いろいろな擬似乱数の生成アルゴリズムが存在するわけですが、 今回はその中で比較的新しいアルゴリズム、 xorshift 法の実装を書いてみました。 このアルゴリズムは、詳しくは検索すれば論文が出てくるのでそれを参照してもらうとして、大雑把には 内部状態が小さい。他の有名な乱数生成アルゴリズムである mt19937 が 623*32 bit の内部状態を持つのに対し、 xorshift アルゴリズムの代表的な例である xor128 の内部状態は 128bit のみである。 計算が速い。このアルゴリズムはビットシフトと xor 演算のみで構成されており、かつ条件分岐を含まないため、殆どのアーキテクチャで高速に実行できる。 上記の性質を持つにも関わらず、周

    Xorshift 乱数生成アルゴリズムを書いてみた。 - 野良C++erの雑記帳
  • 1