Python 求漢明碼的最小距離

2021-09-12 07:50:16 字數 717 閱讀 9318

#求漢明最小距離

def hm_code_length(hm_code):

'''array()列表--陣列

mat() 列表--矩陣

tolist() 矩陣--列表

'''# 列表a用來裝漢明碼距離

a =

for i in range(len(hm_code)):

matv = np.mat(hm_code)

# nonzero()將布林陣列轉換成一組整數陣列,然後使用整數陣列進行下標運算。

for j in range(i+1,len(hm_code)):

if i < len(hm_code)-1:

smstr = np.nonzero(matv[i] - matv[i+1])

print a

return min(a)

if __name__ == '__main__':

random_sources()

# (7,4)漢明碼

hanming_code = [[1, 0, 0, 0, 0, 1, 1], [0, 1, 0, 0, 1, 0, 1], [0, 0, 1, 0, 1, 1, 0], [0, 0, 0, 1, 1, 1, 1]]

# print hanming_code

print hm_code_length(hanming_code)

海明碼(漢明碼)的工作機制

一 海明碼的形成方式 1 首先海明碼是由資訊位和校驗位組成的 2 資訊位校驗位的關係 校驗位的位數r 資訊位的位數i 2 r 1 i r 3 校驗位的位置是2的整數次方 如 1 2 4 8 4 海明碼位數分組 因為海明碼其實是分組的奇偶校驗碼,所以有個分組的概念 1 1 3 5 7 2 2 3 6 ...

漢明碼或者海明碼的計算或者糾錯

設k為有效資訊的位數,r為校驗位的位數,則整個碼字的位數n應滿足不等式 n k r 2r 1 是2的r次方 若要求海明碼能檢測出2位錯誤,則再增加1位校驗位。例如 二進位制編碼位10101100,共8位所以k 8,可以得出校驗位r的位數為4位。位號 1 n 是那些權值為2的那些位,即2 0 2 1 ...

漢明碼的原理 生成和檢驗

在計算機執行過程中,由於種種原因導致資料在儲存過程中可能出現差錯,為了能夠及時發現錯誤並且將錯誤糾正,通常可以將原資料配成漢明編碼。漢明碼具有一位糾錯能力。設將要進行檢測的二進位制 為n位,為使其具有糾錯能力,需要再加上k位的檢測位,組成n k位的 那麼,新增加的檢測位數k應滿足 2k n k 1或...