乱数という関数のつくり


ビット  2009-10-29 04:41:08  No: 146444

関数は便利なもので、中身はわからなくても使い方がわかっていれば
よい、とのことですが。どうしても中身が知りたくなるときが
ありますよね。
VBの乱数を発生させるRnd関数はどのようなつくりになっているのでしょうか
とても興味があるのです。
さて、この関数作りにチャレンジしてみましたが、難しい
私の手には負えないことがわかりました。
どなたかこの謎をおしえてください。お頼み申します


魔界の仮面弁士  2009-10-29 05:09:52  No: 146445

> Rnd関数はどのようなつくりになっているのでしょうか
「線形合同法」による実装である事が知られています。

ついでに、このあたりが参考になるかも。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=10662&KLOG=24
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=25593&rev=&no=0

> とても興味があるのです。
Rnd とは別の生成方法で良いなら、下記はどうでしょう。

昔「成分解析」というプログラムが流行った事があるのですが、
そこで使われていた疑似乱数の生成手順が解析され、
下記の blog で公開されていたりします。
http://ledyba.ddo.jp/2006/03/28034103.php


もみもみ  2009-10-29 09:47:07  No: 146446

>聖帝さん
シードが14パターンだと、乱数の精度低すぎです。
大好きなゲームならそれでも良いかもしれませんね。

私はココをお勧めします。
http://www001.upp.so-net.ne.jp/isaku/rand.html

せめて時計を使う位は知っていないとゲーム業界で
生き残れませんよ。


ビット  2009-10-29 18:17:13  No: 146447

魔界の仮面弁士様  情報提供感謝致します。


もみもみ  2009-10-31 04:01:32  No: 146448

私が教えていただきたいのは
並び替える時のシードの初期化の方法です。
シードには何を入れればいいんでしょうか?

完全な乱数というのを教えてください。


もみもみ  2009-10-31 08:49:59  No: 146449

追記です
>乱数とランダム関数を一緒くたにしているが、本来は違う。
乱数でもいいのですが、それはあなたのPCでは実現出来てるんですよね?
それを教えて欲しいのです。

>本来のランダム関数は順次を入れ替えるが、正しい。
本来の"ランダム関数"って語句、以外と検索数少ないんですが本当の
意味ですか?あなたの造語じゃないですか?
ソースをお願いします。

提示して頂いた方法は
同じ物を二度出さないという事ですよね?
こんなのビンゴゲームで昔から確立されています。
あなたに教えて貰う必要はありません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加