netlogo错误在长度为x的列表中找不到元素x

netlogo错误在长度为x的列表中找不到元素x,netlogo,Netlogo,以下程序旨在从众多海龟中选出一位“赞助人”,并将其颜色改为白色。选择是基于海龟的财富的概率 运行此代码,特别是在radius中排序的行项i我得到一条类似这样的错误消息:“在列表中找不到元素43…(显示海龟财富列表)…其长度仅为43。”我理解我得到此错误,因为列表从0开始,因此43个元素的列表从0到42,但是我不明白为什么我写的代码不适合这一点。我的i从0开始,如果i不超过查询的海龟数量(即应在42处停止),则过程停止。有人能提出解决办法吗?谢谢/P 预选赞助人 让我0 让半径范围内的用户以[we

以下程序旨在从众多海龟中选出一位“赞助人”,并将其颜色改为白色。选择是基于海龟的财富的概率

运行此代码,特别是在radius中排序的行
项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
  ]