擬似乱数 ..
[2ch|▼Menu]
175:デフォルトの名無しさん
06/06/11 14:44:38
「とってもごはん」のMMX版MTって、オリジナル版と出力違ってないか?

176:デフォルトの名無しさん
06/06/11 16:49:37
>>171
うpはdvi形式でおk

177:デフォルトの名無しさん
06/06/11 17:06:53
>>175
オリジナルのMTも32bit版と64bit版で出力違うから気にしなくていいと思う

178:デフォルトの名無しさん
06/06/12 06:13:17
で、初期化がどーのこーのに難癖つけてた件は結局うやむやのうちに終了しちゃったの?

179:デフォルトの名無しさん
06/06/12 10:48:14

そもそも何で乱数に初期化が必要なんだ?

種から生成するアプローチ以外の方法は無いのか?


180:デフォルトの名無しさん
06/06/12 16:50:29
MT-32よりCM-64の方が面白いよ

181:デフォルトの名無しさん
06/06/12 18:19:34
ローランド音源かよw

182:デフォルトの名無しさん
06/06/12 18:21:24
>>178
心配なら暗号論的乱数で初期化汁、そこまで気にしないならどうでもいい、でFA出ちゃったからね。

183:デフォルトの名無しさん
06/06/12 18:57:12
線形合同法で十分

場合によっては

184:デフォルトの名無しさん
06/06/13 00:26:32
いけぬますれ

185:デフォルトの名無しさん
06/06/13 00:48:08
>>184
そんなこと言ってないでなにか話題提供してくれよ

186:デフォルトの名無しさん
06/06/13 03:09:15
擬似乱数について素人ですが、教えて頂けないでしょうか?

(0,1)の擬似乱数をMT19937(作成者のHPからFortranソースを拾ってきた)で発生させて、
その平均値と標準偏差が0.5と0.25になるのを確認しようとしました。
(作者の作成したサンプルデータと同じ結果がでることを確認しました。)
平均値は0.5にかなり近づくんですが、標準偏差が0.28程度になります。
乱数の個数を増やしていくと、0.28程度で収束しているように見えます。
octave(実装されてる乱数生成器)でもやってみたんですが、0.25程度に収束しません。

よろしくお願いします。


187:デフォルトの名無しさん
06/06/13 04:27:11
[0,1] の一様分布に従う擬似乱数の標準偏差が
1/sqrt(12) に収束するのは別に何もおかしいところが無いわけだが

乱数の話というよりか確率・統計の話だな

188:デフォルトの名無しさん
06/06/13 13:49:37
187さんへ
 ありがとうございます。
 たしかに、1/3-(1/2)**2でも0.288...になりました。
 0.25と思い込んでいました。

189:デフォルトの名無しさん
06/06/14 01:07:11
>>175
それ以前に、メルセンヌツイスタはBSDライセンスのはずなのに
ソースコード中にライセンスについて一切の記述がない事がまずいと思う。
SYN氏、忘れてんのか?

190:デフォルトの名無しさん
06/06/14 01:13:54
そーいや乱数発生器のライセンスってどうなってるんだ。
AESはフリーなんだっけ?

191:デフォルトの名無しさん
06/06/14 05:53:41
yes

192:デフォルトの名無しさん
06/06/14 21:52:44
Rijndaelだけ?他のは?

193:デフォルトの名無しさん
06/06/15 10:46:52
自分で調べろ

194:デフォルトの名無しさん
06/07/08 19:10:20
量子論的乱数発生器ってある?

195:デフォルトの名無しさん
06/07/08 22:27:59
Intelの最近のチップセットには内蔵されてるはず

196:デフォルトの名無しさん
06/07/09 02:16:37
詳細規模んう

197:デフォルトの名無しさん
06/07/09 08:39:00
なんでコンピュータは擬似乱数しか出せないの?

198:デフォルトの名無しさん
06/07/09 09:45:09
真性乱数も出せるだろ、専用のハードウェアがあれば。

199:デフォルトの名無しさん
06/07/09 12:52:06
>>197
決定性チューリングマシンだから。

ところで非決定性なら一様乱数が得られるアルゴリズムがあるのか?

200:デフォルトの名無しさん
06/07/09 14:55:03
>>197
つ /dev/random

201:デフォルトの名無しさん
06/07/09 19:03:50
>>199
> ところで非決定性なら一様乱数が得られるアルゴリズムがあるのか?
真性乱数は無理。

というか、非決定性チューリングマシンができてしまうと、
今まで暗号論的擬似乱数と呼んでいたものの前提が全て崩れちまうな。
Wikipedia項目リンク

202:デフォルトの名無しさん
06/07/10 01:33:58
>>201
えっと、そんなことはないです、オーダー的に。デタラメ言わないで。

203:201
06/07/10 02:36:50
>>202
え、なんでだ?

非決定性チューリングマシンとはNP完全な問題を多項式時間で解くマシン、
すなわち、単純な総当たりで解くしかない(=解くには指数時間かかる)と思われていた問題を
多項式時間で解いてしまうことのできるマシンであるから、
RC4などストリーム暗号で使われる暗号論的擬似乱数列も多項式時間で解けちゃうでしょ。

204:デフォルトの名無しさん
06/07/10 21:01:48
どうでもいいがWikipediaを参考文献として引き合いに出すのは勘弁してくれw

俺が書いた文章だったりするからwww

205:デフォルトの名無しさん
06/07/10 21:13:30
>>204
嘘書いたの?

206:デフォルトの名無しさん
06/07/11 06:52:21
自分の使ってる狭い専門用語を広めるのには便利かもしれないな。

207:デフォルトの名無しさん
06/07/11 13:35:06
>>109の方法をやってみたら
どの乱数列データもまったく圧縮できないorz

208:デフォルトの名無しさん
06/07/11 18:56:18
>>205
いやそういう意味じゃないが、非常に照れくさい……

209:デフォルトの名無しさん
06/07/19 03:02:36
ま、素人はそう考えるわな。

210:デフォルトの名無しさん
06/07/19 03:07:16
間違ってるけど

211:デフォルトの名無しさん
06/07/19 12:52:58
一様な乱数のお薦めを見繕ってくれ

212:デフォルトの名無しさん
06/07/19 13:08:01
MT

213:デフォルトの名無しさん
06/07/19 18:00:52
C99のrand()関数は「ラグ付きフィボナッチ」だと聞いたけど、
どんなアルゴリズムなの?

214:デフォルトの名無しさん
06/07/19 18:12:33
アルゴリズムまで規定してたっけ??<C99

215:デフォルトの名無しさん
06/07/19 20:30:32
x_i = a * x_(i-p) + b * x_(i-q) (mod M)
狭義のlagged Fibonacciだとa = b = 1.


216:デフォルトの名無しさん
06/08/26 01:43:17
線形合同法と似てない?

217:デフォルトの名無しさん
06/10/08 06:58:26
>>211
一様では乱数とは言わない。
特定の周波数幅に対するホワイトノイズ乱数というのなら可能。
この場合は特徴があるが、目的に使う限り特徴は現れにくい。

218:デフォルトの名無しさん
06/10/08 07:16:59
>>217
フィルタ使わずそんなもん発生する事できるのか
是非教えてくれ

219:デフォルトの名無しさん
06/10/09 18:00:37
ちょークロックの早いPCM合成チップで生成

220:デフォルトの名無しさん
06/10/09 18:54:49
ブラム・ブラム・シャブって乱度高そうだな
シャブ打ってラリってそうな響きだ

221:デフォルトの名無しさん
06/10/09 23:00:54
>>218
例えば想像する対象をサイコロの目としてみる。
1から6まで均等にでる乱数なら可能だろ
その種類だけ格納するテーブルを作って
確立が高い部分か低い部分を再度乱数を求め補正するだけ
原始的な方法で昔から使われている。
記憶容量に依存するが、多重評価することで要求に対するバランスが測定
可能であれば、それを元に補正するだけでいい。
この方法だと周期はでるが、結果として分かっている周期を補正するのは
容易だろう。
任意の偏りがでるかスペクトルを測定し再評価すればいいだけの話だね。

222:デフォルトの名無しさん
06/10/10 00:38:32
統計を取って補正すると、乱数じゃなくなるけど?
時系列で見ると偏ってるからね。

223:デフォルトの名無しさん
06/10/10 00:45:37
もともと偏った確率で目が出る疑似乱数に、統計情報を加えて一様乱数にしようとすると、必ず波が出来るよ。
パチンコやスロット台で波が出来るのもこのせい。

224:デフォルトの名無しさん
06/10/10 01:20:57
>>222
10年間同じ値が続いても乱数。無限に長い時間からすれば確率的には存在する。
そのぐらい理解しておけ

225:デフォルトの名無しさん
06/10/10 01:23:04
>>223
元の擬似乱数にある偏りが表にでただけで偏りがすくないものなら
測定できるような波はでない。
それに波がでたとしてもそれをフィードバックさせるだけで補正は可能。

226:デフォルトの名無しさん
06/10/10 01:25:25
まあ、224と225が別人で、まったく逆の方向を指してるのだけはわかった。

227:222
06/10/10 01:39:12
>>224
統計を取って補正しちゃうと、それが不可能になるって言ってるんだけど?

228:デフォルトの名無しさん
06/10/10 19:31:09
バカな俺に「一様では乱数とは言わない」の意味を教えて下さい。
一様乱数は一様ではないの?

229:デフォルトの名無しさん
06/10/10 19:40:53
Wikipedia項目リンク

230:デフォルトの名無しさん
06/10/10 23:18:00
一応乱数

231:デフォルトの名無しさん
06/10/13 14:21:51
>>228
一様だと周期があるということになるのは理解できない?
一様乱数とは有限の範囲内では周期がないが、それ以上だと
周期がある乱数を言う。
>>224
それは自然乱数の本質だな
>>225
これは正規乱数の類だな。上のwikiに解説してあるからしっかり読んでおけ。


232:228
06/10/13 17:44:49
>>231
>一様だと周期があるということになるのは理解できない?
はい。
「一様であること」とは「偏りがないこと」と理解しています。なので、
>それ以上だと
>周期がある乱数を言う。
「一様であること」と「周期があること」の関係が解らないでいるのです。

233:デフォルトの名無しさん
06/10/14 01:15:08
数学出来なそうなニオイ…

234:デフォルトの名無しさん
06/10/14 02:45:28
横レスで済まんが、俺もわからないんで、デキるあなたが解説してよ>>233
暗号と情報セキュリティのお勉強はしたけど、正直乱数はよくわからん

235:デフォルトの名無しさん
06/10/14 03:09:53
>>231が何言ってるのかは全く不明だけど、

特定の有限回の試行での一様性が担保されているなら、
それは全く乱数ではない、というのは自明だと思う。

ところで、疑似乱数は内部状態を有限量のデジタルデータで
持つという仕組み上、有限の周期をもつこともまた自明。
なわけで、一様な疑似乱数=乱数ではない、ということになる。
のか?

一様だろうがそうでなかろうが、所詮周期があるという点で
「疑似」乱数でしかないわけだけど、一様性が担保されている
場合は、そうでない(一様かどうか不明な)場合と違って、
周期の終わりの方では次にでる数字を推定しやすくなる。
ギャンブルには使いにくい。

236:デフォルトの名無しさん
06/10/14 08:34:34
普通のrandじゃいけない理由は?

237:デフォルトの名無しさん
06/10/14 09:57:42
>>236 その「理由」を君が知りたい理由は?

238:デフォルトの名無しさん
06/10/14 10:04:34
>>237日本語でおk

239:デフォルトの名無しさん
06/10/14 13:11:10
ところで、
URLリンク(www.optoscience.com)
の真性乱数発生器ってのはホンモノなの?
熱雑音を利用したチップやボードはよく見かけるけど、
量子乱数ってのはあまり見かけないような気がするッス
どういう仕組みになってるんだろうか…

240:デフォルトの名無しさん
06/10/14 13:58:00
周期が終わったら初期化すればいいじゃない

241:デフォルトの名無しさん
06/10/14 14:48:04
>>236
いまどき普通のrandを使う理由は?

242:デフォルトの名無しさん
06/10/14 14:50:22
>>241
いまどきじゃないrandが存在する理由は?

243:デフォルトの名無しさん
06/10/14 17:37:21
>>242
いまどきじゃない方が便利だから

244:デフォルトの名無しさん
06/10/14 17:40:53
便利かどうかで言えば、便利さは「同じ」だと思うな。
重要なのは、目的を達成するための手段として妥当かどうかだよ。

245:デフォルトの名無しさん
06/10/14 23:00:51
少なくとも理不尽さを軽減する効果はある。

ユーザ「なんでここで○○が出て来るんだよ!ありえないだろ!!!」
開発者「MTですから、乱数に変な癖は無いですよ」
ユーザ「そうか・・・偶然じゃあしょうがないな・・・」

みたいな。

246:デフォルトの名無しさん
06/10/14 23:20:35
Civシリーズの乱数FAQを思い出すナー

247:デフォルトの名無しさん
06/10/14 23:36:06
メルセンヌ・ツイスタのホームページが存在しないんだけど
作者はもう慶応には居ないってこと?

248:デフォルトの名無しさん
06/10/14 23:45:00
>>247
普通に"MT 乱数"とかでググれば出てくると思うが

249:デフォルトの名無しさん
06/10/16 10:22:55
civの乱数には波がある

250:デフォルトの名無しさん
06/10/16 12:05:45
すいません、昭和初期の国産バスの図面を探しているのですが、
適当な資料をご存じの方がいたら教えてください。

251:228
06/10/16 15:19:19
>>235
>一様性が担保されているなら
…あ、そうか。やっぱ俺はバカでした。
ありがとうございます。ひとつ賢くなりました。

252:デフォルトの名無しさん
06/10/18 17:36:16
>>251
本物?釣り氏?w

253:デフォルトの名無しさん
06/10/18 18:18:59
一様性が担保されていても、長ーい周期の疑似乱数の最初の方だけ
使うんならあまり問題にならないような気がする。

40万組みのシャフルしたトランプから10枚だけ引くとか。

254:デフォルトの名無しさん
06/10/18 20:06:33
ここまでの俺の理解:
(1)周期があるというのは、別に一様にしようがしまいが疑似乱数である限り言えること

(2)一様乱数の場合は、そうでない疑似乱数と比べて
      周期の終わりに近づくにつれてさらに予測しやすくなる

(3)>>231が前半二行で(1)以外の情報を伝えたかったのかどうかは不明

255:デフォルトの名無しさん
06/10/18 23:53:23
一様乱数の意味を勘違いしてる人が多いな。

(正しく作られた)サイコロは過去の出目に関係なく、次にある数字が出る
確率はすべて等しい。= 一様である。
サイコロを続けて振って得られる数列は一様乱数になる。

ソフトウエアで生成する乱数が原理的に真性乱数になり得ないのは
まったく別の話。一様性とは無関係。

256:デフォルトの名無しさん
06/10/19 03:41:58
なるほど、その勘違いした人が大声で解説すると。
悪貨が良貨を駆逐するとはこのことか。


257:デフォルトの名無しさん
06/10/19 04:10:57
>>255
やっぱそうなのか
上の話を読んで
「サイコロを6回ふったら、1から6までの目がどれもぴったり1回出る」
が一様乱数かと思って焦ったよ

258:デフォルトの名無しさん
06/10/19 11:45:46
>>255
疑似乱数の場合、
>確率はすべて等しい。= 一様である。
ものと、そうでないものがある、というのはわかっていますか?


259:デフォルトの名無しさん
06/10/19 12:08:06
なんでこう自分の言いたい内容を明確に書かない臆病者が多いんだろうね?
ム板の特徴なのかな

260:デフォルトの名無しさん
06/10/19 12:16:47
>>255
(有限の)周期があって、かつ一様な疑似乱数の特性について
教えてください。1周期内では各数字は同じ回数だけ現れますか?

261:デフォルトの名無しさん
06/10/19 14:32:38
>>258
なぜ「過去の出目に関係なく」という部分まで引用しない。
重要なところだぞ。
また、間違ってると思ったらどこがどう間違ってるか書いてくれ。

262:デフォルトの名無しさん
06/10/19 23:38:43
一度ギャンブル用のサイコロとかプログラムで作って、現金懸けていわゆる賭博でもしてみれば身にしみてわかるさw

263:デフォルトの名無しさん
06/10/20 11:30:26
基本的に目的に使うものに影響がでない周期にして使えば問題ない。
厳密に一様というのは、愚かな考え。
1つの周波数に対して一様なのは可能だが。

264:デフォルトの名無しさん
06/10/20 22:58:19
>>262
プロと対峙して「てめぇいかさまだな」とか言われた日には。


265:デフォルトの名無しさん
06/10/23 11:35:42
>>264
その日を境に行方不明になると

266:デフォルトの名無しさん
06/10/25 00:15:58
サイコロの目は1から6まで均等にはでない。これが物理現象。
理屈の上の乱数と実際に作れる乱数とは別なことを理解できないとは
愚かだよな。
理屈上のサイコロでも「有限回数」の出目は一様ではない事実、これが何故か
理解できないの池沼に説明しても無駄だから放置だw


267:デフォルトの名無しさん
06/10/25 00:29:16
いや、単に「一様」という言葉を
「どの目も同じ回数出る」と誤解してる人がいて
勘違いしてる人もしてない人も混乱しただけだろ。

268:デフォルトの名無しさん
06/10/25 00:51:09
>>267
どの目でも確率分布を一様にさせると言う事は、出る回数が同じになって行くと言う事じゃないのか?

269:デフォルトの名無しさん
06/10/25 00:56:51
>>268
そうじゃなくてサイコロを600回振ったら100回1が出る
という意味の「同じ回数」。
出目が一様なサイコロを600回振っても1が100回じゃない
ことの方がずっと多い。

270:デフォルトの名無しさん
06/10/25 01:02:53
>>269
100回でも99回でも101回でもいいけど、100回に近くするって事だろ?
99回ならもう一回出そうかな?とか、101回出てたら、もう控えようかな? とか、操作するんだよね?

271:デフォルトの名無しさん
06/10/25 01:03:44
>>268
> どの目でも確率分布を一様にさせると言う事は、出る回数が同じになって行くと言う事じゃないのか?
全然違う。
たとえば、n回サイコロを投げて1の目が出た回数をk1、2の目が出た回数をk2とすれば、
nを大きくしていくと k1/n と k2/n はともに 1/6 に収束していく(大数の法則)が、
|k1-k2|の期待値は大きくなっていくんだよ。

272:デフォルトの名無しさん
06/10/25 01:09:33
>>270
何の話だ?
まず、そういう操作をしたら一様でなくなってしまう。
過去の出目から未来がある程度予測できてしまうから。

で、そういう操作をする乱数の名前は知らない。
確かに、「誤用の一様」の意味はそれかも。
実用性はありそうだが、名前付いてる?

273:デフォルトの名無しさん
06/10/25 01:20:30
>>272
ギャンブルマシンと言われるゲーム機やパチンコ台やスロットの中身

274:デフォルトの名無しさん
06/10/25 14:07:29
サイコロは真性乱数。規則性とかないんだから、いつでも確率で語るしかない。
しかし、初期条件で全て決定される疑似乱数で各出目の出現回数が違ったら、
それは一様でないということなんじゃないの?


>>273
スロやパチはほとんど真性乱数とみて問題無いよ。
現在スロで主流の方法は、数MHzのクロックを16bitのカウンタで数えていて
レバーが叩かれた時にラッチするというもの。
カウンタが1周する周期が0.03秒とかだから、人間がレバーを叩いているかぎり
ほとんど真性乱数といえる。(だからソレノイドでレバーを叩いて狙う方法が存在する)

275:デフォルトの名無しさん
06/10/25 23:49:24
>>254
> (2)一様乱数の場合は、そうでない疑似乱数と比べて
>       周期の終わりに近づくにつれてさらに予測しやすくなる
それは違う。

一様でない疑似乱数、たとえば"1"が1/2の確率で"2"〜"6"がそれぞれ1/10の確率で
出現する疑似乱数列があるとして、その周期の大半を消費したとき"1"の出現率が
1/2より小さければ、周期の残りでは"1"の出現率が1/2より大きくなる。

つまり、次にでる数字を推定しやすいのは、その疑似乱数列の周期と分布が
「既知」であり、その周期に対して十分な長さの過去の乱数列を知っている場合だってこと。
その既知の分布の種類は、一様分布でなく二項分布であってもいいわけだ。

276:デフォルトの名無しさん
06/10/26 11:02:45
乱数は、完全な一様性を示さないものだろ、
サイコロの目のような有限の個数の値が
どの数も確立も一定なら真の乱数ではない。
単なるスペクトルの問題であり、長超周期の乱数を否定しなければ
短期間の乱数の一様性を守ることは不可能だろ。
おまいらが有限と思っている期間でさえ無限に近い乱数の価値観から
すれば短い期間であり、同じ値が続いたとしても確立の1つである。
短い期間が1億回同じ値が続くケースが存在したとしても、
乱数として間違いはない。
つまりだ、人間が扱える乱数とは有限回数の中でどの周波数成分でも
似た値を示すような数値を乱数と判断しているだけ。周期は確実にあり、
実用であるか、どうかの問題にしかすぎない。
プログラム板としては。ライブラリーが提供するような激しく短いビット
数の乱数を使うからこそ周期や特徴が出てしまうだけで、長い周期を
比較的単純なアルゴリズムで作れば問題はありえない。
円周率とか、無限級数でも使えw

277:デフォルトの名無しさん
06/10/26 15:11:27
>>275
>それは違う。
中略
>つまり、次にでる数字を推定しやすいのは、その疑似乱数列の周期と分布が
>「既知」であり、その周期に対して十分な長さの過去の乱数列を知っている場合だってこと。

「違う」といいながら同じことを言っているような気がする。

278:デフォルトの名無しさん
06/10/26 16:44:04
>>276
何を主張したいのかよくわからんが、
一様の説明で例に出したサイコロは理想的なサイコロで、
理想的なサイコロは完全な一様性を示す。
有限回振ることが前提でも一様性は変わらない。
>>270みたいのを一様だと思っているのか?違うぞ。

>>277
同じことは言ってないだろ。ちゃんと違うよ。
>>254は一様乱数の場合に予測できると書いていて、(←間違い)
>>275は周期と分布が既知の擬似乱数の場合に予測できると書いている。

279:デフォルトの名無しさん
06/10/26 20:38:54
>>254は「周期の終わりの方では」と書いているんだから、
周期の終わりの方を使っていることが解る⇒周期が既知、
が前提なんじゃないのか?分布も「一様」が前提だし。

280:デフォルトの名無しさん
06/10/26 20:58:11
>>279
ああ、そういうことか。
>>254(2)は、一様かつ周期があると言っているが、
これは言葉が矛盾してる。周期があったら一様じゃない。
ていうか擬似乱数は一様にならないだろ。

281:デフォルトの名無しさん
06/10/26 21:28:23
指向性が無ければ一様といえる

282:280
06/10/26 21:34:11
あ、ちょっと勘違いしてたかも。
>>275は周期のある擬似乱数に関して、
分布が既知ならそれが「一様分布でなくても」
予測ができる、と主張してるんだ。

>>254の勘違いは、一様の意味を>>268のように思っていること。
実際は>>271の言うように一様でも|k1-k2|の期待値は大きくなっていく。

更に、>>268のような数列は乱数ではあり得ない。
一様であるなしに関わらず乱数ならば過去の数列から予測は不可能。
逆に擬似乱数の場合、分布が一様でも何でも既知ならある程度予測ができる。

ということは、>>255も誤解を招く表現だ。
サイコロで次に出る目が過去の出目に関係ない=乱数
サイコロでどの目が出る確率も同じ=一様
擬似乱数に対して一様という言葉を使うかどうかは知らないが、
乱数であるならば既に過去の出目には関係ないので、
過去の出目に関係ないことを言うのに一様を主張する必要はない。

283:デフォルトの名無しさん
06/10/26 21:48:58
はっきり言って俺最強すぎて我慢できない

284:デフォルトの名無しさん
06/10/27 00:38:08
>>282
勘違いしているなら、「あ、ちょっと勘違いしてたかも。」は
常識が無い発言だよなw

285:デフォルトの名無しさん
06/10/27 02:02:26
一様性を検査しなくていいの?

286:デフォルトの名無しさん
06/10/27 02:07:39
>>285
一様性を「証明」する方が重要じゃないの

287:デフォルトの名無しさん
06/10/27 23:14:52
>>254=>>257です
>>254は「この人はこう言いたかったのかな?」と予想して書いたものなんで悪しからず

>>276
>短い期間が1億回同じ値が続くケースが存在したとしても、
>乱数として間違いはない。

確率分布が一様分布な確率変数のとる値が、たまたま一億回同じ値だったとしても
それは乱数ってことですよね。
(ここのほとんどの人は最初からそれは了解してるように思う)


>つまりだ、人間が扱える乱数とは有限回数の中でどの周波数成分でも
>似た値を示すような数値を乱数と判断しているだけ。

何か数列があって、それがバラバラな値の列だから乱数だ、そうでないから乱数じゃない、ってのは
そもそも違うってことですよね?
「どうやって採られたものか」が重要である、と。

んで
・有限長の数列を用意して、それを乱数として使う場合は
  統計的に値の出現頻度が偏っているときに、それを補正することもある

・疑似乱数は有限の長さの数列の後に同じ数列の繰り返しになる

この二点がとりあえず事実ということでおk?

288:デフォルトの名無しさん
06/10/27 23:15:59
訂正

×疑似乱数は
〇疑似乱数生成器の出力は

289:デフォルトの名無しさん
06/10/28 01:02:27
粘着しているのは極度に短い周期の擬似乱数=ライブラリーに付属しているような
ものを利用して乱数の一様性を補正すれば、乱数ではなくなるように勘違い
しているとかか?
極度に短い擬似乱数ではなく、極度に長い周期の乱数を用いて、目的の
一様性が保たれれば変な癖などでないだろ。元にしている擬似乱数が
貧弱すぎるじゃまいか?


290:デフォルトの名無しさん
06/10/28 08:19:35
>>287
>統計的に値の出現頻度が偏っているときに、それを補正することもある
どういう補正を考えてるの?

「1が続いたので次に1が出る確率を減らす」ような処理ならばNo。
そのような数列は乱数とは呼ばない。
乱数とは過去のデータにかかわらず常に一定の確率分布を持つもの。

計算によって異なる確率分布の乱数を作る事はある。
例えば、一様分布の乱数を利用して正規分布の乱数を得る等。

291:デフォルトの名無しさん
06/10/30 01:03:45
有名な同じ値が続かない乱数の作成方法として。
基本の擬似乱数発生から乱数がでる目の数だけ記録
(1から1000なら1000ビット)
同じ値が出た場合は出てないビットがでるまでか、適当な位置から
出ていない数値を検索しそれを乱数とする。
この場合だと1000回の周期があるが1000回中は同じ値がでないように
できる。
1から1000まで同じ確立で発生し、その発生根本は別の擬似乱数など
から流用すればいい。
これは表面上は同じ値が続かないし元の擬似乱数が乱数的であれば
それなりに使える、例えばシャッフル再生などの音楽プレーヤーの
アルゴリズムなどで採用されている例がある。


292:デフォルトの名無しさん
06/10/31 17:45:56
>>291
それがFA?

293:デフォルトの名無しさん
06/10/31 22:32:18
>280
>>>254の勘違いは、一様の意味を>>268のように思っていること。
>実際は>>271の言うように一様でも|k1-k2|の期待値は大きくなっていく。

それは真の乱数の話ではないでしょうか。
このスレでは疑似乱数についてだけ話すようにしないと混乱の元では?
>>更に、>>268のような数列は乱数ではあり得ない。
これも同様。

294:デフォルトの名無しさん
06/10/31 22:41:15
>>291
それは乱数というよりシャフルというかなんというか。

それはともかくとして、確率分布を補正する方法としては
目的の分布をもつ真の乱数列からなる適当なサイズの乱数表があれば、
疑似乱数でその表のn番目を拾ってゆくような方法があるような気がする。

どれくらいの大きさの表が必要なのかはよく分からないけど。


295:デフォルトの名無しさん
06/10/31 22:47:13
ループしすぎ

296:デフォルトの名無しさん
06/10/31 23:11:02
>>293
その通りだ。混乱しそうな場合は単に乱数と言わず、
「真の乱数」「擬似乱数」と言った方がいいね。
>>282は真の乱数のつもりで話している。

擬似乱数に対して一様という言葉を使ったら、
単に擬似乱数の周期の中でどの数が出る回数も同じという意味だよな。
1,2,3,4,1,2,3,4,・・・という周期的な擬似乱数(質は最悪だが)も、一様ということになる。
こういう使い方は正しい?

297:デフォルトの名無しさん
06/10/31 23:26:51
>>296
> 1,2,3,4,1,2,3,4,・・・という周期的な擬似乱数(質は最悪だが)
そこまで短い周期の数列を「擬似乱数」と呼ぶのは変だと思う。
「擬似」乱数なんだから、ある程度は真の乱数の代替に使えるくらいの
性質を持ってないと。

だから、ちょっとやそっとじゃ一周できないくらいの長い周期を持っていることは
「擬似乱数」と名乗るための重要なファクターだと思う。

298:デフォルトの名無しさん
06/10/31 23:30:17
>>297
つまり、ある程度乱数っぽい列に対しては
一様乱数という言葉を296の意味で使っていいということ?

299:デフォルトの名無しさん
06/10/31 23:58:37
おまいら、円周率つかえ。

300:デフォルトの名無しさん
06/11/01 00:24:54
円周率やルート2って、真の乱数と言えないような要素ある?
1億桁目までの数字の偏りとかじゃなくて、本質的にわかっている部分で。

301:デフォルトの名無しさん
06/11/01 00:43:21
円周率は、任意の桁までは計算によって求める事が可能。
今まで出た数値が円周率の数値と同じならば、次に出る数値は計算によって算出可能。
この事は、予測可能な事を意味する。
よって乱数ではない。

302:デフォルトの名無しさん
06/11/01 01:37:13
>>301
下手な疑似乱数より周期長くていいぞw

303:300
06/11/01 01:42:15
>>301
> 今まで出た数値が円周率の数値と同じならば、次に出る数値は計算によって算出可能。
円周率に近い別の無理数かもしれない。例えばπ+1/√(10^1000+1)とか。

で、俺が聞きたかったのはそういうことではなくて、
例えば円周率の10^1000+1桁目から10^1000+10^20桁目までの列と、
真性乱数の10^20個の列を与えられたときにある程度の区別が付くか、ということ。
わかりにくくてスマソ。

304:デフォルトの名無しさん
06/11/01 06:39:59
真正な乱数ならどんな数列でも出現する可能性はあるわけで、
数列だけを比較して区別するなんて不可能でしょ。

305:デフォルトの名無しさん
06/11/01 08:08:48
>>304
そんなことはわかっている。
だが、例えば「1の後には2が来やすい」のような傾向があれば
十分な長さの列があればほぼ確実に判定できるだろ。

306:デフォルトの名無しさん
06/11/01 09:02:29
わかっているなら聞くまでもないじゃん。

307:デフォルトの名無しさん
06/11/01 23:39:31
大学教授、円周率を計算し過ぎて逮捕
URLリンク(www.faireal.net)

308:デフォルトの名無しさん
06/11/01 23:53:09
>>307
あのカスラックなら本当に言い出しかねんな

309:デフォルトの名無しさん
06/11/02 00:34:57
>>301
無限に続くものは任意の桁まで計算できない。
理由は、計算するまでに宇宙が終わるw
人類も機械も消える。
愚かだなw

310:デフォルトの名無しさん
06/11/02 00:48:07
「任意の桁はどこにしますか?」
「無限桁目にします」

311:デフォルトの名無しさん
06/11/02 01:07:13
バカだな 宇宙が終わるなんて都市伝説だよ

312:デフォルトの名無しさん
06/11/02 01:47:41
宇宙が意思、知能を持っていて、宇宙自身が算術を可能という説もある。
というのは、ガセ。

313:デフォルトの名無しさん
06/11/02 02:56:59
42

314:デフォルトの名無しさん
06/11/02 03:57:58
42 :デフォルトの名無しさん :2006/05/04(木) 08:51:13 
要するにマンコ 

315:デフォルトの名無しさん
06/11/02 14:23:01
地面は平らだ。丸いわけがない。
象が支えて亀が歩いているんだ。
宇宙があるなんて都市伝説だ。

316:デフォルトの名無しさん
06/11/02 20:25:42
人間なんて居るわけが無い。
これは全部俺の妄想だ、夢だ。

317:デフォルトの名無しさん
06/11/03 04:02:16
>316
お前今「嘘」ってWOP使うの避けたろ

318:デフォルトの名無しさん
06/11/03 12:40:49
何で擬似乱数程度でこれほど燃えるんだよ、馬鹿ばっかりだなw

319:デフォルトの名無しさん
06/11/03 12:57:37
燃えてるように感じてるのは多分お前だけ

320:デフォルトの名無しさん
06/11/04 02:58:27
319みたいなDQNばかりだけど勘弁してやれ>318

321:デフォルトの名無しさん
06/11/04 04:25:47
折角萌えるなら擬人k

322:デフォルトの名無しさん
06/11/06 00:48:31
とうとう煽り愛のスレに成り果てましたか?


323:デフォルトの名無しさん
06/11/10 15:09:58
>>294
短い周期なら乱数だろ?0と1の2種類とかw

324:デフォルトの名無しさん
06/11/10 17:27:29
>>291
最初は[1,n]の乱数で、次は[1,n-1]の乱数…と発生させてその出力を使えば同じこと。

325:デフォルトの名無しさん
06/11/23 11:03:50
で、おまいらがほしい乱数とは、数値が連続せず、どの数値も同じ確立に
なりやすい擬似乱数だろ?
プロセッサのリヤルタイムクロックに同期するようなプログラムはほぼ
困難というか事実上は不可能だろうから
それでも利用すればいいんじゃないか?連続に高速で利用する場合も
考慮して乱数テーブルでも用意してミックスすればよさげ。

326:デフォルトの名無しさん
06/11/23 11:06:39
そんなあなたに
URLリンク(www.t-rs.co.jp)

327:デフォルトの名無しさん
06/11/23 12:08:13
時計もないしメモリの状態も常に一定の環境で
擬似乱数を発生させたいんだけど
不確定要素が無いので種がいつも同じなので
動作が常に一定になってしまい
擬似乱数にならないのです
どうしたらいいのでしょうか?


328:デフォルトの名無しさん
06/11/23 13:45:00
サイコロ振って手入力

329:デフォルトの名無しさん
06/11/23 13:55:21
外部要因で動作・変化する何かがないとムリだっぺ

330:デフォルトの名無しさん
06/11/23 14:10:35
>>327
よく使う手だけど
メモリをちょっと壊す

331:デフォルトの名無しさん
06/11/23 15:13:12
>>327
人間に2回何かさせる。


332:デフォルトの名無しさん
06/11/23 15:15:11
>>327
原理的に不確定要素が必要だから、何とかするしかない。
メモリ状態、ユーザの入力、CPUjの状態、
それでもダメなら種を予め手入力しておく。

333:327
06/11/23 16:19:37
やはり不確定要素が必要なのですね
アドバイスありがとうございました

334:デフォルトの名無しさん
06/11/23 20:23:10
そこでUSBガイガーカウンタですよ。

335:デフォルトの名無しさん
06/11/26 12:39:36
擬似乱数の萌え擬人化希望

336:デフォルトの名無しさん
06/11/26 17:18:11
> メモリの状態も常に一定
ずっとHLTでもしてるのか?

337:デフォルトの名無しさん
06/11/26 18:21:36
>>336
初期値がクリアされているシングルスレッドではないかと・・・
いや、やっぱずっとHLTかな・・・

338:デフォルトの名無しさん
06/11/28 05:08:43
>>332
昔と違ってOSが動いているPCなら普通に不確定要素のタイミングで
動いている。
CPUコアのリヤルタイムクロックとアイドリングで動くカウンター要素
等を組み合わせても不確定要素を簡単に抽出可能だろ。
ワンチップマイコンや電子回路程度では話は変わってくるだろうけどな


339:デフォルトの名無しさん
06/11/28 05:11:25
時計もないしメモリの状態も常に一定の環境

340:デフォルトの名無しさん
06/11/28 08:05:30
リヤルタイム

341:デフォルトの名無しさん
06/11/28 13:50:36
>>334
プーチン政権を批判するロシア人に持たせれば
良質な乱数が作れそうだな。


342:デフォルトの名無しさん
06/11/28 14:57:40
>>341
All1で乱数にならない罠。

343:デフォルトの名無しさん
06/11/29 16:51:41
擬似乱数なんてストリーム暗号の出力使えばいいじゃん

344:デフォルトの名無しさん
06/11/30 12:06:53
マリーアントワネット様キタ

345:デフォルトの名無しさん
06/12/02 22:43:18
>>325
>で、おまいらがほしい乱数とは、数値が連続せず、どの数値も同じ確立に
>なりやすい擬似乱数だろ?

このへんが少し困るところだよな。
人によっては(もしかするとかなり多くの人が)その方がランダムだと
思っちゃうんだよな。
もしサイコロで6が5回位続いたら仕込んであると怪しまれそう。
同じ目が続かない方が乱数としてはおかしいんだけどな。
短周期で目の分布がいつも揃ってたらそれもおかしいし。
52314ときたら次は6だろうみたいな。
人の感じる乱数性は真の乱数性とは違うんだろう。

346:デフォルトの名無しさん
06/12/03 22:06:11
音楽のランダム再生などは、真の乱数性ではなく、
人がランダムと感じることこそが重要だが、
こういう擬似乱数列を得る手法で有名どころとかある?

347:デフォルトの名無しさん
06/12/03 22:46:36
>>346
単なるシャッフル再生じゃダメなのけ?

348:デフォルトの名無しさん
06/12/03 23:13:51
シャッフルといってもいろいろあるべさ。
某MP3プレーヤのシャッフルリピートは同じ曲を3回繰り返したし、
某なんとかシャッフルのシャッフルリピートは同じ曲を一回おきに3回繰り返した。

349:347
06/12/03 23:41:42
ランダム再生とシャッフル再生を区別しているプレイヤーもあるな。

ランダム再生
… 一曲終わるたびに、次に再生する曲を全プレイリストの中からランダムに選ぶ。
シャッフル再生
… 再生開始時にプレイリストの一覧をシャッフルしたものを内部的に作り、
その順序にしたがって再生する。プレイリストの全曲を再生し終わったら
もう一度プレイリストをシャッフルする。

この分類だと、>348のようなことはランダム再生だと起こりうるが、
シャッフル再生だと起こらない。

350:デフォルトの名無しさん
06/12/03 23:54:15
>>347
言われてみればそうだな。連続出現の心配はなくなるわけだ。
あとで思い出したが、同じアルバムの曲が10曲中3曲もあるから
ランダムじゃないと感じることもある。
まあこれもバラし方を考えればいいだけで、
乱数の発生方法とは関係ない話だったな。

351:デフォルトの名無しさん
06/12/04 11:10:31
>>346
>>324みたいな乱数列を作ればいい訳で

352:デフォルトの名無しさん
06/12/05 13:57:14
>>345
擬似乱数なんだから乱数を元にしたシャッフルで問題ないだろ。
現実のサイコロにしても目の数の周期性はあるわけだし。
※理論的なサイコロではない。
単に乱数に拘るのは周期が短いライブラリーなどにある乱数関数を使うと
規則性が表面に出て見えることがある。
この点であると思う。真の乱数であるなばら規則性が目立っても
それは一時的(数年続いても無限からすれば極短期間)な挙動であって
乱数である。
何かの規則で一様性な分布がほしいのであれば「無限級数」等を使えば
言い訳で、人間から見て一様乱数にみえるのはシャッフルがもっとも
近いものじゃないか?

353:デフォルトの名無しさん
06/12/05 18:28:56
>>352
ぐだぐだな日本語に気持ち悪くなってくる。

>擬似乱数なんだから乱数を元にしたシャッフルで問題ないだろ。
シャッフルな用途にはシャッフルで問題ない。シャッフルでは困る用途もきっとある。

>現実のサイコロにしても目の数の周期性はあるわけだし。
現実のサイコロに周期性など無い。ってか「目の数の周期性」って何?

>単に乱数に拘るのは周期が短いライブラリーなどにある乱数関数を使うと
>規則性が表面に出て見えることがある。
この文は「周期が短い乱数関数を使うと規則性が見える。」でよいか?
(冒頭の「単に乱数に拘るのは」はなんなんだろう?)

>この点であると思う。
何が??

>真の乱数であるなばら規則性が目立っても
>それは一時的(数年続いても無限からすれば極短期間)な挙動であって
>乱数である。
最後の「乱数である。」はいらない。「挙動である。」で締めましょう。

>何かの規則で一様性な分布がほしいのであれば「無限級数」等を使えば言い訳で、
無限級数なんて関係無いでしょう。級数=数列の和 ですよ。

>人間から見て一様乱数にみえるのはシャッフルがもっとも
>近いものじゃないか?
人がどう見るかなんて、その人によるとしか言えない。
一巡するまで同じものが出ないものは一様乱数にみえないって人もいるだろう。

354:デフォルトの名無しさん
06/12/06 00:16:44
ところで↓こういうネタがあるんだが、どう思う?
URLリンク(bugfix.jp)

355:デフォルトの名無しさん
06/12/06 10:33:38
>>353
釣り氏?

356:287
06/12/06 15:34:10
>>290

>>統計的に値の出現頻度が偏っているときに、それを補正することもある
>どういう補正を考えてるの?

全然わからないです.というか

>「1が続いたので次に1が出る確率を減らす」ような処理ならばNo。
>そのような数列は乱数とは呼ばない。
>乱数とは過去のデータにかかわらず常に一定の確率分布を持つもの。

私もそう思う(そういう定義しか知らない)ので・・・

357:デフォルトの名無しさん
06/12/08 23:57:04
>>356
ここは擬似乱数のところだから、真の乱数、つまり論理的な真の乱数を
言うのならそれなりの説明が必要とおもわれる。
実際に必要とされるのは真の乱数ではなく、擬似乱数であり
擬似乱数にはいろいろ種類があり、用途別に話しを展開しなければ
無意味な議論じゃないのか?

358:デフォルトの名無しさん
07/01/06 20:21:25
ほしゅ

359:デフォルトの名無しさん
07/01/31 23:01:07
>>330
しょ、詳細を…

360:デフォルトの名無しさん
07/02/01 22:52:43
>>359
カオスのバタフライ現象を簡易化した形を使うのが簡易です。
シフトとビット操作で比較的簡単に作れる。
放送大学で具体的手法まで解説していたよ。
全体を均一にしたい場合はCDプレイヤーなどで
使われるシャッフルのアルゴリズムが一番簡易です。
0〜999の間なら1000ビットのRAMが最低必要になりますが。

361:デフォルトの名無しさん
07/02/02 08:09:20
CDプレイヤのシャッフルと言うと、実装方法によってばらつきがまちまちということですか?
#中には同じ曲が連続しやがるCDプレイヤも一回置きに繰り返すCDプレイヤもあるのだが。

362:デフォルトの名無しさん
07/02/02 08:46:34
それはシャッフル再生ではなくてランダム再生?

363:デフォルトの名無しさん
07/02/02 09:17:28
シャッフル再生と言い張りつつ>361のようなのはあるね。iPodShuffleも所謂シャッフルじゃないし。

364:デフォルトの名無しさん
07/02/02 16:31:17
Winampは完全なオプションでシャッフルから完全なランダムまで変化の度合いを設定できるんだよな
Morph Rateとか名づけてたっけ

365:デフォルトの名無しさん
07/02/02 16:32:05
すまん1行目訂正

Winampはオプションで完全なシャッフルから完全なランダムまで変化の度合いを

366:デフォルトの名無しさん
07/02/02 22:52:08
>>361
シャッフルを正しく実装しているものは同じ曲をバラバラにすべての曲を
1回づつ再生する機能のこと。
ランダム再生をしているのにシャッフルと名前を付けている
のは単に誤訳か、まがい物じゃないか?
URLリンク(e-words.jp)

367:デフォルトの名無しさん
07/02/02 22:54:16
公取委かJAROに訴えればいいのそれ?

368:デフォルトの名無しさん
07/02/02 23:50:08
>>366
iPodShuffule訴えてくれ。

369:デフォルトの名無しさん
07/02/03 22:08:43
>>368>>367
アップルに騙されたオマイがDQN


370:デフォルトの名無しさん
07/02/11 10:15:46
最も単純で低精度な擬似乱数の作り方てどこかにない?

371:デフォルトの名無しさん
07/02/11 10:25:27
どんなアルゴリズムでも擬似乱数と言い張れば、それは擬似乱数

372:デフォルトの名無しさん
07/02/11 10:53:43
>370
URLリンク(ja.wikipedia.org)擬似乱数

373:デフォルトの名無しさん
07/02/11 11:21:27
もっとも単純なわけでも低精度なわけでもないが
地球上でもっとも虐げられている擬似乱数アルゴリズムは
やっぱ線形合同法なんじゃね?

374:デフォルトの名無しさん
07/02/11 18:07:28
>>370
5かけて1足してffでマスク

375:デフォルトの名無しさん
07/02/14 06:24:21
>>370
擬似バタフライ効果があれば何でもいいんじゃない?


376:デフォルトの名無しさん
07/03/06 15:47:49
>>370
常に定数を返す擬似乱数がもっとも周期が短い。
これより周期の短い擬似乱数はない。

377:デフォルトの名無しさん
07/03/06 22:46:09
何も返さない擬似乱数

378:デフォルトの名無しさん
07/03/07 07:58:43
何も返さない擬似乱数は周期が短いとは言えない。
何も返さない擬似乱数は分布が偏っているとは言えない。
何も返さない擬似乱数は擬似乱数テストプログラムをテストするために使えない。
370の目的はたぶん最後のコレ。

379:デフォルトの名無しさん
07/03/07 20:58:47
>>376
定数ってだけじゃなく1bitであるべき(どうしても int にするなら 0 or -1)だろうな。
そうじゃないとbit単位のストリームとして見たときにbit数分の周期が存在することになる。

380:デフォルトの名無しさん
07/03/08 08:13:45
うむ、0と1の分布という点からも0か-1であるべきだな。
そして、0超過状態からの脱出という観点からは0であるべきだな。

381:171
07/04/10 04:02:15
いつのまにやらSIMD対応ほかいろいろ改良してるモノが出てるな。
まあ俺が以前いってたSIMD対応はメモリ上の並びをパズルみたいにコチョコチョいじるだけで
メモリ使用量も増やさず意外と簡単にできたんだが、
それ以外の改良となると、やっぱじっくり研究しないといかんわな。
悔しいが現役の学生にはかなわん。これは認めておいて、
とりあえずコード読んで高速化の余地を探すとするか。

382:デフォルトの名無しさん
07/04/10 04:26:31
どっちの乱数の方が優れているか判定をおしえろ

383:382(乱数の精度判定)
07/04/10 05:08:58
#include <stdio.h>
#include <stdlib.h>
#define N 2147483647
#define kaisu 10000000
#define PI 3.141592653589

unsigned int ransuusyokiti=1;
double rnd(){
ransuusyokiti=(int)(1664525*(double)ransuusyokiti+1013904223)&N;
return ransuusyokiti/((double)N+1);}

int main(){
unsigned int i;
double n=0.0,x,y;
for(i=0;i<kaisu;i++){
x=rnd();y=rnd();
if(x*x+y*y<=1.0)n+=1;}
printf("自前のrandの精度(値が小さいほど良い) %1.9f\n",4*n/kaisu-PI);

n=0.0;
for(i=0;i<kaisu;i++){
x=rand()/(RAND_MAX+1.0);y=rand()/(RAND_MAX+1.0);
if(x*x+y*y<=1.0)n+=1;}
printf("  Cのrandの精度(値が小さいほど良い) %1.9f\n",4*n/kaisu-PI);

return 0;}


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4383日前に更新/107 KB
担当:undef