繁体   English   中英

找出 N 个插槽中 3 个数字的所有可能排列 [Python]

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM