Как настроить список в netlogo со случайными значениями, но с постоянной суммой?

Я довольно новичок в нетлоге и моделировании в целом. Сейчас я моделирую муниципальную систему твердых отходов в Нидерландах, и мне нужно иметь возможность распределять заранее определенное количество образующихся отходов случайным образом среди породы (муниципалитетов) в рамках моей модели. Мне нужно сделать то же самое для денег среди переработчиков отходов.

Я пробовал это с глобальными, с собственными породами и даже создавая новую породу для отходов (что сработало, но моему решению требовалось слишком много вычислительной мощности, которую я не вижу, чтобы упростить ее.

заранее спасибо

1 ответ

To share[waste]
While [waste > .1] ;; or some small number
[
Let r random-float 1
Set waste waste - r
Ask one-of patches[set pcolor pcolor + r
]
Ask one-of patches[set pcolor pcolor + waste ;; ditch the dregs
End

Делать это с целыми числами не будет сильно отличаться.

Чтобы сделать это список

Let pots []
Ask patches[set pots lput pcolor pots]

Ответ 2 равномерное распределение

Ask n[set take random-float resource / count n]
Let fix (resource - sum [take] of p) / count n
Ask n[set take take + fix]
Другие вопросы по тегам