如何以一个值的最小份额请求特定份额的海龟?
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
我不知道如何最好地混合使用 if
和 min
命令。有什么建议吗?
不确定为什么您对此投了反对票,这似乎是一个明智的问题。不管怎样,没必要混用min
和if
,你可以简单地ask
30%的海龟值较低的来做你想做的事。在字典中查找 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
]
我在一个行业(世界)中成立了公司(海龟),这些公司要么在国内生产(位于国内的公司> 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
我不知道如何最好地混合使用 if
和 min
命令。有什么建议吗?
不确定为什么您对此投了反对票,这似乎是一个明智的问题。不管怎样,没必要混用min
和if
,你可以简单地ask
30%的海龟值较低的来做你想做的事。在字典中查找 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
]