4

例如,两位数字有 4 种组合:11、12、21、22。三位数字有 8 种组合:111、112、...222。

  • 如何获得具有 4、5、... 10 位或更多位数的数字的组合数?

谢谢

PS这是指Delphi :)

4

1 回答 1

15

答案是 2 N,其中N是位数。

这是一个纯粹的数学问题,涉及非常基本的组合学。很容易看出为什么 2 N是正确答案。实际上,有两种方法可以选择第一个数字。对于每个这样的选择,有两种方法可以选择第二个数字。因此,有 2×2 种方法来选择两位数。对于每个这样的数字,有两种方法可以添加第三个数字,用 2×2×2 的方式来构造一个三位数的数字。因此,有

2 × 2 × ... × 2 = 2^N

构造一个N位数字的方法。

在 Delphi 中,您通过( )计算 2 N。[适用于N < 31 的不那么天真的方法是.]Power(2, N)uses Math1 shl N

于 2012-07-14T16:18:11.607 回答