如何让每10个s中只有一定比例的海龟死亡?

时间:2018-12-07 00:40:02

标签: netlogo die

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

我有一种类型的乌龟(性工作者),沿着布尔变量[trust?]划分,并且想让每两种类型的龟中的一种/某些百分比/某些数字(不是很重要)退出模型[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个滴答声而死亡

应该杀死一定百分比,但是由于布尔属性而不是基于数字的属性,因此缺少了报告变量。

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

1 个答案:

答案 0 :(得分:0)

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

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