【问题标题】:How to make a random binary list of lenght 67如何制作长度为 67 的随机二进制列表
【发布时间】:2017-06-12 15:28:15
【问题描述】:

这是我在这里的第一篇文章(也是我第一次使用 netlogo),所以我会尽量简洁:

我正在尝试像 Epstein 和 Axtell 在 GAS 中那样为我的海龟写一个列表(第 73 页)。

直到现在我尝试了这个没有结果。

to setup-culture-tags                                     ;set variable
  let initial-culture-tags n-values 67 [ random 2 ]       ;create a random 
                                                           binary list of 67 
  set culture-tags initial-culture-tags                   ;
end

列出清单后,我想根据 0 的数量对它们进行分类。例如,“00011”为“蓝色”,“00111”为“红色”。

这里的想法是给海龟一个长度为 67 的随机二进制列表。然后,它们将根据“标签翻转”进行交互并更改其值: 对于每个邻居,随机选择一个标签。 如果邻居同意该位置的代理,则不进行更改;如果他们不同意,则将邻居的标签翻转为与代理的标签一致。

我不知道这是不是一个愚蠢的问题,但我开始感到沮丧,所以我希望能得到一点帮助。

【问题讨论】:

    标签: list random binary netlogo


    【解决方案1】:

    不确定您在这里遇到了什么错误,但看起来您可能正在尝试全局设置 turtles-own 变量。如果culture-tagsturtles-own 变量(如果您希望所有海龟都有自己的culture-tags 列表,则必须是该变量),您必须使用ask turtles [ ... 要求每个单独的海龟填充您想要的列表。试试这个:

    turtles-own [ culture-tags ]
    
    to setup
    
      ca
      reset-ticks
      crt 10
    
      ask turtles [
        set culture-tags n-values 67 [ random 2 ]        
      ]
    
      ask one-of turtles [
        show length culture-tags
        show culture-tags
      ]
    
    end
    

    要获得零/一的计数,请查看 filter 的字典条目并尝试将其与 length 结合使用。

    【讨论】:

    • 谢谢!我昨天想出了如何解决这个问题,但这是一个讨厌的解决方案,我不喜欢它。你是对的,我的问题是观察者/乌龟问题。我还没有得到节奏。你用更少的代码和更好的方式解决了我的问题。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2017-07-21
    相关资源
    最近更新 更多