Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.06;
Скачать: CL | DM;

Вниз

Как получить нормально распределенное случаное число от 0 до 1 и   Найти похожие ветки 

 
Дмитрий С ©   (2009-10-09 19:15) [0]

знаков 15 после запятой.
Есть сколько угодно случайных чисел от 0 до 32768 (стандартный random), нужно получить нормально распределенное случайное число от 0 до 1 и знаков 15 после запятой.

Нужно для наглядного демонстрирования метода МонтеКарло для нахождения числа pi к примеру.


 
vrem   (2009-10-09 19:36) [1]

дели на 32768


 
Дмитрий С ©   (2009-10-09 19:41) [2]


> vrem   (09.10.09 19:36) [1]

Так не то получится. От 0 до 1 с 15 знаками после запятой чисел гораздо больше, чем 32к.


 
Б   (2009-10-09 19:50) [3]

Так?


Function Rand: single;
begin
 Result:= (Random * 2) - 1;  
End;



 
Плохиш ©   (2009-10-09 19:58) [4]


> Дмитрий С ©   (09.10.09 19:15)
>
> знаков 15 после запятой.
> Есть сколько угодно случайных чисел от 0 до 32768 (стандартный
> random)

Это не стандартный рандом.


 
Б   (2009-10-09 19:58) [5]

Пардон.


 
palva ©   (2009-10-09 20:24) [6]


> нормально распределенное случаное число от 0 до 1

Это противоречивое условие. Таких чисел не бывает.


 
Virgo_Style ©   (2009-10-09 20:38) [7]

Ну, с какой-то степенью приближения, можно хотя бы правилом трех сигм воспользоваться


 
palva ©   (2009-10-09 20:38) [8]

Дмитрий С ©   (09.10.09 19:15)
Может быть, в задаче стояло "со средним 0 и дисперсией 1"? Тогда так можно:

{$APPTYPE CONSOLE}
Function Norm: Double;
var
 i: Integer;
 r: Double;
begin
 Result := 0.0;
 for i:=1 to 12 do Result := Result + random;
 Result := Result - 6.0;
end;
begin
 Randomize;
 WriteLn(Norm);
end.


 
31512 ©   (2009-10-09 21:04) [9]

Когда пишут "нормально распределённое число", то обычно имеют ввиду распределение Гаусса.
http://www.alglib.net/specialfunctions/distributions/normal.php


 
Григорьев Антон ©   (2009-10-09 22:39) [10]

Нормальное распределение не может лежать в диапазоне 0..1, нормальное распределение - это всегда от минутс бесконечности до плюс бесконечности. А вообще, для получения нормального распределения есть функция RandG в модуле Math. Зачем для его получения нужны "сколько угодно случайных чисел от 0 до 32768", я не понимаю.


 
Styx   (2009-10-10 00:56) [11]

Для начала - нужно понять, какое же действительно распределение Вам нужно, потом - идите сюда: http://www.iro.umontreal.ca/~lecuyer/myftp/streams00/c/



Страницы: 1 вся ветка

Текущий архив: 2009.12.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
8-1201846793
ZMRaven
2008-02-01 09:19
2009.12.06
Картинка с экрана


15-1255185739
Artem
2009-10-10 18:42
2009.12.06
Запись алгоритма?


15-1254837325
VladOfMonster
2009-10-06 17:55
2009.12.06
Срочно. Установка wine в Linux


15-1254855575
TRSteep
2009-10-06 22:59
2009.12.06
Смена хеша пароля


2-1255524674
madmech@yandex.ru
2009-10-14 16:51
2009.12.06
Как убрать скроллбар у DBGrid