如何随机删除网格中一定百分比的块边?

时间:2014-03-21 22:53:35

标签: netlogo

我试图在网格中随机移除例如20%,50%,80%......的块边。我的想法是:

  • 使用“Patch Clusters示例”为每个路段分配标签

  • 然后使用How to randomly remove block side in a grid?中的解决方案,如下所示:

    to remove-random-roads
    let deleted-road-percent 25 
    let road-section-number length remove 0 remove-duplicates ([cluster] of patches)
    let repetition-number (deleted-road-percent * road-section-number) / 100
    
    repeat repetition-number [
    let random-patch one-of patches with [pcolor = white]
    let side grow-cluster no-patches random-patch
    ask side [ set pcolor brown] ]
    end
    

不幸的是,代码不起作用,因为它删除了所有道路而不是移除景观中25%的道路。我不明白为什么会这样做?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

有两种可能的解释:

  1. 您计算要移除的道路数量是错误的。
  2. 您删除道路的代码是错误的。
  3. 所以你需要采取的下一步是找出它们中的哪一个。

    let repetition-number ...之后,添加:

    print repetition-number
    

    打印的值是否正确?如果不是,请追求路径#1。如果是,请追求路径#2。 (如果仍然卡住,请回到这里告诉我们您需要帮助的路径。)