Každé číslo českého bankovního účtu musí odpovídat struktuře stanovené Českou národní bankou (ČNB). Tato struktura má v sobě zabudovaný korekční mechanismus, který chrání klienta před chybou překlepem a posláním peněz nesprávnému adresátovi. Korekční mechanismus funguje na základě přidělení předem daných vah jednotlivým číslicím v čísle účtu, spočítáním jejich součtu a jeho následné kontrole na modulo 11.
Algoritmus kontroly čísla ABCDEFGHIJ:
Číslice: | A | B | C | D | E | F | G | H | I | J |
Váhy: | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 |
Váhy jsou získány jako rozdíl `n`-té mocniny 2 a nejbližšího nižšího násobku 11. Váhy se k číslicím na jednotlivých pozicích čísla účtu přiřazují zprava.
`S = A \cdot 6 + B \cdot 3 + C \cdot 7 + D \cdot 9\ \ldots\ J \cdot 1`
Číslo účtu je validní, pokud je součet `S` dělitelný 11 beze zbytku.
Poznámka: V PHP je pro operaci celočíselného dělení funkce floor()
, kde argumentem je výraz. Např. floor(7/4)
vrátí 1
.