![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 02.11.2009
Сообщений: 8
|
![]()
привет всем!
нужна процедурка на Delphi, генерирующая числа с помощью нормального распределения, если известен интервал [a,b]. читаю кучу статей в интернете, все равно не могу понять как это сделать, никаких сигма и мат ожидания неизвестно, только промежуток [a,b]
Программист - человек, который решает проблему, о которой вы и не знали, таким способом, который вы не понимаете
|
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
отрезок[А В] это [матожидание -n* дисперсия ; матожидание +n*дисперсия] п произвольно заданное число (обычно =3 если память не изменяет).
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 02.11.2009
Сообщений: 8
|
![]()
то есть, если мне надо на промежутке [5,15] сгенерировать число, то вытащить дисперсию и мат ожидание по формуле?
Программист - человек, который решает проблему, о которой вы и не знали, таким способом, который вы не понимаете
|
![]() |
![]() |
![]() |
#4 |
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
![]() Код:
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" |
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 03.04.2015
Сообщений: 1
|
![]()
Все очень просто. Матожидание на отрезке величин есть его средняя величина, т.е. М=(А+В)/2.
Сигму можно найти как (В-М)/3. Генерирование случайной величины, распределенной по нормальному закону, выполняется при помощи выражения: NORM(M,Sigma)=Sigma*cos(rnd(2*pi))* sqrt(-2*ln(end(1)))+M. Где pi-число пи, а rnd(s)-случайная равномерно распределенная величина 0...S, генерирующаяся генератором случайных чисел. УДАЧИ! |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Зачем что-то городить, если в модуле Math Delphi есть функция RandG, возвращающая нормально распределенные числа.
Первый параметр - M, второй - сигма . Но только , как уже писали нормальное распределение - это числа на всей числовой оси, от минус ∞ до + ∞. Правда, есть правило трёх сигм - вероятность того, что нормально распределенное число выйдет за пределы M ∓ 3сигма считается почти 0. Если на промежутке [5,15] - то RandG(10,1.5) - c вероятностью 99,7 % не вылезет за [5;15]. Но все равно - " на интервале ", так нормально распределенное не задают. Есть правда " усеченное " нормальное распределение. Чтобы 100% было в интервале , сделайте так Код:
Ну да ладно, может пригодится, вдруг еще кто-то не знает про волшебную функцию RandG. Последний раз редактировалось type_Oleg; 03.04.2015 в 14:18. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
генерация чисел(С++) | Ildblik | Помощь студентам | 6 | 12.09.2010 17:13 |
генерация чисел | nXs | Общие вопросы Delphi | 2 | 13.08.2010 11:39 |
Генерация случайных чисел от -1 до 1 | Shketer | Общие вопросы Delphi | 4 | 19.12.2009 23:43 |
Генерация последовательности псевдослучайных натуральных чисел с требуемым распределением вероятности | elsin | Фриланс | 4 | 19.11.2008 08:57 |