AnyLogic предоставляет функции для выбора случайного агента из заданной популяции. Эти функции определены в классе UtilitiesCollection и являются глобальными (доступными из любой части модельного кода). Любую функцию из списка ниже можно вызвать, просто напечатав ее имя, без префикса с именем популяции: randomWhere( people, p -> p.income > 10000 );.
Функция | Описание |
---|---|
Agent randomWhere( population, condition ) |
Возвращает одного случайно выбранного агента в заданной популяции, который удовлетворяет заданному условию. Если популяция пуста, или нет агента, удовлетворяющего заданному условию, функция вернет null. Примеры: В этом примере мы проверяем два условия (используем логический оператор AND &&, чтобы указать AnyLogic, что результаты вычислений обоих заданных условий должны быть равны true). Функция возвращает случайно выбранного агента, удовлетворяющего обоим условиям.Person wealthyYoungMan = randomWhere( people, p -> p.income > 10000 &&p.sex == MALE && p.age < 21 ); |
Agent randomWhere( population, condition, java.util.Random r ) | Подобна randomWhere( population, condition ). Использует указанный нестандартный генератор случайных чисел для выбора агента. |
AnyLogic предоставляет функции для выбора случайного элемента из заданной коллекции. Эти функции определены в классе UtilitiesCollection и являются глобальными (доступными из любой части модельного кода). Любую функцию из списка ниже можно вызвать, просто напечатав ее имя, без префикса с именем коллекции:
randomWhere( people, p -> p.income > 10000 );
Функция | Описание |
---|---|
randomWhere( collection, condition ) |
Возвращает один случайно выбранный элемент из заданной коллекции, который удовлетворяет заданному условию. Если коллекция пуста, или отсутствует элемент, удовлетворяющий заданному условию, функция вернет null. Примеры: В этом примере мы проверяем два условия (используем логический оператор 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). Использует нестандартный генератор случайных чисел для выбора элемента. |
В AnyLogic есть функции, позволяющие выбрать случайный элемент из заданного списка (enumeration). Эти функции определяются классом Utilities и являются глобальными — т.е. доступны в любой части модели.
Любую функцию из перечисленных ниже можно вызвать, введя ее имя.
Функция | Описание |
---|---|
<T extends java.lang.Enum<T>> T randomFrom(java.lang.Class<T> enumeration) | Возвращает случайно выбранную константу из указанного класса типа enumeration. Вызывает ошибку NullPointerException, если указанный класс имеет значение null или не принадлежит к типу enumeration. |
<T extends java.lang.Enum<T>> T randomFrom(java.lang.Class<T> enumeration, java.util.Random r) | Возвращает случайно выбранную константу из указанного класса типа enumeration. Использует указанный нестандартный генератор случайных чисел r для выбора константы. Вызывает ошибку NullPointerException, если указанный класс имеет значение null или не принадлежит к типу enumeration. |
Допустим, в вашей модели используется список вариантов Gender. Чтобы случайным образом выбрать один вариант из этого списка, используйте одну из следующих функций:
- randomFrom( Gender.class );
- Gender.random( this );
Чтобы выбрать случайный цвет из списка 140 стандартных цветов, используйте глобальную функцию java.awt.Color randomColor().
AnyLogic предоставляет функции для создания случайного объекта из заданного списка объектов. Эти функции определены в классе UtilitiesCollection и являются глобальными (доступными из любой части модельного кода). Любую функцию из списка ниже можно вызвать, просто напечатав ее имя, без префикса с именем списка объектов.
Функция | Описание |
---|---|
<T> T randomlyCreate(java.lang.Class<? extends T>... classes) |
Создает случайно выбранный объект, используя один из переданных конструкторов классов объектов. Возвращает случайно выбранный и созданный объект — или null, если не был указан ни один класс. Пример использования в поле Новый вагон блока TrainSource Железнодорожной библиотеки: randomlyCreate(OpenCar.class, BoxCar.class, HopperCar.class); classes — классы объектов |
<T> T randomlyCreate(java.util.function.Supplier<? extends T>... constructors) |
Создает случайно выбранный объект, используя один из переданных конструкторов. Возвращает случайно выбранный и созданный объект — или null, если не был указан ни один класс. Пример использования в поле Новый вагон блока TrainSource Железнодорожной библиотеки: randomlyCreate(OpenCar::new, BoxCar::new, HopperCar::new); constructors — конструкторы или другие функции / лямбда-выражения, возвращающие экземпляры объектов |
<T> T randomlyCreate(java.util.Random r, java.lang.Class<? extends T>... classes) |
Создает случайно выбранный объект, используя один из переданных конструкторов классов объектов. Выбор осуществляется с помощью заданного нестандартного генератора случайных чисел r. Возвращает случайно выбранный и созданный объект — или null, если не был указан ни один класс. Пример использования в поле Новый вагон блока TrainSource Железнодорожной библиотеки: randomlyCreate(OpenCar.class, BoxCar.class, HopperCar.class); r — нестандартный генератор случайных чисел classes — классы объектов |
<T> T randomlyCreate(java.util.Random r, java.util.function.Supplier<? extends T>... constructors) |
Создает случайно выбранный объект, используя один из переданных конструкторов. Выбор осуществляется с помощью заданного нестандартного генератора случайных чисел r. Возвращает случайно выбранный и созданный объект — или null, если не был указан ни один класс. Пример использования в поле Новый вагон блока TrainSource Железнодорожной библиотеки: randomlyCreate(OpenCar::new, BoxCar::new, HopperCar::new); r — нестандартный генератор случайных чисел constructors — конструкторы или другие функции / лямбда-выражения, возвращающие экземпляры объектов |
-
Как мы можем улучшить эту статью?
-