例如,两位数有 4 种组合:11、12、21、22。三位数有 8 种组合:111、112、...222。
- 如何获取 4、5、... 10 或更多位数字的组合数?
谢谢
附注这是指Delphi:)
最佳答案
答案是 2N,其中 N 是位数。
这是一个纯粹的数学问题,涉及非常基本的组合学。很容易看出为什么 2N 是正确答案。事实上,有两种方法可以选择第一位数字。 对于每个这样的选择,有两种方法来选择第二个数字。因此,有 2×2 种方法来选择两位数。 对于每个这样的数字,有两种方法来添加第三个数字,从而形成 2×2×2 的方法来构造一个三位数。因此,有
2 × 2 × ... × 2 = 2^N
构造N位数字的方法。
在 Delphi 中,您可以通过 Power(2, N)
计算 2N(使用数学
)。 [一个不太幼稚的方法,适用于 N < 31,是 1 shl N
。]
关于delphi - 如何从仅包含两个不同数字的数字中获取组合数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485329/