netlogo错误在长度为x的列表中找不到元素x
以下程序旨在从众多海龟中选出一位“赞助人”,并将其颜色改为白色。选择是基于海龟的财富的概率 运行此代码,特别是在radius中排序的行netlogo错误在长度为x的列表中找不到元素x,netlogo,Netlogo,以下程序旨在从众多海龟中选出一位“赞助人”,并将其颜色改为白色。选择是基于海龟的财富的概率 运行此代码,特别是在radius中排序的行项i我得到一条类似这样的错误消息:“在列表中找不到元素43…(显示海龟财富列表)…其长度仅为43。”我理解我得到此错误,因为列表从0开始,因此43个元素的列表从0到42,但是我不明白为什么我写的代码不适合这一点。我的i从0开始,如果i不超过查询的海龟数量(即应在42处停止),则过程停止。有人能提出解决办法吗?谢谢/P 预选赞助人 让我0 让半径范围内的用户以[we
项i
我得到一条类似这样的错误消息:“在列表中找不到元素43…(显示海龟财富列表)…其长度仅为43。
”我理解我得到此错误,因为列表从0开始,因此43个元素的列表从0到42,但是我不明白为什么我写的代码不适合这一点。我的i
从0
开始,如果i
不
超过查询的海龟数量(即应在42处停止),则过程停止。有人能提出解决办法吗?谢谢/P
预选赞助人
让我0
让半径范围内的用户以[wealth>=80]计算半径范围内的海龟
以[wealth>=80]为半径,让海龟的[wealth]按半径排序
让半径内的总财富和半径内海龟的[wealth]之和为[wealth>=80]
而[i<(半径范围内的用户)][
询问半径为[wealth>=80]的海龟[
如果自我[财富]=第i项半径排名[
如果随机100<((财富/半径内的总财富)*100)[
将颜色设置为白色
如果有的话?乌龟在半径范围内[color=white][stop]
]
集合i(i+1)
]
]
]
结束
看起来您的
集合i(i+1)
位于错误的块中。现在,i
在[wealth].运行时,每次您的都会增加,i
只应在结束时增加,[i
(半径范围内的用户)]
块
尝试以下代码以替换您的while
语句:
while [ i < (patrons-in-radius) ] [
ask turtles in-radius radius with [ wealth >= 80 ] [
if [ wealth ] of self = item i ranking-in-radius [
if random 100 < ( (wealth / total-wealth-in-radius) * 100) [
set color white
if any? turtles in-radius radius with [color = white] [
stop
]
]
]
]
set i i + 1
]
while[i<(半径范围内的用户)][
询问半径为[wealth>=80]的海龟[
如果自我[财富]=第i项半径排名[
如果随机100<((财富/半径内的总财富)*100)[
将颜色设置为白色
如果有?半径为[color=white]的海龟[
停止
]
]
]
]
集合i+1
]
while [ i < (patrons-in-radius) ] [
ask turtles in-radius radius with [ wealth >= 80 ] [
if [ wealth ] of self = item i ranking-in-radius [
if random 100 < ( (wealth / total-wealth-in-radius) * 100) [
set color white
if any? turtles in-radius radius with [color = white] [
stop
]
]
]
]
set i i + 1
]