[英]Figure out all possible permutations of 3 numbers in N slots [Python]
所以我需要想办法在有 N 个插槽时获得 3 个数字的所有排列,即 1、0 和 -1。
因此,如果有 2 个插槽 (N=2),function 将返回:
[
[1,1],
[1,0],
[0,1],
[0,0],
[-1,0],
[0,-1],
[-1,-1],
[1,-1],
[-1,1]
]
同样,如果 N = 3,我们会得到一个更长的结果,所以我不打算在这里写出来。
老实说,不确定如何编写 function 来完成此操作。 如果有人有任何建议,我会很乐意听取他们的意见!
值得注意的是: itertools.permutations 在这种情况下不起作用,就好像我在 3 个插槽上方的 go 它只会返回任何内容。 需要找到一个在多达 10 个插槽时可以工作的解决方案。
这不是关于排列的问题——您正在寻找生成笛卡尔积,特别是,您正在寻找生成{-1, 0, 1} x {-1, 0, 1} x {-1, 0, 1} x... (repeat with n sets)
此代码段计算上述内容:
n = 2
nums = [-1, 0, 1]
print(list(list(entry) for entry in itertools.product(nums, repeat=n)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.