请问如何按patch的某一个变量对其进行排序?万分感谢!
请教大家一个问题:每个patch有两个变量,每个patch的wealth都不相同,我想按照wealth的大小对patch进行排名,然后在rank里表示出来,也就是说如果patch的wealth最大,它的rank就为1,wealth第二大rank就为2,依次类推!
请问大家如果实现!
非常感谢! patches-own
..........
..........
ask patches of myself]] 思路:这是一个排序算法问题,关于排序有很多经典算法,如冒泡法等等,建议参照其它语言如C对算法的描述,用netlogo语句实现,在排序的同时给rank赋值。不知道这样的回答对您有否帮助。祝好 用list吧
patches-own
to setup
ca
ask patches
end
to go
let mylist1 []
set mylist1 sort-by [ of ?1 < of ?2] patches
let mylist2 []
set mylist2 n-values count patches [? + 1]
( foreachmylist1 mylist2
[
ask ?1[ set rank ?2]
show of ?1
]
)
let mylist3 []
set mylist3 sort-by [ of ?1 < of ?2] patches
show count patches
show mylist1
show mylist3
end
这时的mylist1 和mylist3 应该是一样的
页:
[1]