Генерация равномерно распределенных случайных чисел (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 offers true random numbers to anyone on the Internet. The randomness comes from atmospheric noise, which for many purposes is better than the pseudo-random number algorithms typically used in computer programs. People use RANDOM.ORG for holding drawings, lotteries and sweepstakes, to drive games and gambling sites, for scientific applications and for art and music.

 
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'у. Или я не правильно сделал?