如何以一个值的最小份额请求特定份额的海龟?

How to ask for a specific share of turtles with a minimum share of a value?

我在一个行业(世界)中成立了公司(海龟),这些公司要么在国内生产(位于国内的公司> ycor),要么将其生产外包(位于< ycor 的离岸公司)。我给了他们一个名为 offshored 的 firms-own?用真或假来回答。在设置时,他们还获得了公司自己的公司自动化级别,该级别在 0 和 1 之间随机。

现在,我希望其中 30% 的企业自动化程度最低,以将生产转移到 < 0 ycor 并报告:离岸? = 真

breed [ firms firm ]

firms-own [
 firm-level-of-automation   ;; initially random between 0 and 1
 offshored?   ;; true or false
]

to go
tick
ask firms [
 set firm-level-of-automation 0 + random-float 1

 if min [ firm-level-of-automation ] of firms [
   count firms * 0.3 firms [ setxy random-xcor random-between ( -10 ) -1   ;; distribute randomly abroad in an area < 0 ycor
   set offshored? true ] ] ]
end

我不知道如何最好地混合使用 ifmin 命令。有什么建议吗?

不确定为什么您对此投了反对票,这似乎是一个明智的问题。不管怎样,没必要混用minif,你可以简单地ask30%的海龟值较低的来做你想做的事。在字典中查找 min-n-of 原语,你会想要这样的东西:

ask min-n-of (0.3 * count firms) firms [firm-level-of-automation]
[ setxy random-xcor random-between ( -10 ) -1 
  set offshored? true
]