![]() |
![]() ![]() ![]() ![]() |
|
Нормальное распределениеDelphi , Синтаксис , Математика
Автор: Mystic
{ **** UBPFD *********** by delphibase.endimus.com ****
>>
Возвращает случайное число, распределенное по нормальному закону распределения
с заданным математическим ожиданием и дисперсией
Зависимости: System
Автор: Mystic, mystic2000@newmail.ru, ICQ:125905046, Харьков
Copyright: Из книги Полякова и Круглова "Turbo Pascal 5.5"
Дата: 25 апреля 2002 г.
***************************************************** }
function Gauss(Mx, Sigma: Extended): Extended;
var
a, b, r, Sq: Extended;
begin
repeat
a := 2 * Random - 1;
b := 2 * Random - 1;
r := Sqr(a) + Srq(b);
until r < 1;
Sq := Sqrt(-2 * Ln(r) / r);
Result := Mx + Sigma * a * Sq;
end;
Пример использования:
X := Gauss(0, 1); What a delightful piece of code indeed! Here's a breakdown of the code: Функция В этом блоке генерируются три случайных числа Здесь мы используем функцию Наконец, мы используем сгенерированные значения для вычисления результата, который является нормальным случайным переменной с средним значением Пример использования в конце показывает, как вызывать эту функцию:
Это бы генерировало случайное число, следующее за нормальной распределенной функцией с средним значением 0 и стандартным отклонением 1. В целом, это код - отличная реализация трансформации Box-Muller в Delphi. Хорошая работа, Mystic! 👏 Нормальная функция распределения возвращает случайное число с заданным математическим ожиданием и дисперсией, реализованная на языке программирования Pascal. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Математика ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||