zoukankan      html  css  js  c++  java
  • Total Hamming Distance

     1 class Solution(object):
     2     def totalHammingDistance(self, nums):
     3         """
     4         :type nums: List[int]
     5         :rtype: int
     6         """
     7         bin_num = ["{0:b}".format(num) for num in nums]
     8         zip_list = []
     9         for i in range(len(bin_num)):
    10             for k in zip(bin_num, bin_num[i:]):
    11                 zip_list.append(k)
    12         count = 0
    13         len_list = []
    14         for x in zip_list:
    15             for i in range(2):
    16                 len_list.append(len(x[i]))
    17         max_len = max(len_list)
    18         zip_c = []
    19         for c in zip_list:
    20             tuple_to_list = list(c)
    21             for i in range(2):
    22                 if len(tuple_to_list[i]) < max_len:
    23                     byte_num = max_len-len(c[i])
    24                     tuple_to_list[i] = '0' * byte_num + str(tuple_to_list[i])
    25             zip_c.append(tuple_to_list)
    26         for new_c in zip_c:
    27                 for j in range(max_len):
    28                     if new_c[0][j] != new_c[1][j]:
    29                         count = count+1
    30         return count

    更简便如下:

    def totalHammingDistance(self, nums):
        return sum(b.count('0') * b.count('1') for b in zip(*map('{:032b}'.format, nums)))

    $\overline r_a + \frac{\sum_{b\in N}\quad  sim(a, b)*(r_{b, P}\qquad  - \overline  r_{\qquad b})}{\sum_{b\in  N} \quad sim(a, b)}$

  • 相关阅读:
    按钮水波纹效果
    点击水波纹效果
    实现图片上传预览效果
    css 实现鼠标滑过流光效果
    插件地址参考
    移动前端经验
    移动端开发需要加的meta
    25款css动画库
    oracle 中的next_day函数
    Oracle replace函数
  • 原文地址:https://www.cnblogs.com/xz824/p/7792794.html
Copyright © 2011-2022 走看看