В Anylogi c, как случайным образом выбрать из списка элементов - PullRequest
0 голосов
/ 10 февраля 2020

В Anylogi c, какой самый простой способ случайного выбора из группы элементов, которые вы выбираете. Например, если вы создаете новых агентов клиентов и у вас есть три существующих группы клиентов: клиенты1, клиенты2, клиенты3. Как вы выбираете тип randomFrom (клиенты1, клиенты2, клиенты3), чтобы выбрать группу, в которую будут помещаться новые агенты? Вы сначала помещаете клиентов 1 ... 3 в коллекцию (всего три) или в список? ИЛИ как бы вы просто выбрали случайным образом из нескольких предметов? Я знаю, что есть функция randomlyCreate, которая позволяет вам случайным образом создавать агентов разных типов для списка, но я не могу найти функцию, которая будет случайным образом выбирать что-то из списка, я создаю объект того же типа или полностью случайный список.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

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

В модели динамики рынка, за которую я несу ответственность - и за которую изначально была создана команда Бенджамина, - именно так назначается глобальная совокупность агентов клиентов. банкам (теперь продуктам), и у меня пока не было причин (четыре года) менять его. При необходимости вы можете легко перемещать агентов клиентов между группами населения. Опять же, в моем конкретном примере c я не видел необходимости изменять код, который я унаследовал, так что это облегчается простым вызовом add / remove соответствующих ArrayLists of Customers.

0 голосов
/ 12 февраля 2020

Сначала вы помещаете клиентов1 ... 3 в коллекцию (всего три) или в список?

да. А затем позвоните по номеру randomFrom, чтобы выбрать группу клиентов, а затем снова позвоните, чтобы получить случайного клиента из этой группы.

...