gpt4 book ai didi

algorithm - 每种可能的组合算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:17:44 24 4
gpt4 key购买 nike

假设我有 2 个符号,由 A 和 B 组成。我想打印 A 和 B 的所有组合,最大长度为 n。 n 可以是 3、4 或 5。

例如当n=3时,一共有8种可能性:

AAA
AAB
ABB
BBB
BBA
BAA
BAB
ABA

执行此操作最简单有效的方法是什么?谢谢

最佳答案

可能性对应于您可以用 n 位表示的所有可能数字的位模式:

0 = 000 -> AAA
1 = 001 -> AAB
2 = 010 -> ABA
3 = 011 -> ABB
4 = 100 -> BAA
5 = 101 -> BAB
6 = 110 -> BBA
7 = 111 -> BBB

您可以简单地遍历数字,并使用字符而不是二进制数字获取二进制表示。

例子:

var n = 3;
var chars = [ 'A', 'B' ];

var max = Math.pow(2, n);

for (var i = 0; i < max; i++) {
var s = '', x = i;
while (s.length < n) {
s = chars[x & 1] + s;
x >>= 1;
}
document.write(s + '<br>');
}

关于algorithm - 每种可能的组合算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27070766/

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