【发布时间】:2018-02-19 17:44:49
【问题描述】:
我正在尝试推出自己的压缩算法作为实验。对于我的解决方案的一部分,我需要计算输入字节中 1 的位数。当前要求输入字节为 8 字节或 64 位长。这意味着我可以从 0 到 64 计算 1 位。
我正在努力理解和计算的是我使用这种方法可能遇到的最大组合数?
示例 1:
1 位计数 = 1 这意味着有 63 个零位 这意味着在这种情况下总共有 64 种组合
我不明白的地方
当有 32 个 1 位时会发生什么?到目前为止,我的方法是简单的乘法:所以对于 32 个 1 位和 32 个 0 位(请记住,我们的最大值为 64 位)所以 64 x 32 = 2048。
这个数学正确吗?
老实说,这似乎太低了,但我不确定。更令人困惑的是,我知道 1 和 0 的数量但不知道它们的确切位置,这如何减少最大可能的组合。很明显,如果这是一个简单的 64 位总共有多少组合,那将是 2^64,这是一个巨大的数字。让我怀疑我之前的数学是否准确。
【问题讨论】:
标签: math combinations bit