#求漢明最小距離
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或...