Lanfordov niz je niz od 27 elemenata u kome se nalaze tacno po tri od svake cifre iz intervala [1,9]. Cifre su rasporedjene tako da se izmedju scake dve uzastopne cifre I (1<=I<=9) nalazi tacno I drugih cifara.
Napisati program koji generise sve moguce Lanfordove nizove.
E sad, meni je jedino rekurzivno resenje palo na pamet, i to complete search (brute-force, nazovite kako hocete) metoda. Znaci, na svako prazno mesto J u nizu postavicu broj K (k=1...9), pri cemu cu na J+K-to mjesto postaviti takodje broj K i rekurzivno pozvati dalje postavljanje. A napisacu funkciju koja ce mi provjeravati da li je niz pravilno popunjen, cime cu brojati resenja (i ispisivati ih).
Slozenost algoritma je vrlo velika, pa ce (pretpostavljam) i vreme izvrsavanja biti neprihvatljivo.
Pada li nekome na pamet neki efikasniji algoritam?
Posle pada Jakubinaca na vlast dolazi Petar Pan! :)