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

 
gumgum >> :


== :(

Uygulanan görevler için kabul edilebilir sonuçlar veren bir çalışma kodu verdim. Ayrıca herhangi bir MF aralığını belirleme yeteneği.

 
joo >> :

Uygulanan görevler için kabul edilebilir sonuçlar veren bir çalışma kodu verdim. Ayrıca herhangi bir MF aralığını belirleme yeteneği.

Peki ya kaşık?

 
Yurixx >> :

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?


???!!!!

"Ya da belki RNG'nizin (0,1) aralığındaki tüm sayıları oluşturmasını istiyorsunuz?" - bu nasıl bir saçmalık? Sayı teorisi okudu.

 
Urain >> :

Peki ya kaşık?

Belki ağzına koy? :)

 
joo >> :

Belki ağzına koy? :)


İyi hadi gidelim!
 
gumgum >> :


İyi hadi gidelim!

Şey, gerçekten, çifti kendin normalleştiremezsin.

 
gumgum >> :


İyi hadi gidelim!

Evet iyi! Birim uzunluk başına 32767 adet çözünürlük oldukça uygundur. Elbette 100.000.000'de zababahat yapabilirsiniz, ama neden?!

 
Urain >> :

Şey, gerçekten, çifti kendin normalleştiremezsin.


öyle yaparım.

 double ranD(int rsign,int rstep)
{
double sumR=0;
for(int zr=1;zr<=2;zr++)
{
//----
string ran="0.";
for(int z=1;z<=rstep;z++)
{
ran=ran+DoubleToStr(MathFloor((MathRand()/32767.0)*10),0);
}
double randou=StrToDouble(ran);
if(rsign==1)
   {
   randou=2*randou-1;
   }
sumR+=randou*randou;
//----
}

randou=randou/MathSqrt(sumR);
//Print("randou = "+randou);
return(randou);
}
Ancak....
 

gumgum o zaman şöyle dene. Prensip aynıdır, ancak 0'dan 32767'ye kadar tamsayılar üretmek yerine 0'dan 2^30'a kadar bir şey elde edeceksiniz. Her sayı MathRand() + MathRand()*32768'dir. Nasıl dağıtılacağını araştırmadım, ancak çok zor olmayan görevler için her şeyin en iyi şekilde olacağını umuyorum.

Bunlar, 32768 ary sayı sisteminde AB biçimindeki sayılardır.

Dll'yi kullanmak daha da iyidir. Bir tane var, hemen bu kadar büyük sayılar üretiyor.

 
Mathemat >> :

gumgum o zaman şöyle dene. Prensip aynıdır, ancak 0'dan 32767'ye kadar tamsayılar üretmek yerine 0'dan 2^30'a kadar bir şey elde edeceksiniz. Her sayı MathRand() + MathRand()*MathRand() şeklindedir. Nasıl dağıtılacağını araştırmadım, ancak çok zorlayıcı olmayan görevler için her şeyin en üst düzeyde olacağını umuyorum.

Bunlar, 32768 ary sayı sisteminde AB biçimindeki sayılardır.


Probyval. Orada her şey kötü.