如何让每 10 ticks 只让一定比例的海龟死亡?

How to let only a certain percentage of turtles die every 10 ticks?

在这里尝试了所有有点适用的解决方案都无济于事之后,我仍然想看看是否有人可以帮助我。

我有一种乌龟(性工作者)按布尔变量 [trust?] 划分,并希望使两种类型之一的特定 percentage/certain 数量(不太重要)退出模型 [ die] 每 10 个滴答数。

我尝试了以下但失败了:

试图让一半退出,但是:杀死全部或大部分,而不是一半。 :

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

这个有效但杀死了太多。如果在任何给定的补丁上有超过 2 名性工作者,则除一名外,其他人都会死亡。我可以将它设置为百分比吗?

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 个 ticks 时都会死亡

应该杀死一定比例但由于布尔值 属性 而不是基于数字的

而缺少报告变量
ask min-n-of (0.5 * count sexworkers with [trust?]) sexworkers with [trust?] [XXXXXXREPORTERXXXX]
[die]

您的第一个密码是正确的。在新模型中试试看:

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% 的海龟具有 TRUE 信任?然后要求每只海龟杀死一半还活着的海龟。你做过这样的事吗?