[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2ch.scのread.cgiへ]
Update time : 02/16 00:22 / Filesize : 133 KB / Number-of Response : 555
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

疑似乱数2



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


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 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<133KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef