Xorshift談義

雑にではありますが大変興味深かったのでまとめました。
0
Nyoho @NeXTSTEP2OSX

Elixirを応援しているのでErlangも応援しているんですが、Erlangの擬似乱数生成器にxorshift128+が採用されてしまって、ものすごく残念なことになっているそうで、残念です。

2019-05-01 11:46:37
Gada / ymtszw @gada_twt

残念なことになってるの? と思って調べた感じ、xorshift系の性能がcryptgraphically-insecureな部類の中でもイマイチって話なのかな。 PCGが良いんじゃないかとは思う。 twitter.com/NeXTSTEP2OSX/s…

2019-05-01 12:08:18
V @voluntas

採用しないほうがいい乱数ってのは初耳だ。@jj1bdx どうなんでしょうこれ。 twitter.com/nextstep2osx/s…

2019-05-01 20:21:19
Kenji Rikitake @jj1bdx

@voluntas 少なくとも従来のrandomモジュールのAS183よりは現在のrandモジュールの乱数の方がずっとまともだと思いますけどねえ。何が残念なんだろう。

2019-05-01 20:42:05
Kenji Rikitake @jj1bdx

@NeXTSTEP2OSX randモジュールのどこがどう残念なのか教えてください。 現在randモジュールでは過去にxorshift116+等で判明した問題は対策済みですが。 erlang.org/doc/man/rand.h…

2019-05-01 20:47:20
Kenji Rikitake @jj1bdx

@voluntas あと仮にxorshift系が全滅したとしても、randモジュールの枠組みを使えば、他のアルゴリズムの疑似乱数を実装すれば済む話ではあります。xorshift系の開発者は適宜アルゴリズムを更新していて、Erlang/OTPでは私の手を離れた後もRaimo Niskanenがフォローしてくれています。

2019-05-01 20:52:42
Kenji Rikitake @jj1bdx

XorshiftとPCGとの論争についてですが、この問題はここの議論で決着はついていると理解しています。過去何度か同様の話を効かれましたが、少なくともXorshiftをやめる理由はないだろうと思っています。 pcg.di.unimi.it/pcg.php

2019-05-01 21:02:23
Kenji Rikitake @jj1bdx

聞かれた、ですね。 なおErlang/OTPに関していえば、randモジュールはXorshiftに限らずどんな疑似乱数アルゴリズムでも受け入れる余地はありますから、問題が発生したら入れ替えればいいし、ソースコードは全部出ているので検証なり解析なり自由にやっていただければと思います。

2019-05-01 21:05:14
Kenji Rikitake @jj1bdx

xorshiftに限らず、乱数の統計的検定に関する日本語のコメントとしては、これが順当じゃないかと思います。 teratail.com/questions/1542…

2019-05-01 21:26:26
Kenji Rikitake @jj1bdx

Xorshift+128の作者であるSebastiano Vignaは、問題が指摘されているアルゴリズムには頻繁に改訂を行っています。最新の内容は継続的にここに掲載されています。→ xoshiro.di.unimi.it

2019-05-01 21:47:08
Shiro Kawai @anohana

@jj1bdx おー、seedにアルゴリズムを渡せるんですね。なるほどー

2019-05-01 22:54:44
Kenji Rikitake @jj1bdx

@anohana このメカニズムを考えた人達は偉いと思っています(私ではありません)。

2019-05-01 23:01:08
V @voluntas

@jj1bdx @NeXTSTEP2OSX twitter.com/nextstep2osx/s… 是非この辺についてご教示頂きたいです。私は素人ですが、乱数にお詳しい方から見て、悪いところがあるなら、周知したいと思っております。

2019-05-02 01:21:22
ニョホオーグ @NeXTSTEP2OSX

@tsuchim その昔のよりは「良い」乱数なんだけど、悪いところがあるので採用しない方が良いんよねー。

2019-05-01 11:54:58
ブランマン @hazhihazhi

スマホでxorshift rngの論文見てるけど目が死にそうなので後にする

2019-05-02 08:17:45
ブランマン @hazhihazhi

nonsingularとかvector spaceってなんぞやってツイートしようとしたけどベクトル空間のことか。 んでノンシンギュラーが正則ね。はいはい

2019-05-02 08:26:25
ブランマン @hazhihazhi

binary matrixは要素が全て1,0の行列ね。はいはい。 non-null initial 1*n binary vector βってなんや... initialなかったら意味分かるけどinitialの意味が分からん。 あぁ、多分初期条件でnon-nullやでってことかな あぁ!null matrixって零行列のことかよ。

2019-05-02 08:34:41
ブランマン @hazhihazhi

If L is the n×n binary matrix that effects a left shift of one position on a binary vector y, that is, L is all 0’s except for 1’s on the principal subdiagonal, ま??

2019-05-02 08:40:51
ブランマン @hazhihazhi

Subdiagonalは対角行列の一個したの要素な

2019-05-02 08:45:16