假设我们有字典上的整数3,5,6,9,10,12 or 0011,0101,0110,1001,1010,1100
,每个整数都设置了两个位。
3
我想要的是找到说和5
使用尽可能少的操作之间的距离(它们之间有多少词典排列,而不进行实际排列) 。
距离表如下
3->5 = 1 or 0011->0101 = 0001
3->6 = 2 or 0011->0110 = 0010
3->9 = 3 or 0011->1001 = 0011
3->10 = 4 or 0011->1010 = 0100
3->12 = 5 or 0011->1100 = 0101
所以函数 f(3,5) 将返回 1;
该函数将始终采用相同的汉明权重(相同数量的设置位)的参数。
不应使用数组。
任何想法都会很棒。
编辑
忘了提一下,对于任何设置的位大小(汉明权重),我将始终使用第一个字典排列(base
)作为第一个参数。
例如
hamming weight 1 base = 1
hamming weight 2 base = 3
hamming weight 3 base = 7
...
编辑 2
该解决方案应该适用于任何汉明重量,抱歉我不够具体。