一様分布乱数(0,1)の生成 - ページ 8

 
SProgrammer >>:

Вам для исследований? Или для игр?


の1つです。
 
gumgum >>:


первое.

そこで、0から1までの乱数を2つ、3つ、5つと用意し、必要なら掛け合わせる。

 
SProgrammer >>:

Тогда и нормальности и "случайности должно хватить". получтите два, три - пять случайных чисел от 0 до 1 - и их перемножте если что.


0.9*0.9*......*0.9->0廊下狭窄=(0+@,1-@)とした。
 
gumgum >>:


первое.

真の乱数の配列 - long MAX_INT を取り、同じ配列を使って歩き回る。


リストはWebで公開されています(例:http://www.random.org/integers/)。

 
gumgum >>:


0.9*0.9*........*0.9->0 коридор сужаются = (0+@,1-@)

いいえ、数学的に証明されているように、分布は正しく保たれます。

 
gumgum >>:


0.9*0.9*........*0.9->0 коридор сужаются = (0+@,1-@)

:)20の平均をとる。

 
SProgrammer >>:

Нет распределение будет сохранятся это доказывается математически.


間違っている。この(0-@,1-@)が新しい境界となる。平均値をとると、中心点に向かって回廊が狭くなっていくんですね。
 
gumgum >>:


Ошибся. Вот так (0-@,1-@) будут новые граници. Если брать среднееи то тогда Коридор сужаеться к центральной точке.

8-)私は、大気中のノイズに関する、真のランダムジェネレータへのリンクをあなたに示しました。また、何が足りないの?:)



http://www.random.org/

RANDOM.ORGは、インターネット上の誰にでも、真の 乱数を提供します。ランダム性は大気中のノイズに由来するもので、コンピュータプログラムで一般的に使用されている擬似乱数アルゴリズムよりも多くの用途で優れている。RANDOM.ORGは、抽選や宝くじ、懸賞の開催、ゲームやギャンブルサイトの運営、科学的なアプリケーション、アートや音楽など、さまざまな用途で利用されています。

 
SProgrammer >>:

8-) Я же Вам дал ссылку на ИСТИННО случайный генератор, на атмосферных шумах. Что опять не достаточно ? :)



http://www.random.org/



ご提案いただいたのは...。が、これでは解決にならない(ご本人の許可は得ています)。私がどのように数字を生成しているかはすでに説明しましたが、もっと速い方法があるのではないかと思っただけです(Mathematicsはアルゴリズムを高速化する可能性を示唆しました)。dllが最適解になると思います。
 

こんな感じです...rsign=1 のとき [-1,1]... rsign=0 のとき [0,1]...

double ranD(int rsign,int rstep)
{

double rand=0; 
   for(int i=1; i<= rstep; i++)
   {
   if(MathRand()+1>16383.5){rand+=MathPow(2,- i);}
   }
      if( rsign==1)
         {
         rand=2*rand-1;
         }

return(rand);
}
アイデアをくれたMathematicsに感謝します。それとも、私のやり方が悪かったのでしょうか?