生成均匀分布的随机数(0,1)。 - 页 8

 
SProgrammer >>:

Вам для исследований? Или для игр?


一。
 
gumgum >>:


первое.

那么正态性和 "随机性应该就足够了"。 从0到1中获取两个、三个到五个随机数--如果有必要的话,将它们相乘。

 
SProgrammer >>:

Тогда и нормальности и "случайности должно хватить". получтите два, три - пять случайных чисел от 0 до 1 - и их перемножте если что.


0.9*0.9*........*0.9->0 走廊狭窄=(0+@,1-@)
 
gumgum >>:


первое.

取一个真正的随机数数组--长的MAX_INT,用同一个数组走动。


名单可在网上找到,例如:http://www.random.org/integers/

 
gumgum >>:


0.9*0.9*........*0.9->0 коридор сужаются = (0+@,1-@)

不,分布将保持真实,这在数学上已得到证明。

 
gumgum >>:


0.9*0.9*........*0.9->0 коридор сужаются = (0+@,1-@)

:)取20人的平均数。

 
SProgrammer >>:

Нет распределение будет сохранятся это доказывается математически.


错了。这个(0-@,1-@)是新的边界。如果你取平均值,那么走廊就会缩小到中心点。
 
gumgum >>:


Ошибся. Вот так (0-@,1-@) будут новые граници. Если брать среднееи то тогда Коридор сужаеться к центральной точке.

8-)我给了你一个真正的随机发生器的链接,关于大气噪声。什么又是不够的?:)



http://www.random.org/

RANDOM.ORG向互联网上的任何人提供真正的 随机数。随机性来自于大气噪声,就许多目的而言,它比通常用于计算机程序的伪随机数算法更好。人们利用RANDOM.ORG举办抽奖活动、彩票和抽奖,推动游戏和赌博网站,用于科学应用和艺术与音乐。

 
SProgrammer >>:

8-) Я же Вам дал ссылку на ИСТИННО случайный генератор, на атмосферных шумах. Что опять не достаточно ? :)



http://www.random.org/



您曾向我建议:....但这对我来说不是一个解决方案(经你同意)。我已经给了你我是如何生成数字的,我只是认为有一个更快的方法(Mathemat提出了加快算法的可能性)。我认为一个dll将是最好的解决方案。
 

情况是这样的...当rsign=1 [-1,1].... 当rsign=0 [0,1]

double ranD(int rsign,int rstep)
{

double rand=0; 
   for(int i=1; i<= rstep; i++)
   {
   if(MathRand()+1>16383.5){rand+=MathPow(2,- i);}
   }
      if( rsign==1)
         {
         rand=2*rand-1;
         }

return(rand);
}
感谢Mathemat的想法。或者是我做错了?