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

 
alsu >>:

Вы не правы, если стоит задача обеспечить генерацию последовательности СЧ заданной разрядности (заранее неизвестной), о чем и спрашивал топикстартер, то важна именно случайность - только тогда можно получать последовательности чисел с разрядностью по выбору и с "хорошими" характеристиками. Если же комбинировать значения, выдаваемые генератором ГПСЧ, то характеристики процесса не будут в общем случае "хорошими" и тот же DIEHARD он скорее всего не пройдет.

PRNGではなく、RNGであることはおわかりいただけたでしょうか?:)

 
SProgrammer >>:

Вы видели что это не ГПСЧ, а именно ГСЧ? :)

RNGはPRNGと異なり、エントロピー源(使用する生成アルゴリズムに依存しないランダム性)を持っているのが特徴です。私の例では、それが存在します。この場合、それはクロックカウンタです。

 
alsu >>:

ГСЧ отличается от ГПСЧ наличием источника энтропии (т.е. случайности, не зависящей от используемого алгоритма генерации). В приведенном мной примере он присутствует - в данном случае это счетчик тактов.

リンク先の話しかしてませんね、すみません。そして、その使い方。:)PRNGではなく、RNGなんです。:)


しかし、一般的には、何も語らないことです。外部ソースを使用しないジェネレータは、乱数ジェネレータではなく、疑似的なものでしかないのです。だれでも :)

 
その通り、絶対的なランダム性は数学的に抽象的なものです。それに近似した、まあ、対象を意識する程度しかない。
 
if(MathRand()+1>16383.5){rand+=MathPow(2,- i);

gumgum、MathPow()は非常に遅い関数です。先日、勉強の 様子を掲載しました。そしてここには整数の次数があり、それは自然数である。自然な程度に巧妙なエミュレーターを書く。

 

1000000個 rstep=32 rsign=1 speed = 4.97700000

if(MathRand()+1>16383.5){rand+=MathPow(2,- i);}
1000000個 rstep=32 rsign=1 speed = 2.44900000
double ranD(int rsign,int rstep)
{
double div=2;
double rand=0; 
   for(int i=1; i<= rstep; i++)
   {
   //if(MathRand()+1>16383.5){rand+=MathPow(2,-i);}
   if(MathRand()+1>16383.5){rand+=1/ div;}
   div= div*2;   
   }
      if( rsign==1)
         {
         rand=2*rand-1;
         }
return(rand);
}




 
Random Number Generationから、例えばDLLを誰か作ってくれませんか?ありがとうございます。
 
gumgum >>:
Может кто нибудь сделает dll например из Генерация случайных чисел? Спасибо.

とか、自分だけでなく?

 
alsu >>:

а самостоятельно нэ?


dllの作り方がわからない。今、VSをダウンロードしてるので、それを把握して書き込みます。ただ、誰が既にDLLを作成したのか......ソースが全て揃っていれば、そんなに難しいことではない(と思う)のですが......。
 
gumgum >>:


Я не умею создавать dll. Сейчас качаю VS, разберусь и напишу. Просто кто уже создавал dll это не так уж сложно(я так думаю) если исходники все имеются....

このテーマについて、第5回フォーラムに最近の記事があり、すべて写真と例で初心者向けです