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

 

Harici *.dll olmadan MQL araçlarını kullanarak tek tip olarak dağıtılmış rasgele sayılar (0,1) oluşturuluyor mu?

 
int MathRand ( )
İşlev, 0 ile 32767 arasında bir sözde rasgele tamsayı döndürür. İşleve yapılan ilk çağrıdan önce, sözde rasgele sayı üretecini başlatmak için MathSrand işlevini kullanmanız gerekir.
Misal:
 MathSrand(ZamanYerel());
// 10 sayı görüntüler.
for(int i=0;i<10;i++ )
Print("keyfi değer", MathRand());
 
sergeev >> :
int MathRand ( )
İşlev, 0 ile 32767 arasında bir sözde rasgele tamsayı döndürür. İşleve yapılan ilk çağrıdan önce, sözde rasgele sayı üretecini başlangıç durumuna sıfırlamak için MathSrand işlevini kullanmanız gerekir.
Misal:


Bu biliyorum!

(0,1) aralığını soruyorum.

 

Yoldaş 0 ve 1'i eşit olarak dağıtır, bu yüzden onları çift ve tek olarak dağıtın.

 MathSrand ( TimeLocal ( ) ) ;
   // Отображает 10 чисел.
   for ( int i = 0 ; i < 10 ; i + + )
     Print ( "произвольная величина " , MathMod ( MathRand ( ) , 2 ) ) ;

böyle bir yerde.

 
Urain писал(а) >>

Yoldaş 0 ve 1'i eşit olarak dağıtır, bu yüzden onları çift ve tek olarak dağıtın.

böyle bir yerde.

Veya verilen aralıktaki gerçek sayılar ortalama. Sonra şöyle:

MathRand() / 32767.0
 

Sori hemen anlamadı, eğer bir menzile ihtiyacınız varsa o zaman

 MathSrand ( TimeLocal ( ) ) ;
   // Отображает 10 чисел.
   for ( int i = 0 ; i < 10 ; i + + )
     Print ( "произвольная величина " , MathRand ( ) / 32768 ) ;

böyle bir yerde.

 
lea >> :

Veya verilen aralıktaki gerçek sayılar ortalama. Sonra şöyle:


Aynen öyle.

 MathSrand ( TimeLocal ( ) ) ;
  // Отображает 10 чисел.
  for ( int i = 0 ; i < 10 ; i + + )
     Print ( "произвольная величина " , MathRand ( ) / 32768 ) ;
Güçsüz. daha güçlü?
 
gumgum >> :

Aynen öyle.

Güçsüz. daha güçlü?
 MathSrand ( TimeLocal ( ) ) ;
...............
...............
...............
//---------------------------Непрерывный Генератор СЧ---------------------
double CRG(double min,double max) { return(min+((max-min)*MathRand()/32767.0));}
//=======================================================================

nerede:

min - aralığın başlangıcı

max - aralığın sonu.


Senin durumunda olacak:

 void Start()
{
MathSrand ( TimeLocal ( ) ) ;
...............
...............
...............
double p=CRG(0.0,1.0);
}

//---------------------------Непрерывный Генератор СЧ---------------------
double CRG(double min,double max) { return(min+((max-min)*MathRand()/32767.0));}
//=======================================================================
 

Öyleyse,

double ran= MathRand()/32768.;
sonra n/32768 arasında. ve n+1/32768. ne Z & ne için [0.32767] boş. Bu iyi değil.
 
joo >> :

nerede:

min - aralığın başlangıcı

max - aralığın sonu.


Senin durumunda olacak:


==
MathRand()/32768.
:(
 
gumgum писал(а) >>

Öyleyse,

sonra n/32768 arasında. ve n+1/32768. ne Z & ne için [0.32767] boş. Bu iyi değil.

Canım, herhangi bir keyfi olarak birbirine yakın gerçek sayılar arasında sayılamayan bir gerçek sayılar kümesi olduğunu biliyor musun?

(0,1) aralığının sonsuz bir çizginin gücüne eşdeğer olduğu biliniyor mu?

Değilse, bir düşünün.

Cevabınız evet ise, lütfen sorunuzu doğru formüle edin.

Aynı zamanda, hangi yoğunlukta (birim uzunluktaki adet) orta kademe nesile sahip olmak istediğinizi söylemeye çalışın.

Veya RNG'nizin (0,1) aralığındaki tüm sayıları üretmesini mi istiyorsunuz?

Neden: