?

為什么身份證號尾號會出現"X"

2024-04-16 05:52郭園園
風流一代·經典文摘 2024年4期
關鍵詞:校驗碼身份證號條形碼

郭園園

目前我國居民身份證號碼總共是18位,前17位都有具體含義:前6位是首次辦身份證時所在的省、市、區的代碼,中間8位是持證人的出生年、月、日,后面3位是申請戶籍時派出所的分配碼。唯獨最后一位數字,是對前面的數字進行簡單的數學運算后得出的,它是一個校驗碼。有的人會問:“為什么我身份證號的最后一位是字母X?”其實,這并不是字母X,而是羅馬數字Ⅹ。為什么不寫成10呢?因為如果寫成10,身份證號就變成19位了。在編碼學中,不一樣的數位不太容易存儲和使用。那為什么最后一位的校驗碼會算出10呢?其實,這種算法已經有上千年的歷史了。

來自絲綢之路的數學

首先,我們來看一種古老的算法:棄九法。

15世紀初,撒馬爾罕城的統治者兀魯伯格很愛鉆研科學。他編訂了《兀魯伯格歷》。這么喜歡科學的一個人,當然也很喜歡從帝國境內網羅各種數學、天文學人才。

阿爾·卡西是兀魯伯格手下的首席科學家,也是兀魯伯格天文臺的第一任臺長。當時的首席科學家不僅要幫助皇帝解決最困難的數學、天文學問題,還要給帝國境內的工匠、官員,還有兒童、青少年編訂數學書。他編的這本書的名字叫《算術之鑰》,就是算術的鑰匙的意思。這本書囊括了跟今天小學和初中數學類似的內容:算術、代數、幾何,書的第一卷講的是整數的運算,比如加法、減法、乘法、除法,其中有一個算法很有意思,叫棄九法。

要了解棄九法,首先要弄清楚什么叫棄九數。比如,數字3217,把它每一位上的數字連續相加,3加2加1加7等于13;繼續把13的每一位上的數字相加,1加3等于4。直到得到個位數字4為止,這個4就是3217的棄九數。其實這個棄九數就是3217除以9之后的余數,只不過這種連續相加的方法是一種快速算法。

棄九數有什么用?它最主要的作用是檢驗運算是否準確。比如,現在要檢查3169乘以732等于2319708是否正確。如果沒有別的方法的話,只能把它重新算一遍。但是用棄九法,首先把3169的棄九數求出來——1,再算出732的棄九數——3,接著算出2319708的棄九數——3,最后我們核驗一下1乘以3等于3,結果是正確的。這就是古人的驗算方法,其中充滿了智慧。大部分的數學知識,對普通人來講就是為了應用。

阿爾·卡西作為首席科學家輔佐兀魯伯格制定天文歷法的時候,需要進行大量運算。為了達到高精度的運算,阿爾·卡西也需要檢驗。作為一流的數學家,他在思考高維問題的時候比普通人具有優勢,但如果只是比純粹的加減乘除運算,數學家與普通人之間其實并無差別。

從棄九到同余

隨著歐洲文藝復興運動的開展,阿拉伯的許多算法傳到了歐洲。而從明朝開始,西方的數理科學知識大量傳入我國,形成西學東漸。

在棄九法發展的過程中,數學家們又逐漸認識到棄七法、棄十一法、棄十三法等。這些方法都屬于今天初等數論中的同余理論。同余理論在我們日常生活中比較常見的應用是什么?答案是計算校驗碼。

和我們生活最息息相關的校驗碼就是身份證號尾號。平日里,我們經常需要在手機或者電腦上輸入身份證號,輸入這么長的數字很容易輸錯,有了第18位校驗碼,就能及時發現錯誤。只要一個小小的校驗碼,就可以保證整個系統的正常運轉。

那它是怎么算的?主要分3步:首先身份證號碼總共18位,把前17位號碼依次乘以指定的系數,第一位乘以7,第二位乘以9,第三位乘以10……這在數學上叫作加權因子;然后,把這17個乘積相加;最后,用所得和數除以11,看余數是多少。

某一個很大的數除以11,它的余數有多少種可能?如果整除的話,余數看成0;如果沒有整除,余數可能出現1、2、3、4、5、6、7、8、9,還有可能出現10,但是不可能出現11。按規定,不同的余數對應著不同的校驗碼。比如余數是0的時候,它對應的校驗碼就是1;余數是1的時候,它對應的校驗碼就是0;余數是2的時候,它對應的校驗碼是Ⅹ……這就是身份證號的最后一位可能是0、1、2、3、4、5、6、7、8、9、Ⅹ的原因。

校驗碼無處不在

在日常生活中,校驗碼是非常常見的。

平常去商店或者超市購物,你會看見條形碼。條形碼的最后一位也是校驗碼。識別的時候,只用拿掃描槍掃一下,機器就能根據條形碼的粗細來識別不同的數字。

條形碼蘊含的信息太少了,畢竟只有幾個數字。所以除了條形碼,我們還有二維碼,二維碼蘊含的信息更多。二維碼中的黑白小格,實際上就是數字0和1。它不僅含有校驗碼,還有其他信息,比如識別碼。

平常在掃二維碼的時候,如果拿手蓋住一塊,是不是還可以掃出來;或者二維碼有一些地方破損了,但是依然可以掃出來。這就是識別碼在起作用,它是更復雜的數學工具。在工業生產比如汽車裝配,或者更復雜的FAST天文望遠鏡的裝配過程中,成千上萬個零件就需要二維碼的幫助,以完成組裝。

美國數學家莫里斯·克萊因在《西方文化中的數學》中說過這樣一句話:“數學知識如果脫離了它豐富的文化基礎,就會被簡化成一些毫無意義、充滿技巧性的程序,數學的形象這時候就被扭曲了?!?/p>

任何一個數學公式、數學算法、數學定理背后都有它產生的源泉。比如身份證號中的算法,至少有一千年的歷史,它背后有著數學思想演化的脈絡。

(摘自《破繭成蝶·傳奇故事》2023年第10期)

猜你喜歡
校驗碼身份證號條形碼
創意條形碼
老師情
作品賞析(3)
從條形碼到二維碼
從條形碼到二維碼
條形碼大變身
基于Excel實現書號校驗碼的驗證
基于FPGA的循環冗余校驗碼設計
身份證號碼中的數學
《網印工業》關于作者投稿同時提供身份證號的通知
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合