Как создать случайную бинарную/логическую переменную в Netlogo

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

Это близко, но неловко:

ifelse random-in-range 0 1 < .5 [set expensive? false]
[ set expensive? true ]

Кто-нибудь знает лучший способ?


person user2658742    schedule 06.03.2015    source источник


Ответы (1)


Несколько вариантов:

  • one-of [ true false ]

  • random 2 = 1

  • random-float 1 < 0.5 - Если вам нужно изменить вероятность, чтобы получить любое распределение Бернулли, которое вы хотите

Если я имею дело с большим количеством вероятностных вещей в модели, мне нравится добавлять

to-report probability [ p ]
  report random-float 1 < p
end

как простое сокращение.

Также обратите внимание, что ifelse является избыточным в вашем коде. Вы можете просто сделать set expensive? one-of [ true false ] или любой другой способ, который вам больше нравится.

person Bryan Head    schedule 06.03.2015