【发布时间】:2023-03-19 15:08:01
【问题描述】:
我希望你一切都做得很好。 我有一个有趣的问题,一直困扰着我。它是关于以精确的顺序生成组合。 例如,我有 4 个变量(可以变化),这 4 个变量有一些增加的限制,例如在这种情况下 2。所以我想按以下顺序生成 2d 矩阵:
0 0 0 0
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 0 0
1 0 1 0
1 0 0 1
0 1 1 0
0 1 0 1
0 0 1 1
1 1 1 0
0 1 1 1
1 1 1 1
2 0 0 0
0 2 0 0
0 0 2 0
0 0 0 2
2 1 0 0
2 0 1 0
......
......
and so on.
变量的数量(在这种情况下为 4)可以改变,并且最大限制(在这种情况下为 4)也可以改变。 即使我也找到了所有可能的组合,但我无法按此顺序排列它们。 如果有人给出答案,那就太好了。 干杯!
【问题讨论】:
-
@KenWhite 在逻辑上完全不同......这里我们只知道变量的输入数量和每个变量的最大限制。比您需要计算可能以千计的所有组合,并且比您需要构建一个包含所有这些组合数量的矩阵...例如,对于 4 个输入,每个输入的最大限制为 6,那么组合的数量将是 2041 . 希望你理解
-
组合将从
0 0 0 0到9 9 9 9,包括? -
@FiddlingBits。是的,你是对的。
-
因此,如果您说所有 4 个变量的限制为 9 9 9 9 ,那么将有 10,000 种可能的组合。
标签: c math matrix combinations arrangeoverride