Как создать случайно распределенную логическую переменную для <breed>, которая изменится в модели? - PullRequest
0 голосов
/ 28 ноября 2018

Я пишу модель с двумя породами: секс-работниками и офицерами, где секс-работники имеют логическую переменную, которая случайным образом распределяется при настройке, но затем изменяется на ходу в зависимости от поведения и взаимодействия с офицерами.Я пользуюсь секс-работниками самостоятельно [доверие?]

в преамбуле, но тогда я не уверен, как распределить y / n переменной случайным образом среди населения секс-работников.Очень ценю любой вклад!

Спасибо большое!

1 Ответ

0 голосов
/ 29 ноября 2018

Если я правильно понимаю ваш вопрос, вы просто хотите, чтобы sexworkers случайно выбрал между true и false для переменной trust? при настройке.Если это правильно, то, возможно, one-of подойдет вам - например, запустите эту простую настройку:

breed [ sexworkers sexworker ]
sexworkers-own [ trust? ]

to setup
  ca
  create-sexworkers 1000 [
    set trust? one-of [ true false ]
  ]
  print word "% Trusting: "  ( ( count sexworkers with [ trust? ] ) / 
    count sexworkers * 100 )
  reset-ticks
end

Если вы ищете какой-то неравномерный дистрибутив, вы можете сделать простыеиспользуя примитивы random или random-float.Например, если я хочу, чтобы 25% из sexworkers начиналось с trust? = true, я могу сделать что-то вроде:

to setup-2
  ca
  create-sexworkers 1000 [
    ifelse random-float 1 < 0.25 [
      set trust? true 
    ] [
      set trust? false
    ]
  ]
  print word "% Trusting: "  ( ( count sexworkers with [ trust? ] ) / 
    count sexworkers * 100 )
  reset-ticks
end

Для конкретных дистрибутивов взгляните на различных случайных репортеров

Для взвешенной случайности взгляните на расширение rnd

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...