gpt4 book ai didi

combinations - 为给定的基数和位数生成所有可能的排列

转载 作者:行者123 更新时间:2023-12-04 21:22:15 28 4
gpt4 key购买 nike

我确信这很简单,但我很难找到一种方法来做到这一点。基本上,如果我有一个包含 P 列和 V^P 行的数组,我如何填写所有组合,即基本上所有可能的数字以 P 数字的 V 为基数。例如,对于 P=3 和 V=2:

000
001
010
011
100
101
110
111

请记住,这是一个二维数组,而不是整数数组。

对于 P=4 和 V=3。
0000
0001
0002
0010
0011
0012
....

生成这个数组后,我试图开发的其余工作就变得微不足道了。因此,将不胜感激有关如何执行此操作的一些代码/提示。谢谢。

最佳答案

以 P=3 和 V=2 为例,在第一列中,您需要以下数字序列:

0, 0, 0, 0, 1, 1, 1, 1

所以你本质上想要四个 0 后跟四个 1。

在第二列中,您需要:
0, 0, 1, 1, 0, 0, 1, 1

所以你想要两个 0 后跟两个 1,然后又是相同的。

一般来说,在第 n 列中,您需要每个数字的 V^(P-n),重复 V^(n-1) 次。

当 P=3 且 V=2 时的示例:

第 1 列:我们需要每个数字的 V^(P-n) = 2^(3-1) = 4,重复 V^(n-1) = 2^0 = 1 次:
[0, 0, 0, 0, 1, 1, 1, 1]

第 2 列:我们需要每个数字的 V^(P-n) = 2^(3-2) = 2,重复 V^(n-1) = 2^1 = 2 次:
[0, 0, 1, 1], [0, 0, 1, 1]

第 3 列:我们需要每个数字的 V^(P-n) = 2^(3-3) = 1,重复 V^(n-1) = 2^2 = 4 次:
[0, 1], [0, 1], [0, 1], [0, 1]

一些生成此序列的 Python 代码:
def sequence(v, p, column):
subsequence = []
for i in range(v):
subsequence += [i] * v**(p - column)
return subsequence * v**(column - 1)

关于combinations - 为给定的基数和位数生成所有可能的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10277401/

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