Как позволить только определенному проценту черепах умирать каждые 10 клещей? - PullRequest
0 голосов
/ 07 декабря 2018

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

У меня есть тип черепахи (секс-работников), разделенных по логической переменной [trust?] и хотите, чтобы определенный процент / определенное число (не так важно) одного из двух типов выходило из модели [die] через каждые 10 тиков.

Я попытался и потерпел неудачу со следующим:

попытался сделать половину выхода, НО: убивает всех или большинство, а не половину. :

ask n-of (count sexworkers / 2) sexworkers [ die ]

этот работает, но убивает слишком много.Если в каком-либо конкретном патче более двух секс-работников, все, кроме одного, умрут.Могу ли я установить это в процентах?

ask patches with [count sexworkers-here >= 2]
[ ask one-of sexworkers-here [ ask other sexworkers-here[die]]
]

это также убивает всех на каждые 10 тиков, слишком много для меня

ask sexworkers with [trust?][ if ticks - birth-tick > 10 [die] ]

; все доверяющие секс-работники умирают, когда им больше 10 тиков

должны убить определенный процент, но переменная reporter отсутствует из-за логического свойства вместо числового

ask min-n-of (0.5 * count sexworkers with [trust?]) sexworkers with [trust?] [XXXXXXREPORTERXXXX]
[die]

1 Ответ

0 голосов
/ 07 декабря 2018

Ваш первый код правильный.Попробуйте это в новой модели, чтобы увидеть:

to testme
  clear-all
  create-turtles 150 [set color red setxy random-xcor random-ycor]
  print count turtles
  ask n-of (count turtles / 2) turtles [ die ]
  print count turtles
end

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

turtles-own [trust?]

to testme
  clear-all
  create-turtles 150
  [ set color red
    setxy random-xcor random-ycor
    set trust? random-float 1 < 0.1
  ]
  print count turtles
  print count turtles with [trust?]
  ask turtles with [trust?]
  [ ask n-of (count turtles / 2) turtles [ die ]
    print count turtles
  ]
end

Он назначает 10% черепах как имеющих ИСТИННОЕ доверие?и затем просит каждого из этих черепах убить половину черепах, которые еще живы.Ты делал что-то подобное?

...