汉明码逻辑地址(https://zhuanlan.zhihu.com/p/425393178)
实现方式一:用字符串代替二进制进行计算
1.首先根据2k ≥ n + k + 1确定需要几阶
2.在通过函数把传入的字符串转换为列表,在2的K次方位置插入0
3.最后在异或计算确认在2的K次方位置插入0或1
import math code = '0101101001' code_2 ="00001010101001" # 先根据2k ≥ n + k + 1确定需要几阶 def count_k(code:str): len_code = len(code) for k in range(len_code): if pow(2,k)-1 >= len_code + k: return k # 在通过函数把传入的字符串转换为列表,在2的K次方位置插入0 def gnerate_mk(codes:list): for code in codes: k = count_k(code) list_code = [] index = 0 count = 0 for s in range(1,k+len(code)+1): if int(math.log2(s)) == count: list_code.append('0') count +