从Netlogo中的2个向量获取排列

问题描述 投票:0回答:1

我有2个向量,例如

set xlims [0 9]
set ylims [0 9]

并且想要获得列表中的排列:

[ [0 0] [9 0] [0 9] [9 9] ]

我一直在尝试foreach无济于事。

如何编码?

list netlogo
1个回答
1
投票

嵌套的foreach将为您提供所需的内容。

to-report permute [ lst1 lst2 ]
  let result []
  foreach lst1 [l1 ->
    foreach lst2 [l2 ->
      set result lput (list l1 l2) result
    ]
  ]
  report result
end

permute [0 9] [0 9]产生[[0 0] [0 9] [9 0] [9 9]]并且permute [0 9] [0 9 1]产生[[0 0] [0 9] [0 1] [9 0] [9 9] [9 1]]

如果要使用两个以上的列表来执行此操作,则可能需要递归解决方案。

希望这会有所帮助,

查尔斯

© www.soinside.com 2019 - 2024. All rights reserved.