Wat zit er onder de gele balkjes verborgen?
Deze afbeelding bevat de kenmerkende gele tekst in het Franklin Gothic1 lettertype op een zwarte achtergrond met sterren uit de openingsscènes van de Star Wars2 films. Bovendien herkennen we aan de linkerkant de namen van enkele personages die aan het brein van George Lucas3 ontsproten zijn.
Deze tips verwijzen naar een getallenrij die vernoemd werd naar de Franse wiskundige Édouard Lucas4 (1842–1891). De eerste twee getallen in de rij van Lucas5 zijn $$L_0 = 2$$ en $$L_1 = 1$$. Elke volgende getal is de som van de twee vorige getallen. Dit levert de volgende rij op:
2, 1, 3, 4, 7, 11, 18, 29, 47, 76, …
Aan de rechterkant van de afbeelding staat de schuilplaats waar de personages van George Lucas zich verborgen houden in de rij van Lucas. Hiervoor zetten we de naam van een personage eerst om naar een cijferreeks door elke letter in de naam te vervangen door zijn positie in het alfabet (A=1, B=2, C=3, …, Z=26), elk cijfer in de naam te behouden en elk ander karakter weg te laten. Zo wordt C-3P06 omgezet naar 33160 (de aaneenschakeling van 3, 3, 16 en 0), LEIA7 naar 12591, YODA8 naar 251541, OBI-WAN9 naar 152923114 en LUKE10 naar 1221115.
Laat ons bijvoorbeeld de tweede regel uit de afbeelding nemen. Daarop staat de naam LEIA die correspondeert met de cijferreeks 12591. Het 933-ste Lucasgetal (aangeduid door #933 in de schuilplaats) is blijkbaar het eerste getal in de rij van Lucas waarin de cijferreeks 12591 voorkomt. Dit Lucasgetal bestaat uit 195 cijfers (het laatste getal uit de schuilplaats) en daarin lezen we de cijferreeks 12591 voor het eerst vanaf positie 147 tot en met positie 151. Hierbij worden de posities van de cijfers in een getal van links naar rechts genummerd vanaf 1. Voor de volledigheid zijn dit alle 195 cijfers van het 933-ste Lucasgetal, waarin we de relevante cijfers aangeduid hebben:
967093252596168128267955063716512751689792563513532460758118
114022409095515128982546665404137717788421676297839636268638
282452765724593338741821541259157620134576677978005827300767
530434048847196
De schuilplaats #933, 147-151 van 195 kan met andere woorden samengevat worden als: het getal voorafgegaan door het hekje (#, in dit geval #933) geeft een bepaald Lucasgetal aan (in dit geval het 933-ste) en de rest van de schuilplaats (in dit geval 147-151 van 195) beschrijft welke cijfers uit het Lucasgetal moeten gehaald worden om de cijferreeks te verkrijgen die correspondeert met de naam (in dit geval 12591=LEIA).
De schuilplaats aan de rechterkant van het eerste blokje levert dus de cijferreeks 2214518 op. Hoewel er meerdere namen zijn die met deze cijferreeks kunnen corresponderen, is er daarvan maar één ook een personage van George Lucas — namelijk VADER11 (22-1-4-5-18).
Om de laatste regel te ontcijferen is er wat meer puzzelwerk nodig. Maar we verklappen alvast dat daar de naam INDIANA12 verborgen zit, waarvan de corresponderende cijferreeks 914491141 terug te vinden is in het 123404-de Lucasgetal. Dit Lucasgetal bestaat uit 25790 cijfers en daarin vinden we de gezochte cijferreeks voor het eerst terug vanaf positie 8267 tot en met positie 8275. Zo bekomen we de schuilplaats #123404, 8267-8275 van 25790.
Schrijf een functie lucasgetal waaraan een getal $$n \in \mathbb{N}$$ (int) moet doorgegeven worden. De functie moet het $$n$$-de Lucasgetal $$L_n$$ (int) teruggeven.
Schrijf een functie fragment waaraan drie getallen $$n, a, b \in \mathbb{N}$$ (int) moeten doorgegeven worden. De functie moet het getal (int) teruggeven dat gevormd wordt door uit het $$n$$-de Lucasgetal $$L_n$$ de cijfers vanaf positie $$a$$ tot en met positie $$b$$ te halen. Hierbij worden de posities van de cijfers in Lucasgetal $$L_n$$ van links naar rechts genummerd vanaf 1.
Schrijf een functie cijferreeks waaraan een naam (str) moet doorgegeven worden. De functie moet de cijferreeks (str) teruggeven die correspondeert met de gegeven naam. Bij het bepalen van de cijferreeks mag geen onderscheid gemaakt worden tussen hoofdletters en kleine letters in de naam.
Schrijf een functie schuilplaats waaraan een naam (str) moet doorgegeven worden. De functie moet de schuilplaats (str) teruggeven die beschrijft waar de cijferreeks die correspondeert met de gegeven naam voor het eerst voorkomt in de rij van Lucas.
>>> lucasgetal(10)
123
>>> lucasgetal(20)
15127
>>> lucasgetal(30)
1860498
>>> fragment(426, 39, 43)
33160
>>> fragment(933, 147, 151)
12591
>>> fragment(10454, 2062, 2070)
152923114
>>> cijferreeks('C-3P0')
'33160'
>>> cijferreeks('Leia')
'12591'
>>> cijferreeks('Obi-Wan')
'152923114'
>>> schuilplaats('C-3P0')
'#426, 39-43 van 90'
>>> schuilplaats('Leia')
'#933, 147-151 van 195'
>>> schuilplaats('Obi-Wan')
'#10454, 2062-2070 van 2185'