Выберите элемент из списка на основе условия - PullRequest
1 голос
/ 07 октября 2019

У меня есть список агента, составленный из элементов списков его соседей. Мне нужно было бы выбрать элемент из него на основе параметра: чем выше параметр h, тем более вероятно выбрать этот элемент.

Чтобы выбрать предмет, который я пробовал: print one-of list, где список содержит все предметы, собранные у соседа (set list lput item list).

Однако я не знаю, как добавить условие о параметре. Я пробовал с max (list item), но это не учитывает значение параметра h (оно может принимать значения от 1 до 10).

Не могли бы вы предложить мне, как это рассмотреть? Большое спасибо

1 Ответ

2 голосов
/ 07 октября 2019

Расширение rnd делает именно то, что вам нужно. Поставьте extensions [rnd] в верхней части вашего кода. Затем используйте rnd:weighted-one-of-list, чтобы сделать выбор. Вот полная программа, которая демонстрирует. Поместите его в пустую модель NetLogo и затем запустите процедуру testme несколько раз.

extensions [rnd]
to testme
  let mylist [1 3 5]
  repeat 10
  [ type rnd:weighted-one-of-list mylist [ [ii] -> ii ]
    type " "
  ]
end
...