Tester čísla bankovního účtu

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:ABCDEFGHIJ
Váhy:63791058421

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.