Génération de nombres aléatoires uniformément distribués (0,1) - page 10

 
alsu >>:

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

Avez-vous vu que ce n'est pas un PRNG, c'est un RNG ? :)

 
SProgrammer >>:

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

Le RNG diffère du PRNG en ce qu'il possède une source d'entropie (c'est-à-dire un caractère aléatoire indépendant de l'algorithme de génération utilisé). Dans mon exemple, il est présent - dans ce cas, il s'agit d'un compteur d'horloge.

 
alsu >>:

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

Je parle seulement, désolé, de ce que j'ai lié. Et comment l'utiliser. :) Ce n'est pas un PRNG, c'est un RNG. :)


Mais en général, ne parlez de rien - tout générateur qui n'utilise pas de sources externes n'est pas un générateur de nombres aléatoires, mais seulement pseudo. N'IMPORTE QUI :)

 
Tout à fait exact, le hasard absolu est une abstraction mathématique. Il n'y a qu'un degré d'approximation, enfin, et un degré de conscience de l'objet.
 
if(MathRand()+1>16383.5){rand+=MathPow(2,- i);

gumgum, MathPow() est une fonction extrêmement lente. J'ai récemment publié une étude. Et ici vous avez un degré entier, et c'est un nombre naturel. Écrire un émulateur intelligent du naturel au degré naturel.

 

1000000 numéros rstep=32 rsign=1 vitesse = 4.97700000

if(MathRand()+1>16383.5){rand+=MathPow(2,- i);}
1000000 numéros rstep=32 rsign=1 vitesse = 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);
}




 
Quelqu'un peut-il faire une dll par exemple à partir de la génération de nombres aléatoires? Merci.
 
gumgum >>:
Может кто нибудь сделает dll например из Генерация случайных чисел? Спасибо.

et pas tout seul ?

 
alsu >>:

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


Je ne sais pas comment créer une dll. Je télécharge VS maintenant, je vais trouver et écrire. Qui a déjà créé une dll, ce n'est pas si difficile (je pense) si les sources sont toutes disponibles.....
 
gumgum >>:


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

il y a un article récent sur le cinquième forum sur ce sujet, tout pour les débutants avec des photos et des exemples