Netlogo 计算不同链接的数量

Netlogo 计算不同链接的数量,netlogo,Netlogo,在我的代码中,所有海龟都拥有由一个n元组(a1,a2,…,an)表示的n特征。其中每个ai可以取0或1的值。 我在海龟之间建立了一些联系。如果两个海龟共享k-特征(坐标匹配),并且它们之间存在链接,那么我们将该链接称为k-链接 我如何找到每个k(0到n之间)总共有多少个k-link?您没有告诉我们您是如何构造代码的,因此我假设您的n元组是作为列表实现的(这在NetLogo中最有意义) 以下是一个完整的示例: turtles-own [ a ] links-own [ k ] globals [

在我的代码中,所有海龟都拥有由一个n元组(a1,a2,…,an)表示的n特征。其中每个ai可以取0或1的值。 我在海龟之间建立了一些联系。如果两个海龟共享k-特征(坐标匹配),并且它们之间存在链接,那么我们将该链接称为k-链接


我如何找到每个k(0到n之间)总共有多少个k-link?

您没有告诉我们您是如何构造代码的,因此我假设您的n元组是作为列表实现的(这在NetLogo中最有意义)

以下是一个完整的示例:

turtles-own [ a ]
links-own [ k ]
globals [ n ]

to setup
  ca
  set n 5
  crt 10 [ ; create turtles with random feature lists
    set a n-values n [ random 2 ]
  ]
  ask turtles [ ; make a full network
    create-links-with other turtles
  ]
  ask links [ ; calculate k for all links
    set k k-of-feature-lists ([a] of end1) ([a] of end2)
  ]
  foreach n-values (n + 1) [ ? ] [ ; display number of k-links
    show (word ? "-links: " count links with [ k = ? ])
  ]
end

to-report k-of-feature-lists [ a1 a2 ]
  report length filter [?] (map = a1 a2)
end
除了
k-of-feature-list
,这是一个相当琐碎的代码。
k-of-feature-list
所做的是:

  • 如果两个要素列表中的对应元素相等,则将两个要素列表转换为一个布尔值列表,其中包含
    true
    值;如果两个要素列表中的对应元素不相等,则将
    false
    值。这是通过使用和for
    =
    实现的

  • 布尔值列表,仅保留
    true

  • 报告过滤列表的数量,该数量等于在
    a1
    a2
    中相同的功能的数量


有很多其他方法可以做到这一点(有些更有效),但这一种方法很好而且简洁。

StackOverflow。您通常可以使用降价和unicode实现一些不错的功能。我已经编辑了你的问题。另外,数学描述很好,但通常还不够:请在有代码时发布代码;让我们看看你试过什么。