每一位由兩個高低位來表示,標準曼切斯特編碼中由高到低表示1,低到高表示0 即標準曼切斯特編碼中的10表示1,01表示0
例如1011001的圖可以這麼畫
編碼的程式可以這麼寫:
def
manchester0
(str):
flag=
''for i in
range(0
,len
(str),
2): flag+=
str[i]
return flag
#輸入的字串是二進位制資料串。
還有一種類似的曼切斯特編碼叫802.3曼切斯特編碼,其實就是相反的01為1,10為0
def
manchester1
(str):
flag=
''for i in
range(0
,len
(str),
2): flag+=
str[i+1]
return flag
#輸入的字串是二進位制資料串。
差分曼切斯特和曼切斯特不同的是,它的編碼的資料體現在前後波形的變化當中,前後兩個波形的連線處的高低位發生變化那麼就是0,如果未發生變化則是1.例如1011001可以用如下的波形圖表示。
程式如下:
def
manchester2
(s):
flag=
''for i in
range(1
,len
(s)-1,
2): x =
eval
(s[i])^
eval
(s[i +1]
)^1 flag +=
str(x)
return flag
#輸入的字串是二進位制資料串。
哈夫曼編碼問題(切金條)
一塊金條切成兩半,是需要花費和長度數值一樣的銅板的。比如長度位20的金條,不管切成長度多大的兩半,都要花費20個銅板。一群人想分整塊金條,怎麼分最省銅板?例如,給定陣列,代表一共三個人,整塊金條長度位10 20 30 60。金條要分成10,20,30三個部分。如果,先把長度60的金條分成10和50,...
哈夫曼樹和哈夫曼編碼
1.帶權最短路徑wpl 2.哈夫曼樹是wpl最小的樹,但樹不一定唯一。左右子樹交換,大於二的同權重的樹的任意組合都會影響其唯一性。3.n個葉子節點的總節點數為2n 1。4.哈夫曼樹的建立,每次將兩個權重最小的樹組合乙個大樹 小樹消失,大樹插入。這裡的存在與否依據parent標記 直到還有一棵樹為止。...
哈夫曼樹和哈夫曼編碼
原文參照 1.基本概念 節點之間的路徑長度 在樹中從乙個結點到另乙個結點所經歷的分支,構成了這兩個結點間的路徑上的經過的分支數稱為它的路徑長度 樹的路徑長度 從樹的 根節點到樹中每一結點的 路徑長度之和。在結點數目相同的二叉樹中,完全二叉樹的路徑長度最短。結點的權 在一些應用中,賦予樹中結點的乙個有...