n***t 发帖数: 76 | 1 给一个list 每个list是个二进制数(没说是integer还是string表示的) 然后求
出这个list中 每一对二进制数的 海明距离的总和 比如 这个list里 的 二进制数是
A,B,C 。。。 求 sum(ham(a,b),ham(b,c),ham(a,c),。。。) 要求 time
complexity faster than O(n^2) | f*****e 发帖数: 2992 | 2 b1b2...bn
b1=1的有N1,b1=0的有M1
...
bn=1的有Nn,bn=0的有Mn
sum(M_i*N_i)
是
【在 n***t 的大作中提到】 : 给一个list 每个list是个二进制数(没说是integer还是string表示的) 然后求 : 出这个list中 每一对二进制数的 海明距离的总和 比如 这个list里 的 二进制数是 : A,B,C 。。。 求 sum(ham(a,b),ham(b,c),ham(a,c),。。。) 要求 time : complexity faster than O(n^2)
| n***t 发帖数: 76 | 3 如果这个list里有 b1(101) b2(110) 都是两个1 一个0
那么按照你的算法就是
2*1 + 2*1 = 4 ?
但实际上 两个数的海明距离是3
能请解释一下吗?还是我理解错你的算法了? ( 海明距离的定义是两个字符串相同位
置不一样字符的个数)
【在 f*****e 的大作中提到】 : b1b2...bn : b1=1的有N1,b1=0的有M1 : ... : bn=1的有Nn,bn=0的有Mn : sum(M_i*N_i) : : 是
|
|