Protože jsem nedávno ušetřil asi milion Kč nezakoupením luxusního elektromobilu, rozhodl jsem se pořídit si na své nové neelektrické lidovější auto tzv. "poznávací značku na přání" (což není úplně laciné - stojí to 5000 Kč za jednu tabulku, tedy pro standardní auto 10000 Kč, a celý proces je složitější než registrace nového auta).
Při výběru vhodného textu na značku jsem zjistil, že to je docela zajímavý algoritmický problém, protože poznávací značka (kromě toho, že nesmí být sprostá, rasistická apod.) musí splňovat několik podmínek:
- Má osm znaků, přičemž mezi třetím a čtvrtým znakem je mezera.
- Musí obsahovat aspoň jednu číslici.
- Nesmí obsahovat písmena O, W, G a české písmeno CH. Ale může obsahovat česká písmena C a H, která těsně po sobě vypadají shodou okolností jako české písmeno CH. A nulu, která shodou okolností vypadá jako české písmeno O.
Kromě toho je dobré vědět, že použitý font je neproporcionální, což znamená, že např. skupina znaků "IAM" bude čitelná jako "I AM" (po I bude automatická mezera), a naopak písmeno "M" je hodně "nalepené" k ostatním. Jak přesně bude značka vypadat, to si můžete předem ověřit například zde.
To všechno mě dovedlo k tomu, že jsem si stáhl české a anglické wordlisty a napsal jsem si jednoduchý skript, který mi automaticky vygeneroval tisíce potenciálně zajímavých znakových kombinací.