en ru

Docs

НАЗВАНИЕ

createDistribution - создает объект, представляющий распределение вероятностей

СИНТАКСИС

function createDistribution(distr, p1);
function createDistribution(distr, p1, p2);
function createDistribution(distr, luaQuantileFunction);

ОПИСАНИЕ

Первые две реализации используются для создания предопределенных распределений вероятностей. Аргумент distr определяет тип распределения и как много параметров из p1, p2 ему требуется. Не передавайте меньше параметров, чем необходимо.

Последняя реализация предназначена для пользовательских распределений вероятностей. В этом случае distr должен быть равен DISTR.CUSTOM, тогда как luaQuantileFunction должен ссылаться на Lua-функцию, принимающую один числовой аргумент и возвращающую одно числовое значение. Эта Lua-функция используется для вычисления значений обратной функции распределения.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

В случае успеха createDistribution возвращает уникальный идентификатор только что созданного объекта. Иначе возвращается 0.

ЗАМЕТКИ

Старайтесь работать с предопределенными распределениями вероятностей, если это возможно. Пользовательские распределения существенно снижают общую производительность.

Не забудьте вызвать функцию closeId чтобы освободить объект, когда он перестанет быть нужен.

ПРИМЕРЫ

Чтобы создать экспоненциальное распределение F(x) = 1 - exp(-3x):

expDistr = createDistribution(DISTR.EXP, 3.0);

Чтобы создать распределение Вейбулла F(x) = 1 - exp(-3x2):

wblDistr = createDistribution(DISTR.WEIBULL, 3.0, 2.0);

Чтобы создать пользовательское распределение вероятностей F(x) = (x - 3) / (5 - 3), где 3 ≤ x ≤ 5:

function uniformQuantileFunction(p)
   return (5.0 - 3.0) * p + 3.0;
   end;

uniDistr = createDistribution(DISTR.CUSTOM, uniformQuantileFunction);

СМ. ТАКЖЕ

DISTR, createInterruptManager, closeId

Разрешается дословное копирование и распространение этой статьи целиком на любом носителе, при условии сохранения этого замечания.
Присылайте предложения, вопросы и замеченные ошибки на neurowombatmail@gmail.com
Copyright © 2009, 2010, 2011, 2012 Андрей Тимашов