960 likes | 1.23k Views
011101001001111. 0 1 2 3 4 5 6 7 8 9 0. 5. 從檢查碼到修正碼. 財團法人台北市九章數學教育基金會 孫文先. 國際標準書碼 ( ISBN ). 國際標準書碼 ( ISBN ). International Standard Book Number, 簡稱 ISBN 為因應圖書出版、行銷、管理的需要,便於國際間出版品的交流與統計,所發展國際統一的圖書編號制度。每一個 ISBN 書碼唯一決定了一本書。. 國際標準書碼 ( ISBN ).
E N D
011101001001111 0 1 2 3 4 5 6 7 8 9 0 5 從檢查碼到修正碼 財團法人台北市九章數學教育基金會 孫文先
國際標準書碼(ISBN) International Standard Book Number, 簡稱ISBN 為因應圖書出版、行銷、管理的需要,便於國際間出版品的交流與統計,所發展國際統一的圖書編號制度。每一個ISBN書碼唯一決定了一本書。
國際標準書碼(ISBN) • 目前現行的編碼規則是由10個數字所組成,這10個數字被分成4個部份,前面9個數字以連字號區分成3個部份,依序分別用來表示區域語言、出版社及書名資料。 ISBNd1d2 d3- d4d5d6- d7d8d9-d10. 其中,d10是該本書的檢核號碼。
國際標準書碼(ISBN) 檢查碼 • 九章出版社的ISBN型式 • 「艾克博士謎題奇遇記」一書的ISBN碼如下: ISBN957─603─264─4 區域語言 出版社 書名資料
國際標準書碼(ISBN) • 檢查碼是由前九碼所決定的: 9 5 7 6 0 3 2 6 4 × × × × × × × × × 10 9 8 7 6 5 4 3 2 90 45 56 42 0 15 8 18 8 90+45+56+42+0+15+8+18+8=282≡7(mod11) 檢查碼=11-7=4 (當餘數為0時規定為0,餘數為1時規定為X)
國際標準書碼(ISBN) • 也就是說加入檢查碼後: 9 5 7 6 0 3 2 6 4 × × × × × × × × × 10 9 8 7 6 5 4 3 2 90 45 56 42 0 15 8 18 8 90+45+56+42+0+15+8+18+8+4=286≡0(mod11) 檢查碼=4
國際標準書碼(ISBN) • 為什麼檢查碼也可以這樣算? 9 5 7 6 0 3 2 6 4 × × × × × × × × × 1 2 3 4 5 6 7 8 9 9 10 21 24 0 18 14 48 36 9+10+21+24+0+18+14+48+36=180≡4(mod11) 檢查碼×10 +4≡0(mod11),檢查碼=4
國際標準書碼(ISBN) • ISBN編碼方式是一九六○年英國經濟研究院的福斯特(F. M. Foster)教授所設計發明的。 • 實施三十年的十位數字ISBN編碼,在全世界都已捉襟見肘難以分配了。ISBN總部最近決定將在2007年1月開始,將ISBN擴增三位數,亦即在前面另加978,成為十三位數的號碼
國際標準書碼(ISBN) • 新的編碼規則是由13個數字所組成,這13個數字被分成5個部份,前3個數字一律為978或979,接著9個數字仍區分成3個部份,依序分別用來表示區域語言、出版社及書名資料。最後一個數字為檢查碼。
國際標準書碼(ISBN) 檢查碼 ISBN978─957─603─264─6 「艾克博士謎題奇遇記」一書新的ISBN碼如下: 978或979 區域語言 出版社 書名資料
國際標準書碼(ISBN) • 檢查碼是由前十二碼所決定的: 9 7 8 9 5 7 6 0 3 2 6 4 × × × × × × × × × × × × 1 3 1 3 1 3 1 3 1 3 1 3 9 21 8 27 5 21 6 0 3 6 6 12 9+21+8+27+5+21+6+3+6+6+12=124≡4(mod10) 檢查碼=10-4=6
國際標準書碼(ISBN) • 2005至2006年,10碼與13碼並行 • 2007年1月起,全面加長至13碼 EAN編碼 現行10碼ISBN
UPC條碼 • “統一商品條碼”(UniversalProductCode簡稱UPC)由IBM公司職員George J. Laurer發明,最早是由美國超級市場公會所推廣,為了在百貨公司或超級市場應用科技以節省大量人力物力資源,並簡少結帳之錯誤,於1973年正式啟用,並取名為UPC條碼,它有12位數字,為EAN條碼的前身,過去在美國、加拿大地區相當普及。
UPC及EAN編碼原則 A Type, C Type 互為黑白對換, B Type, C Type 互為鏡像。
UPC-A條碼的基本架構 左邊線:固定為101. 旗碼:佔2個字元,第一個字元固定為0,通常不列印出來,第二個字元代表商品種類。 廠商代碼:佔5個字元,須提出申請。 中線:固定為01010. 商品代碼:佔5個字元,由廠商自行訂定。 檢查碼:佔1個字元。 右邊線:固定為101,與左邊線相同。
x 1 7 8 9 5 7 6 0 3 1 3 9 6 x 3 UPC-A檢查碼的計算方式 (7 + 9 + 7 + 0 + 1 + 9) x 3 + (8 + 5 + 6 + 3 + 3) = 99 + 25 = 124 = 4 (mod 10) 檢查碼= 10-4 = 6.
EAN條碼 • “歐洲商品條碼”(EuropeanArticleNumber簡稱EAN)是在商品條碼的基礎上發展而成的全球統一標識系統,由歐洲12個工業國家共同推廣。現已為全球統一和通用的商業語言。 • 美國與加拿大於2003年加入EAN組織,在UPC碼最前面加上一個數字0,2005年正式改用EAN條碼。
EAN條碼 • EAN代碼個別意義為 • 國別碼(國碼標記): 為條碼前2~3位數。 • 廠商識別碼: 4~5個位元數。 • 商品專案代碼: 固定五位數。 • 檢驗碼: 條碼最後一位之運算碼。 • EAN條碼皆為數字碼且無自我檢查碼,其所平均比例的字元密度約每公分5.42個字或每公分約2.11個字,其內容的符號長度是固定的,且一定要有檢驗碼以做判別用。 • 國別碼部分若為978或979即為書籍(由ISBN碼而來)
EAN檢查碼的計算方式 • 與新制ISBN碼相同:
身份證字號 • 中華民國的國民身份證字號共有10位,第一位為英文字母,第二個數字是男女生之分,男生為1,女生為2,最後一位數字為檢查碼。
身份證檢查碼的計算方法 4 A 1 0 4 3 4 5 5 7 x x x x x x x x 8 7 6 5 4 3 2 1 10 x x 1 9 = 1 + 0 + 8 +0 + 24 + 15 + 16 + 15 + 10 + 7 = 96 = 6 (mod 10) 檢查碼= 10-6 = 4.
從檢查碼到修正碼 • 由上面可知,檢查碼只可核驗數碼是否有誤,無改正之功能。除非知道那一個碼發生誤漏。 • 例如: 97895763□1397. □ = ?
挑戰問題 TEA TIME~
挑戰問題一 我心裡想著一個介於1到2009的數,你每問一個問題我都立即誠實回答,你能在問11個“是與否”的問題內將我想的數猜出嗎? 答案
挑戰問題二 這一次我一樣想著一個介於1到2009的數,但等你問完11個“是與否”的問題後,我再誠實回答每一個問題,你能猜出我想的數嗎? 答案
挑戰問題三 現在我還是想著一個介於1到2009的數,讓你問完33個“是與否”的問題後,我才回答,不過其中任有一個答案我可能會說謊(也可能都不說謊),這樣你能猜出我想的數嗎? 答案
挑戰問題四 這次我仍然想著一個介於1到2009的數,你每問一個“是與否”的問題後我會馬上回答問題,最多讓你問23次,但其中任有一個答案我可能會說謊(也可能都不說謊),你能猜出我想的數嗎? 答案
修正碼 • 有一台老舊的發信機,它一次可以傳出15個0或1的訊號,但因為這台機器實在太老舊了,所以每次或多或少會發生發生錯一碼的事情,雖然很肯定不會同時錯二碼,但到底是那一位置發生錯碼,每次卻不盡相同,而且無法事先知道,請問應如何傳送信號,收信端才能正確的判別出是那一個位置出錯,而加以修正?
修正碼1 Alt碼 & Adrian Keet碼 & Robenstein碼
Alt 碼 (1948/1949) • Alt 碼的前5個數字為表達之訊息,後10個數字則為此訊息複述二次所產生的。
Alt 碼 (1948/1949) • 訊息為00110,則發出 00110 00110 00110 • 若收到00010 00110 00110: 00010 00110 可判斷出正確為00110 00110 • 三賽兩勝制,效率 5/15
Adrian Keet 碼 (2002) • 前6個碼為表達之訊息,之後複述一次,最後三碼分別為{1,2}{3,4}{5,6}位置上的奇偶碼。 奇偶碼: 若集合中1的個數為奇數,該集合的奇偶碼為1; 若集合中1的個數為偶數,該集合的奇偶碼為0。
Adrian Keet 碼 (2002) • 訊息為 011011,則發出 011011 011011 1 1 0 • 如果收到訊息為 010011011011110: 和為1,奇數 010011 和為1,奇數 011011 可知第3與第4碼和為奇數, 故可判斷正確訊息為011011 1 1 0 和為2,偶數 • 重抄及運用「奇偶碼」,效率 6/15
Robenstein 碼 (1984) • Robenstein 碼的前7個碼為表達之訊息,之後複述一次,傳送的訊息,1的個數若為奇數,則最後一碼取1;否則,取0。
Robenstein 碼 (1984) • 訊息0011001,則發出 0011001 0011001 1 • 若收到 0011011 0011001 1: 0011011 0011001 可知有奇數個1, 故可判斷正確訊息為0011001 1 • 運用「奇偶碼」的想法,效率 7/15
修正碼2 于非嶠碼 & 九宮碼 & 五星碼
于非嶠碼(2002) • 將8碼訊息依序填入如下表的3 x 5矩形表格中,第9碼為1和5的奇偶碼,10為2和6的奇偶碼,11為3和7的奇偶碼,12為4和8的奇偶碼,13為1到4的奇偶碼,14為5到8的奇偶碼,15為1到8的奇偶碼。 • 依照1到15的順序發出訊息
于非嶠碼(2002) • 訊息為01101011,則發出: 01101011 1101011
于非嶠碼(2002) • 若收到訊息為01101001,還原到3×5的表格: 由此碼可知是前8碼出錯 可判斷出正確為01101011 WHY? 後7碼有3碼與前8碼不合! 第15碼必正確! • 效率為 8/15
晅 劉翰 九宮碼 (1997) • 將9碼訊息依序填入如下表的前9碼九宮格中, 第10碼為1,4,7的奇偶碼,11為2,5,8的奇偶碼, 12為3,6,9的奇偶碼,13為1,2,3的奇偶碼, 14為4,5,6的奇偶碼,15為7,8,9的奇偶碼。 • 按1到15的順序發出訊息
晅 劉翰 九宮碼 (1997) • 訊息為011101001,則發出 011101001 111001
晅 劉翰 九宮碼 (1997) • 收到011001001111001,依序填回表格: 可判斷出正確為011101001 • 效率為 9/15
晅 Q A M B H G J N F C E K D P L 劉翰 五星碼 (1997) • 將10碼訊息依字母先後順序序填入如右圖的A~J五星格中, L為A,B,C,D的奇偶碼, M為D,E,F,G的奇偶碼, N為G,H,B,J的奇偶碼, P為J,C,E,K的奇偶碼, Q為K,F,H,A的奇偶碼。 • 按A到Q的字母先後順序發出15碼的訊息
晅 Q 0 A 0 0 M 0 B H 1 G 1 J 0 0 N 0 F 1 C E 0 K 1 1 D 0 P L 0 劉翰 五星碼 (1997) • 訊息為0011001101,則發出 0011001101 00000
晅 Q 0 A 0 0 M 0 B H 1 G 1 J 0 N 0 0 F 1 C 0 E 1 K 0 D 0 P L 0 劉翰 五星碼 (1997) • 收到訊息為 001000110100000 依序填回右圖 可知此碼傳送錯誤,正確訊息應為 0011001101 • 運用「栽樹問題」,效率 10/15
2 6 5 1 4 3 7 (7, 4) Hamming 碼 • 將4個訊息填入1,2,3,4位置,而5,6,7的碼值取決於每個圓內的奇偶碼 • 按1到7的順序發出7碼的訊息 • 效率 4/7
2 0 6 0 5 0 1 1 1 4 3 1 1 7 0 0 0 1 0 1 1 (7, 4) Hamming 碼 • 如右圖,若訊息為1011,則發出 1011 001 • 如收到訊息為1010001,填回右圖: 兩個碼不符合,取兩個圓的交集 可判斷出正確碼為1011