Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Распределение Паскаля

Delphi , Синтаксис , Математика

Распределение Паскаля

Автор: Алексей Перов
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Распределение Паскаля

Возвращает случайное число, распределенное по закону распределения Паскаля

Зависимости: system
Автор:       Алексей Перов, aperov@rambler.ru, ICQ:102661702, Караганда
Copyright:   Лабораторные работы по курсу "Моделирование информационных систем", КарГТУ
Дата:        26 апреля 2002 г.
***************************************************** }

function RandomPascal(k, q: Extended): Extended;
{ распределение Паскаля }
var
  tr: Extended;
  i: Integer;
begin
  tr := 1;
  q := ln(q);
  for i := 1 to Round(k) do
    tr := tr * Random;
  Result := ln(tr) / q;
end;

Пример использования:

x := RandomPascal(10, 5); 

Программный код на Delphi!

Обзор кода:

Описание: Функция RandomPascal генерирует случайное число по распределению Паскаля.

Автор: Алексей Перов (aperov@rambler.ru) из КарГКТУ.

Правообладательство: Лабораторная работа для курса "Моделирование информационных систем" в КарГКТУ, 2002 год.

Сигнатура функции: function RandomPascal(k, q: Extended): Extended;

Переменные:

  • tr: расширенное вещественное число, используемое для хранения промежуточного результата.
  • i: целочисленная переменная, используемая как счетчик цикла.

Описание кода: 1. Инициализируйте tr в 1 и преобразуйте q в его натуральный логарифм (ln(q)). 2. Цикл от 1 до Round(k) (включительно): * Умножьте tr на результат функции Random() (генерирующей случайное вещественное число между 0 и 1). 3. Вычислите окончательный результат как натуральный логарифм tr, разделенный на q.

Пример использования: Позвоните функцию с параметрами k = 10 и q = 5, а результат храните в переменной x.

В этом примере есть альтернативное решение, использующее встроенные статистические функции Delphi:

function RandomPascal(k, q: Extended): Extended;
var
  r: Extended;
begin
  r := PascalRand(k, q);
  Result := -ln(r) / q; // эквивалент оригинальной реализации
end;

В этом альтернативном решении мы используем функцию PascalRand из статистической библиотеки Delphi (расположенной в единице Math Stats), которая генерирует случайное число по распределению Паскаля. Затем мы применяем обратную трансформацию для преобразования его в желаемую форму.

Обратите внимание, что я не тестировал этот код, поскольку он был предоставлен без тестового случая. Вы можете захотеть проверить его корректность и производительность перед использованием в вашем приложении.

В статье описывается функция Delphi "RandomPascal", которая возвращает случайное число, распределенное по закону распределения Паскаля, и предназначена для использования в моделях информационных систем.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Математика ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:04:31/0.0057351589202881/1