delphi - 如何从仅包含两个不同数字的数字中获取组合数?

标签 delphi numbers combinations

例如,两位数有 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/

相关文章:

function - J、创建函数

javascript - 应用于表示负十六进制的字符串的 JS 一元加运算符的行为

delphi - 使用 fontdialog 和 RichEdit 更改事件控件

windows - 我应该在哪里存储配置文件?

Delphi/ADO : Which components? TADODataSet 和 TADOCommand 或 TADOQuery?

php - 数组中值的排列

Java Map<A, List<B>> 元素的组合

delphi - 无法在 Delphi TActionMainMenuBar 中显示与号 (&)

arrays - 面试问题,他们想要完成什么?

python - 获取list python的所有有序组合