【问题标题】:How should I store and compute Hamming distance between binary codes?我应该如何存储和计算二进制代码之间的汉明距离?
【发布时间】:2014-10-02 20:04:52
【问题描述】:
  1. 如何有效地存储二进制代码?对于某些固定大小,例如 32 位,可以使用原始类型。但是如果我的二进制代码更长呢?

  2. 计算两个二进制码之间汉明距离的最快方法是什么?

【问题讨论】:

  • std::bitset 怎么样?

标签: c++ math hash hamming-distance


【解决方案1】:
  1. 使用std::bitset<N>,在<bitset> 标头中定义,其中N 是位数(不是字节)。
  2. 使用(a ^ b).count() 计算两个二进制代码ab 之间的汉明距离。

【讨论】:

  • 我不明白如果使用 30 位代码我仍然可以使用 32 位整数怎么办?(可能以某种方式屏蔽 2 个第一位)?
  • @mrgloom 我会使用这种方法,对其进行分析,然后仅当您确定它太慢时才考虑做一些自定义。我的理解是std::bitset<30> 只会使用 4 个字节的存储空间。
  • 好蒂莫西,也许你可以帮助XOR bitset when 2D bitset is stored as 1D
猜你喜欢
  • 2015-12-20
  • 2019-09-02
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
  • 2013-11-18
  • 2019-04-23
  • 2020-12-18
  • 2015-03-21
相关资源
最近更新 更多