我的海龟拥有超过30个布尔值的属性,我想使用foreach循环来比较海龟并根据它们的相似性对它们进行排名,而无需单独比较每个属性。我可能在这里错过了一个明显的观点,我已经尝试了一个属性列表,但它没有用,并且所有的乌龟都获得了最大的相似度得分。
答案 0 :(得分:3)
这是一些计算两个列表之间汉明距离的代码。请注意,非常聪明的reduce
代码直接来自NetLogo字典。
to testme
let ll1 (list TRUE TRUE FALSE FALSE)
let ll2 (list TRUE FALSE TRUE FALSE)
let ll3 ( map = ll2 ll1 )
show ll3
show reduce [ [occurrence-count next-item] ->
ifelse-value (next-item) [occurrence-count + 1] [occurrence-count] ] (fput 0 ll3)
end
如果你想要计算一对海龟的相似度得分,你可以把它变成一个以两只乌龟为参数的记者。但目前尚不清楚比较两只乌龟是你想做什么的,所以我没有为此编写代码。