gpt4 book ai didi

list - 在 NetLogo 中生成列表的排列

转载 作者:行者123 更新时间:2023-12-01 11:29:36 24 4
gpt4 key购买 nike

我正在尝试在 NetLogo 中生成一个列表,其中包含几个不同的数字 0 到 n 的唯一列表。例如,我有这行代码

set mylists [[0 1 2] [0 2 1] [1 0 2] [1 2 0] [2 0 1] [2 1 0]]

我写的所有可能的唯一组合 0 1 和 2 没有任何重复列表中的数字。我希望能够做同样的事情,但有更大的 n。有没有一个例子说明如何做到这一点,或者任何人都知道我可以检查的某种伪代码算法?谢谢!

最佳答案

如果你不介意递归解决方案,你可以这样做:

to-report permutations [#lst] ;Return all permutations of `lst`
let n length #lst
if (n = 0) [report #lst]
if (n = 1) [report (list #lst)]
if (n = 2) [report (list #lst reverse #lst)]
let result []
let idxs n-values n [?]
foreach idxs [
let xi item ? #lst
foreach (permutations remove-item ? #lst) [
set result lput (fput xi ?) result
]
]
report result
end

编辑:更新语法以响应评论。
to-report permutations [#lst] ;Return all permutations of `lst`
let n length #lst
if (n = 0) [report #lst]
if (n = 1) [report (list #lst)]
if (n = 2) [report (list #lst reverse #lst)]
let result []
let idxs range n
foreach idxs [? ->
let xi item ? #lst
foreach (permutations remove-item ? #lst) [?? ->
set result lput (fput xi ??) result
]
]
report result
end

关于list - 在 NetLogo 中生成列表的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com