Drum hamiltonian pe graful săriturii calului pe tabla de şah
backtracking compus cu un principiu euristic clasic (Warnsdorff)
numărul de linii ale tablei de şah:
indexul câmpului de start:
Funcţia de generare a listelor de adiacenţă:
Notă. Rezultatul încă depinde (dar nu ca timp) de funcţia de adiacenţă folosită (dacă posibilii succesori sunt "la fel de buni", ordinea lor în lista de adiacenţă rămâne cea iniţială). Se poate alege între trei funcţii:
1: simulează matricea de adiacenţă (ordinea adiacenţilor unui vârf este ordinea valorilor "1" de pe linia vârfului);
2: foloseşte un tablou al celor 8 salturi posibile, cu o ordine arbitrară a acestora;
>=3: ca la 2, dar salturile sunt ordonate în sens orar; este cea mai bună (soluţia se obţine într-un timp mult mai scurt decât în cazul folosirii funcţiei 1).
Notă. Pentru "număr de linii" mai mare decât 50 (depinzând şi de browser) - too much recursion.
Notă. Dacă "număr de linii" este impar şi câmpul de start are index impar - nu există soluţii (având un număr impar de câmpuri "pare" şi un număr par de câmpuri "impare", calul nu poate trece prin toate câmpurile dacă pleacă de pe un câmp "impar").
Notă. Uneori se obţine chiar ciclu hamiltonian; de exemplu, pentru tabla 6×6, câmp de start 21, funcţia de adiacenţă 1.