4 `9 j( s+ ?6 o X+ k原來這亦是用來防止一般人一個容易犯上的錯誤,這就是誤將其中的兩個數字的位置對調。例如:將 “H856249(2)” 錯誤地變成 “H856294(2)”。 * v/ r( \' ?, x( p* D# [5 {; u- F5 v
我們再假設正確身份證號碼的核對值為 A,第 k 位的數字為 a,第 k + n 位的數字為 b(a ¹ b;n ³ 1),如果我們錯誤地將 a、b 兩個數字對調了,那麼該核對值便會變成 0 Y% ?! g S. q" j' G& P5 W6 H: u+ W( r% h) H' U& H2 i" e; Q
A - a ´ k - b ´ (k + n) + a ´ (k + n) + b ´ k = A + (a - b) ´ n % u, d' w# T _
& w& F7 V1 N! ?4 D+ ?同理,a、b 和 n 都祇會是 0 至 9 之間的數字,故此 (a - b) ´ n 這個部分,以至是整個核對值,都不能被 11 所整除,由此可以知道輸入的資料有錯了。留意如果沒有這個位值倍數,我們就無法偵測出這種錯誤了。) L- J4 k& i: D9 n+ l