Выбор случайного элемента

Выбор случайного агента из популяции

AnyLogic предоставляет функции для выбора случайного агента из заданной популяции. Эти функции определены в классе UtilitiesCollection и являются глобальными (доступными из любой части модельного кода). Любую функцию из списка ниже можно вызвать, просто напечатав ее имя, без префикса с именем популяции: randomWhere( people, p -> p.income > 10000 );

Agent randomWhere( популяция, условие ) - Возвращает одного случайно выбранного агента в заданной популяции, который удовлетворяет заданному условию. Если популяция пуста, или нет агента, удовлетворяющего заданному условию, функция вернет null.

Примеры: Person wealthyPerson = randomWhere( people, p -> p.income > 10000 );

Person wealthyMan = randomWhere( people, p -> p.income > 10000 && p.sex == MALE );

В этом примере мы проверяем два условия (используем логический оператор AND &&, чтобы указать AnyLogic, что результаты вычислений обоих заданных условий должны быть равны true). Функция возвращает случайно выбранного агента, удовлетворяющего обоим условиям.

Person wealthyYoungMan = randomWhere( people, p -> p.income > 10000 && p.sex == MALE && p.age < 21 );

Также доступна другая функция, позволяющая использовать нестандартный генератор случайных чисел вместо используемого по умолчанию:

Agent randomWhere( популяция, условие, java.util.Random r ) - Подобна randomWhere( популяция, условие ). Использует указанный нестандартный генератор случайных чисел для выбора агента.

Выбор случайного элемента из коллекции

AnyLogic предоставляет функции для выбора случайного элемента из заданной коллекции. Эти функции определены в классе UtilitiesCollection и являются глобальными (доступными из любой части модельного кода). Любую функцию из списка ниже можно вызвать, просто напечатав ее имя, без префикса с именем коллекции: randomWhere( people, p -> p.income > 10000 );

randomWhere( коллекция, condition ) - Возвращает один случайно выбранный элемент из заданной коллекции, который удовлетворяет заданному условию. Если коллекция пуста, или отсутствует элемент, удовлетворяющий заданному условию, функция вернет null.

Примеры: Person wealthyPerson = randomWhere( people, p -> p.income > 10000 );

Person wealthyMan = randomWhere( people, p -> p.income > 10000 && p.sex == MALE );

В этом примере мы проверяем два условия (используем логический оператор AND &&, чтобы указать AnyLogic, что результаты вычислений обоих заданных условий должны быть равны true). Функция возвращает случайно выбранный элемент, удовлетворяющий обоим условиям.

Person wealthyYoungMan = randomWhere( people, p -> p.income > 10000 && p.sex == MALE && p.age < 21 );

Также доступна другая функция, позволяющая использовать нестандартный генератор случайных чисел вместо используемого по умолчанию:

randomWhere( collection, condition, java.util.Random r ) - Подобна randomWhere( коллекция, условие ). Использует указанный нестандартный генератор случайных чисел для выбора элемента.

Выбор случайного элемента из массива

AnyLogic предоставляет функции для выбора случайного элемента из заданного массива. Эти функции определены в классе UtilitiesCollection и являются глобальными (доступными из любой части модельного кода). Любую функцию из списка ниже можно вызвать, просто напечатав ее имя, без префикса с именем массива: randomWhere( people, p -> p.income > 10000 );

T randomFrom( T[] array ) - Возвращает один случайно выбранный элемент массива (или null, если массив пустой). Вызов этого метода эквивалентен вызову следующей функции:
array[ uniform_discr( array.length - 1 ) ]

T randomFrom( T[] array, java.util.Random r ) - Подобна randomFrom( T[] array ). Использует нестандартный генератор случайных чисел для выбора элемента.

T randomWhere( T[] array, condition ) - Возвращает один случайно выбранный элемент из заданного массива, который удовлетворяет заданному условию. Если массив пуст, или отсутствует элемент, удовлетворяющий заданному(-ым) условию(-ям), функция вернет null.

T randomWhere( T[] array, condition, java.util.Random r ) - Подобна randomWhere( T[] array, condition ). Использует нестандартный генератор случайных чисел для выбора элемента.

Выбор случайного варианта из списка вариантов

Допустим, в вашей модели используется список вариантов Gender. Чтобы случайным образом выбрать один вариант из этого списка, используйте одну из следующих функций:

Создание случайного объекта из заданного списка объектов

AnyLogic предоставляет функции для создания случайного объекта из заданного списка объектов. Эти функции определены в классе UtilitiesCollection и являются глобальными (доступными из любой части модельного кода). Любую функцию из списка ниже можно вызвать, просто напечатав ее имя, без префикса с именем списка объектов.

Обучающее видео: Creating cars of different colors