Kontrolcifero

Kontrolcifero estas formo de redundokontrolo uzata por erardetektado por identigiloj, kiel bankkontonumeroj. Ili estas uzataj en aplikaĵo kie tiaj identigiloj estas almenaŭ kelkfoje enigataj mane. Ĝi estas analoga al la duuma parecbito uzata por kontroli por eraroj en komputile generitaj datumoj. Ĝi konsistas el unu aŭ pluraj ciferoj komputitaj fare de algoritmo per aliaj ciferoj (aŭ literoj) en la enigo.

Per kontrolcifero oni povas detekti simplajn erarojn en la enigo de serio de signoj (kutime ciferoj) kiel unuopa mistajpita cifero aŭ iuj permutaĵoj de du sinsekvaj ciferoj.

 Dizajno 
Kontrolciferaj algoritmoj estas ĝenerale dizajnitaj por kapti homajn transskribajn erarojn. Ordigite laŭ malsimpleco, ili inkluzivas la jenajn:
 unuopaj eraraj ciferoj, kiel 1 → 2
 translokaj eraroj, kiel 12 → 21
 ĝemelaj eraroj, kiel 11 → 22
 saltaj translokaj eraroj, kiel 132 → 231
 saltaj ĝemelaj eraroj, kiel 131 → 232
 fonetikaj eraroj, kiel 60 → 16 ("sesdek" al "dek ses")

Elektante sistemon, oni devas elekti inter alta probableco kapti erarojn kaj realiga malfacileco; simplaj kontrolciferaj sistemoj estas facile komprenataj kaj realigataj de homoj, sed ili ne kaptas tiom da eraroj kiel malsimplaj sistemoj, kiuj postulas malsimplajn programojn por realiĝi.

 Ekzemploj 
 UEA-kodo 
La lasta litero de UEA-kodo estas kontrolcifero kalkulata jene:

 Prenu la unuajn 4 literojn kaj notu la ciferan valoron (a = 1, b = 2, ..., y = 25, z = 26).
 Multipliku la 1-an ciferan valoron per 2, la 2-an per 3, la 3-an per 4 kaj la 4-an per 5.
 Adiciu la 4 rezultojn.
 Dividu la rezulto per 26 kaj prenu la reston.
 Subtrahu la rezulton de 26.
 Retraduku la rezulton al litero.

Ekzemple ekzistas la UEA-kodo "vdvr-z". La lasta litero estas la kontrolcifero kaj se ĉiuj aliaj literoj ĝustas, la kalkulo devas doni la rezulton "z".
 Adiciu: 22 + 4 + 22 + 18 = 66.
 Multipliku: (22 × 2) + (4 × 3) + (22 × 4) + (18 × 5) = 234.
 Kalkulu la reston: 234 % 26 = 0.
 Subtrahu: 26 - 0 = 26.
 Retraduku: 26 = z.

Alia ekzemplo per la UEA-kodo "nejk-r".
 Adiciu: 14 + 5 + 10 + 11 = 40.
 Multipliku: (14 × 2) + (5 × 3) + (10 × 4) + (11 × 5) = 138.
 Kalkulu la reston: 138 % 26 = 8.
 Subtrahu: 26 - 8 = 18.
 Retraduku: 18 = r.

 Referencoj 

Kategorio:Algoritmoj
Kategorio:Eraro
Kategorio:Teorio de kodigo