Proč se má ten kontrolní součet v případě přidání nuly násobit 2?
Mno, sice jsou životní situace, ve kterých dává formální matematické vzdělání instantní výhodu, vcelku vzácné, ale o to nečekanější. Ten dvojnásobek, jak by pozorný čtenář usoudil z „mod 11“, pochopitelně platí při počítání na okruhu Z
11 nebo chcete-li, konečném tělese GF(11). Je to vidět i na vašem příkladu, 90 mod 11 = 2, po posunu 81 mod 11 = 4, tedy opravdu dvojnásobek (2 × 2). Pokud nejste s
modulární aritmetikou kamarád, pokusím se to vysvětlit na klasické aritmetice.
Ty váhy nejsou zvoleny náhodně, je to vždy zbytek po dělení 11 čísla 2
N, kde N je pořadí cifry zprava, počítáno od nuly. Proto to začíná geometrickou posloupností 1, 2, 4, 8, další váha je 5, protože to je 2
4 = 16 = 11 +
5, dále 2
5 = 32 = 2 × 11 +
10, následuje 2
6 = 64 = 5 × 11 +
9 atd.
Teď si dokážeme pomocné
lemma: Mějme váhy v
0, v
1, v
2 ... v
k a číslo složené z cifer c
0, c
1, c
2 ... c
k, dále podmínku validity která říká, že číslo je validní právě tehdy, když kontrolní součet S = c
0 v
0 + c
1 v
1 + c
2 v
2 + ... + c
k v
k je beze zbytku dělitelný 11. Pak platí, že podmínka validity zůstane nezměněna (validuje ta samá čísla), pokud libovolnou váhu změníme o celočíselný násobek 11.
Důkaz lemmatu je snadný. Pokud váhu i-té cifry změníme o 11 z (z je celé), znamená to, že v součtu S je na i-té pozici původně součin c
i v
i, po změně je tam c
i (v
i + 11 z) = c
i v
i + 11 × z × c
i. Protože ostatní členy kontrolního součtu zůstávají beze změny, platí, že nový součet S’ = S + 11 × z × c
i. Tedy původní a nový součet se liší o celočíselný násobek 11. Tedy zjevně S’ je dělitelné 11 právě tehdy, když S je dělitelné jedenácti Q.E.D.
Postupnou aplikací právě dokázaného lemmatu můžeme podmínku validity upravit tak, že od „modulo“ vah 1,2,4,8,5,10,9,7,3,6 přejdeme postupně k plnotučným vahám 2
N, tedy 1,2,4,8,16,32,64,128,256,512. Díky lemmatu víme, že je jedno, zda budeme validitu ověřovat s původními či novými vahami. Pro nové váhy pak už výše uvedené tvrzení platí v normální aritmetice, tedy posunutí cifer o 1 doleva přidáním nuly na konec znamená zdvojnásobení kontrolního součtu.
Každopádně ať už počítáme v Z
11 či klasické aritmetice, je zjevné, že ten posun doleva přidáním nuly validitu nerozbije. Pokud původní kontrolní součet byl dělitelný 11, bude to platit i o dvojnásobku, a naopak, pokud nebyl, nebude dělitelný ani dvojnásobek.
Mimochodem překlep jedné číslice vždy vygeneruje chybné číslo účtu - musí být doprovázen překlepem nejméně 1 další číslice, případně 2, kvůli děliteli 11.
Kdybyste pozorněji četl a méně se hádal, tak byste zjistil, že přesně toto konstatuji už v příspěvku
2017-10-02, 10:00:59 (začátek druhého odstavce). Na rozdíl od schématu používaného např. pro rodná čísla (všechny váhy rovny 1) to pro čísla účtů odhalí i prohození libovolných 2 cifer. Ale jak jsem již napsal, tím to končí, předmětná kontrola nemusí poznat např. přidání či vypuštění jedné cifry, změnu 2 cifer atp., tam to vždy bude loterie s pravděpodobností výhry 1 : 10, že původně validní číslo bude validní i po takové úpravě.