Een boek van kaft tot kaft doorlezen, beginnend bij de eerste bladzijde, omslaan, volgende bladzijde en zo verder tot de laatste bladzijde — dat is werkelijk niet meer van deze tijd. In plaats daarvan vatten we het paginanummer op als hyperlink: als we pagina 14 uit hebben, bladeren we 14 pagina's verder en lezen daar door.

In een boek met ouderwetse paginanummering zouden we dus van pagina 14 naar pagina 28 springen. Als een hyperlink de laatste pagina voorbijschiet, gaan we terug naar pagina 1 en tellen daar door. Dus als een boek 100 pagina's heeft, en we hebben pagina 74 uit, dan tellen we 26 pagina's door tot pagina 100, gaan bij pagina 1 verder en komen uit bij pagina 48 (want $$26 + 48 = 74$$). Let wel: zodra je op de laatste pagina komt (in dit geval pagina 100) is het uit met de pret, want die hyperlinkt per definitie naar zichzelf. Aangezien het zapleestraject van begin tot eind vastligt, is de enige vrijheidsgraad het aantal pagina's $$n$$. De vraag die zich dan stelt is of er waarden van $$n$$ zijn die een boek volledig zapleesbaar maken? Dat wil zeggen: geen enkele pagina blijft ongelezen.

Vervolgens stappen we af van de ouderwetse paginanummering. We mogen nu de paginanummers $$1, 2, \ldots, n$$ willekeurig over de $$n$$ pagina's verdelen. Het nummer dat op een pagina staat — bijvoorbeeld pagina 17 — is dan nog steeds een hyperlink. Je bladert dus na lezing 17 pagina's door. Maar dat zegt niets over het nummer van de pagina waarop je dan terechtkomt, want dat kan elk getal van 1 tot en met $$n$$ zijn. De vraag is dan voor welke waarden van $$n$$ en een gunstig gekozen volgorde van de paginanummers er boeken zijn die volledig zapleesbaar zijn? Alvast een voorschotje: voor een boek met 8 pagina's zijn er twee nummeringen mogelijk.

zapleesbaar
Dit boek is zapleesbaar: als je begint te zaplezen vanaf de eerste pagina, dan krijg je uiteindelijk alle acht de pagina's te lezen.
niet zapleesbaar
Dit boek is niet zapleesbaar: als je begint te zaplezen vanaf de eerste pagina, dan blijf je in cirkels draaien zonder dan je ooit de zesde pagina met paginanummer 8 te lezen krijgt.

Opgave

Er kan aangetoond worden dat bij een ouderwetse paginanummering enkel de boeken met 1 en 2 pagina's zapleesbaar zijn. Bij boeken waarbij de paginanummering een permutatie vormt van de nummers $$1, 2, \ldots, n$$ hebben alle zapleesbare boeken steeds een even aantal pagina's $$n$$ als $$n > 1$$.

Voor een even aantal pagina's $$n$$ kan men een boek zapleesbaar maken door de paginanummers $$n-1, n-3, n-5, \ldots, 1$$ toe te kennen aan de pagina's op posities $$1, 2, \ldots, \frac{n}{2}$$, en door de paginanummers $$n, n-2, n-4, \ldots, 2$$ toe te kennen aan de pagina's $$\frac{n}{2}+1, \frac{n}{2}+2, \ldots, n$$.

Als het aantal pagina's $$n$$ een macht van twee is — met andere woorden als $$n = 2^m$$ voor een $$m \in \mathbb{N}$$ — dan bestaat er een tweede constructiemethode om het boek zapleesbaar te maken. Bij deze methode krijgt pagina 1 het paginanummer 1, en krijgt elke volgende pagina die je leest in zapleesvolgorde steeds één paginanummer hoger dan deze van de pagina die daarvoor werd gelezen.

Gevraagd wordt:

Voorbeeld

>>> iszapleesbaar([7, 5, 3, 1, 8, 6, 4, 2])
True
>>> iszapleesbaar([1, 2, 4, 7, 3, 8, 6, 5])
False
>>> iszapleesbaar([1, 2, 5, 3, 8, 7, 4, 6])
True
>>> iszapleesbaar([1, 1, 1, 1, 1, 1, 1, 1])
False

>>>
zapboek(6) [5, 3, 1, 6, 4, 2] >>> zapboek(7) [] >>> zapboek(8) [1, 2, 5, 3, 8, 7, 4, 6]