Есть заданая Лямбда, есть написанная функция которрая должна возвращать число сгенерированное по формуле Пуассона - но в формуле есть факториал он должен быть интеджер - а число возвращаемое в диапазоне от 0 до 1 - как быть не пойму.

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
shulja |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Добрый день! Есть необходимость на Паскале написать входной Пуассоновский поток для системы массового обслуживания. При чем проблема только с ним.
Есть заданая Лямбда, есть написанная функция которрая должна возвращать число сгенерированное по формуле Пуассона - но в формуле есть факториал он должен быть интеджер - а число возвращаемое в диапазоне от 0 до 1 - как быть не пойму. ![]() |
Krjuger |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
function blablabla(input: integer): boolean |
shulja |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
|
Krjuger |
![]()
Сообщение
#4
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Тьфу, я совсем не так понял)))Извиняюсь.
Так насчеем с того,что именно вы считаете? Вероятность?Если вероятность то чего?Напишите более подробно про вашу задачу. В общем вот тебе код,который и факториал считает и Пуассоновское распределение.
n-число событий такого потока, выпадающих на интервал х Сообщение отредактировано: Krjuger - |
shulja |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
мне надо сгенерить чисел по формуле пуассона
и проверить потом действительно ли пуассон |
Krjuger |
![]()
Сообщение
#6
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Вот я выше написал.По x,n от тебе выдает результат,а то что результат всегда будет меньше 1 и больше нуля,это уже само свойство формулы.
|
shulja |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
вот отличный код как мой
![]() |
Krjuger |
![]()
Сообщение
#8
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Вам нужно сделать рандом от 0 до 1 чтоли?
Тогда добавьте beginдальше делайте,что хотите) В d будет храниться как раз то самое случайно число,или вам,что то другое надо?) Сообщение отредактировано: Krjuger - |
shulja |
![]()
Сообщение
#9
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Вам нужно сделать рандом от 0 до 1 чтоли? Тогда добавьте вот у меня есть для Эланга а надо еще один написать для пуассона что б сам генерил числа штук 300 - 500 чтоб распределение проверить function Exponential (lambda : real): real; begin result := -1/lambda*ln(random); end; function Erlang (lambda : real): real; var i : integer; begin result := 0; for i := 0 to n do result := result + Exponential(0.25); end; begin for i := 0 to n do begin result := Erlang(0.25); s := Format('%.3f',[result]); ListBox1.Items.Add(s); end; |
Krjuger |
![]()
Сообщение
#10
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Я тебя не понимаю, что он должен сгенерировать,по какой переменной изменяться???? по числу положительных исходов?Пиши более развернуто,а то понять,что тебе нужно вообще нереально?Тебе нужно построить график распределения Пуассона для твоих заданных : диапозона и лямбды?Так?
Вот я честно залез на википедию для распределения эрланга я увидел там алгоритм,для пуассона его там нету.... Моделирование значений пуассоновской случайной величины с параметром a основано на предельной теореме, согласно которой распределение биномиальной случайной величины Bn,p при больших n и малых p хорошо аппроксимирует распределение Пуассона с параметром a = np. Это едитственный спобос как я предполагаю можно проверить пуассоновское распределение. Все я вьехал,что нужно делать..... begin В итоге в К будет храниться номер интервала содержащего наше случайное d,затем сравним его с величиной P(k,lambda,10) (10 я взял в качестве примера) И по идеи оно должно совпадать.Надеюсь я все правильно понял? Сообщение отредактировано: Krjuger - |
Федосеев Павел |
![]()
Сообщение
#11
|
Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Я понял так, что нужна функция, генерирующая массив (или наподобие) со случаными (псевдослучайными) числами, подчиняющимися пуансоновскому распределению.
Строка в гугле "генерация ПСЧ с распределением пуассона" даёт пару страниц. В частности эту. |
![]() ![]() |
![]() |
Текстовая версия | 13.09.2025 3:33 |