1 名前:デフォルトの名無しさん [2007/10/17(水) 22:34:59 .net] 擬似乱数発生器について語ろうか。その2 前スレ 擬似乱数 pc11.2ch.net/test/read.cgi/tech/1146071975/ 関連スレ 【危険】とんでもプログラム告発スレッド【悪質】 pc11.2ch.net/test/read.cgi/tech/1191860116/ SIMD-oriented Fast Mersenne Twister (SFMT): www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html
512 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 11:46:44.94 ID:DCOx50tb.net] 統計の知識は中高どまり(平均・中央値・分散程度か)なので 乱数用に内部状態が32ビットしか確保できないソフトに対して単にxorshiftを採用して「検定もいい結果らしいし」と気にしていなかった 思ったより良くないとなると,プールしておいてランダムに取り出す方法も使えないし悩むな
513 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 12:22:06.08 ID:7W6mxi0O.net] 1個使ったら100個捨てるとか RNGが保証してるのは周期だけだと割りきって頑張って調律するとか
514 名前:デフォルトの名無しさん [2016/12/14(水) 23:07:36.84 ID:2UzQxrtp.net] 素人の生半可なオレオレ乱数はやらない方が身のため
515 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 21:32:49.60 ID:VVtKGmEj.net] 2017は素数か
516 名前:デフォルトの名無しさん mailto:sage [2017/01/01(日) 11:37:31.32 ID:DY9bt0tG.net] あけましておめでとうございます return x = x * 2017 + 1;
517 名前:デフォルトの名無しさん mailto:sage [2017/01/05(木) 01:13:53.38 ID:yRe7g27Q.net] 一個使って100個捨てるとか馬鹿の極み コストを101倍にしてどうする。 コスト2倍も出せば問題のない乱数を作れるのに
518 名前:デフォルトの名無しさん mailto:sage [2017/01/05(木) 06:28:07.10 ID:42rV0dht.net] S/N比最低の2ちゃんでドヤっってる場合じゃないよな
519 名前:デフォルトの名無しさん [2017/01/05(木) 20:10:30.85 ID:atmVS5w4.net] S/N比最低というのは、乱数としては素晴らしいことだ。
520 名前:デフォルトの名無しさん mailto:sage [2017/01/06(金) 09:49:58.47 ID:zAIptLYs.net] つまり2chの書き込みをもとに乱数列を作る生成器を作れば…?
521 名前:デフォルトの名無しさん mailto:sage [2017/01/06(金) 12:01:18.30 ID:CHjfjTiP.net] 片寄りが多くて一様じゃないからなあ……
522 名前:デフォルトの名無しさん mailto:sage [2017/01/06(金) 14:32:25.52 ID:eb3De0HO.net] >>512 ワロタ 一様分布じゃなく、一応分布が2chらしい
523 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 09:39:50.93 ID:BVjvbr4Q.net] BIG 不正 いまGoogleで検索したら、すごいのがでますね
524 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 09:56:53.06 ID:BVjvbr4Q.net] 「14試合×5口分の予想結果が2回続けて全く同じという極めて不自然な結果が出力され、 システムの不具合や不正ではないかと一騒動となっている(中略) 日本スポーツ振興センターと楽天から調査結果の発表がなされたのだが、 くじは確かに販売されたものである」 スポーツくじ「BIG」でランダムなはずの予測結果が2連続で一致するも「偶然」との回答 - エキサイトニュース www.excite.co.jp/News/it_g/20170221/Slashdot_17_02_20_1619238.html 2017年2月22日 09時50分
525 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 12:02:19.51 ID:Acz49b5N.net] 一人が予想して当たればその確率かもわからんけど、 1000人が予想した場合の期待値は1000倍になるんじゃね
526 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 07:14:10.76 ID:WFbVQHcp.net] 2回とも当たったんならすごいけどな
527 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 07:17:16.12 ID:WFbVQHcp.net] 数枚買ったうちの2枚が連続して同じだったのか そりゃ金返せってなるな 最初から買わんけど
528 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 07:23:45.91 ID:WFbVQHcp.net] セキュリティ上の理由から アルゴリズム公開しないって書いてあるけど 全組み合わせを逐次予想するんじゃなくて 元々予想したくじを用意してあって そこから適当に買った枚数分選んでくるとかだったら 重複確率は上がりそうだな たまたま購入者が気付いただけで 気付かずに捨てられた券で 過去の重複してたのもっとあるんじゃないか
529 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 08:54:22.37 ID:907E0Xet.net] どんな擬似乱数でも、内部的に状態を示す値を保持していて、それを元に次回の乱数を計算で出す その値を初期化するのがsrand等だけど、その時に限らず常に値は持っているので 偶然内部の値が同じなんてこともよくある ただし、普通は同じ値であっても、別の用途に乱数を使うので、同一であったことが問題になることはない けれど、もし、14試合分の予想の直前の段階での内部的な値が、前回と全く同じ値だったとすると そこから算出される各試合結果を示す乱数も、全く同じ値が出て 予想結果も全く同じものになる 偶然同じ状態値を持っている時に同じ買い方をしたために、全く同じ予想値になった 状態値のbit数が少ない(例えば普通に線形合同法だと32bitか)のを修正するか、 あるいはアルゴリズム的に同じ擬似乱数だけで順番に算出することを見直すか そういうことをしないと、同じことが再び起こる可能性はある 擬似乱数だと防げないけどね 宇宙が始まるより低い確率云々ってのはナンセンス 擬似乱数の内部値が一致していて、単純に擬似乱数を利用するアルゴリズムだったというだけ これは珍しいけど起こりうること
530 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 13:04:42.59 ID:UXkH84Wv.net] 宇宙云々はあくまで真の乱数が使われていた場合でしょ
531 名前:デフォルトの名無しさん [2017/02/23(木) 13:15:51.47 ID:eG9NqkD/.net] >>520 状態機械で内部の値が一緒だったらその次もその次もずっと同じ値を出し続けるんじゃね
532 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 13:37:51.43 ID:lN59Dhjm.net] 真の乱数なら、種の設定は (少なくとも実用上は) いかなる場合も最初の一度きりで二度と結果がループすることはない
533 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 13:40:24.47 ID:lN59Dhjm.net] と言っても宇宙の何かの物理法則が真の乱数を作ることはないのだろうと思うけど。 全ては必ず有限らしいし、その中でのチューリング完全なんだろうだし。
534 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 13:59:17.36 ID:7wYQlXII.net] 一つずつ乱数生成してないのかもね
535 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 16:45:07.24 ID:eG9NqkD/.net] >>523 真じゃない乱数は ループの長さが長いか短いかだけで いずれはループするんだよな
536 名前:デフォルトの名無しさん [2017/02/23(木) 16:46:44.91 ID:WFbVQHcp.net] >>525 なんらかのバグで内部状態が変化しなくなって 2回連続で同じ値を出してしまったら 再起動がかかるシステムだったりするかもしれない
537 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:50:11.33 ID:5geihC2S.net] >>522 「前回(の乱数取得時)と同じ」という意味ではなく 「前回試合予想をした時と同じ」という意味ね どちらも、同じ値から同じ試合の予想をして、 結果、前週と全く同じ予想が14試合x5口分で起きた
538 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 14:00:51.79 ID:xRGcfmim.net] メルセンヌツイスタ使ってなかったんだろ
539 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 19:02:56.20 ID:3z/u0Cfz.net] 用途が用途だから暗号論的擬似乱数の適応だろ /dev/urandomでもCryptGenRandomでも
540 名前:デフォルトの名無しさん [2017/02/25(土) 15:09:25.02 ID:u8Ry8YI7.net] 状態変数が同じになったから同じ数列が出たんじゃねーよ。 二セット分繰り返す数列を出力する状態変数だっただけだろ。 science3.2ch.net/test/read.cgi/math/1088351567/424-425 円周率の 93299341 桁目から 07214545 という数列が出るそうだ。 まあ大体その辺で出そうな桁数だ。 おそらく無限に調べれば 1/10,0000,000 より少しだけ少ない頻度で出現するだろう。 そしてそのうちの 1/10,0000,000 は二回続く、つまり 1/10+E16 程度で 0721454507214545 という数列が出現するであろう。 目立つ組み合わせだから話題だが、どの二セットを取っても、その組み合わせが発生する確率は同じだ。
541 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 16:57:29.92 ID:usTDxsWv.net] e なら割と早く出て来る
542 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 21:31:43.44 ID:ARsP6JfD.net] PCGってどうなん? ttp://www.pcg-random.org/ 説明読んだりビデオ観たりした限りでは優れているみたいなんだけども アルゴリズム的には線形合同法とXorShiftのハイブリッドの様な感じで 結構単純な構造なんだけど、高速で良質な乱数を生成するとか 因みに2年前に発表されているみたいなんだけど知らんかったわ
543 名前:デフォルトの名無しさん mailto:sage [2017/04/23(日) 03:06:26.50 ID:H8Cvp+NU.net] 周期性と分布バランスが目的用途に特化できるならそれが最強だろ
544 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 11:22:40.04 ID:yPF7Zec4.net] 最強(笑)
545 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 10:34:52.74 ID:Adreh4LC.net] Xn+
546 名前:1=Xn*201+8+1/1 Xn+1=Xn*(2018>>1 )+1 あけおめ [] [ここ壊れてます]
547 名前:デフォルトの名無しさん [2018/05/23(水) 20:53:42.20 ID:Au5e7VGg.net] 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 BZKM3
548 名前:デフォルトの名無しさん [2018/07/05(木) 01:00:09.16 ID:RfoszcD2.net] 5E7
549 名前:Goldwasser [2019/01/03(木) 13:41:14.69 ID:r8gE2use.net] ご覧あれーw #include "pch.h" #include <iostream> #include <stdio.h> #include <stdlib.h> #define N 32 unsigned char x1[N], x2[N], x3[N]; void rp(unsigned char* a) { int i, j, x; for (i = 0; i < N; i++) { a[i] = i; } for (i = 0; i < N - 2; i++) { // rand from i+1 to N-1 j = (rand() % (N - 1 - i)) + i + 1; // swap a[i] and a[j] x = a[j]; a[j] = a[i]; a[i] = x; } if (a[N - 1] == N - 1) { a[N - 1] = a[N - 2]; a[N - 2] = N - 1; } }
550 名前:デフォルトの名無しさん [2019/01/03(木) 13:41:50.45 ID:r8gE2use.net] 後半 int data() { int i, j = 0, k = 0; unsigned int a[N]; unsigned int z[N]; unsigned char w[N]; for (i = 0; i < N; i++) a[i] = rand()%256; for (i = 0; i < N; i++) z[i] = 0; k = 0; while (k< 4000) { for (i = 0; i < N; i++) z[i] ^= a[x2[i]]; for (i = 0; i < N; i++) a[i] ^= z[i]; for (i = 0; i < N; i++) w[i] = x1[x2[x3[i]]]; *x2 = *w; k++; for(i=0;i<N;i++) printf("%u,",a[i]); } printf("\n"); return 0; }
551 名前:Goldwasser [2019/01/03(木) 13:42:22.37 ID:r8gE2use.net] 最後 int main() { rp(x1); rp(x2); data(); return 0; }
552 名前:デフォルトの名無しさん [2019/01/06(日) 08:57:50.46 ID:kWOVO8kw.net] 誰かTestU01の使い方を教えてください
553 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 02:35:20.31 ID:LCfXPkf7.net] >>542 www.pcg-random.org/posts/how-to-test-with-testu01.html
554 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています