Düzgün dağılmış rasgele sayılar (0,1) oluşturma - sayfa 10

 
alsu >> :

Yanılıyorsun, eğer görev belirli bir bit derinliğinde (önceden bilinmeyen) bir MF dizisinin oluşturulmasını sağlamaksa, ki bu topikstarter'ın sorduğu şeydir, o zaman önemli olan rastgeleliktir - ancak o zaman dizileri alabilirsiniz. seçtiğiniz bir bit genişliğine ve "iyi" özelliklere sahip sayılar. PRNG jeneratörü tarafından verilen değerleri birleştirirsek, genel durumda sürecin özellikleri "iyi" olmayacak ve aynı DIEHARD büyük olasılıkla geçmeyecektir.

Bunun bir PRNG değil, bir RNG olduğunu gördünüz mü? :)

 
SProgrammer >> :

Bunun bir PRNG değil, bir RNG olduğunu gördünüz mü? :)

RNG, bir entropi kaynağının (yani, kullanılan üretim algoritmasına bağlı olmayan rastgelelik) mevcudiyeti ile PRNG'den farklıdır. Örneğimde mevcut - bu durumda bir saat sayacı.

 
alsu >> :

RNG, bir entropi kaynağının (yani, kullanılan üretim algoritmasına bağlı olmayan rastgelelik) mevcudiyeti ile PRNG'den farklıdır. Örneğimde mevcut - bu durumda bir saat sayacı.

Diyorum ki, beni sadece alıntıladığım bağlantı için bağışlayın. Ve nasıl kullanılacağı hakkında. :) PRNG DEĞİL, RNG vardır. :)


Ancak genel olarak, konuşma hiçbir şeydir - harici kaynakları kullanmayan herhangi bir üreteç, bir RANDOM sayı üreteci değil, yalnızca sözde bir sayı üretecidir. HİÇ :)

 
Oldukça doğru, mutlak rastgelelik matematiksel bir soyutlamadır. Yalnızca ona yaklaşma derecesi ve nesnenin farkındalık derecesi vardır.
 
if ( MathRand ( )+1 > 16383.5 ) { rand + = MathPow ( 2 , - i ) ;

gumgum , MathPow() son derece yavaş bir işlevdir. Geçenlerde bir araştırma yayınladım. Ve burada sadece bir tamsayı dereceniz var ve buna doğal bir sayı yükseltiliyor. Doğal güçleri doğal güçlere yükseltmek için akıllı bir öykünücü yazın.

 

1000000 sayı rstep=32 rsign=1 hız = 4.97700000

 if ( MathRand ( ) + 1 > 16383.5 ) { rand + = MathPow ( 2 , - i ) ; }
1000000 sayı rstep=32 rsign=1 hız = 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 ) ;
}
 
Birisi örneğin Random Number Generation'dan bir dll yapabilir mi? Teşekkür ederim.
 
gumgum >> :
Может кто нибудь сделает dll например из Генерация случайных чисел ? Спасибо.

ve bağımsız olarak ne?

 
alsu >> :

ve bağımsız olarak ne?


dll oluşturamıyorum. Şimdi VS'yi indiriyorum, çözeceğim ve yazacağım. Kaynakların hepsi mevcutsa, zaten bir dll oluşturmuş biri o kadar zor değil (bence öyle) ....
 
gumgum >> :


dll oluşturamıyorum. Şimdi VS'yi indiriyorum, çözeceğim ve yazacağım. Kaynakların hepsi mevcutsa, zaten bir dll oluşturmuş biri o kadar zor değil (bence öyle) ....

beşinci forumda bu konuyla ilgili yeni bir makale var, yeni başlayanlar için resim ve örneklerle her şey var