De tegelvloer in de lobby is bedoeld als een levende kunsttentoonstelling. Elke dag worden de tegels omgedraaid volgens deze regels:

Met tegels direct ernaast bedoelen we hierbij de zes tegels die rechtstreeks aan de tegel in kwestie grenzen.

Deze regels worden gelijktijdig op elke tegel toegepast. Anders gezegd, er wordt eerst bepaald welke tegels er moeten omgedraaid worden, en daarna worden ze allemaal tegelijk omgedraaid.

Voor het vorige voorbeeld zijn dit het aantal tegels die met hun zwarte kant naar boven liggen nadat een aantal dagen zijn verstreken:

Dag 1: 15
Dag 2: 12
Dag 3: 25
Dag 4: 14
Dag 5: 23
Dag 6: 28
Dag 7: 41
Dag 8: 37
Dag 9: 49
Dag 10: 37

Dag 20: 132
Dag 30: 259
Dag 40: 406
Dag 50: 566
Dag 60: 788
Dag 70: 1106
Dag 80: 1373
Dag 90: 1844
Dag 100: 2208

Nadat deze procedure in totaal 100 keer uitgevoerd is, zouden er dus 2208 tegels met hun zwarte kant naar boven liggen.

Opgave

Hoeveel zwarte tegels zijn er na \(n\) dagen? Hiervoor ga je als volgt te werk:

Voorbeeld

In deze interactieve sessie gaan we ervan uit dat het tekstbestand tiles.txt1 zich in de huidige directory bevindt.

> blackTiles("tiles.txt", 0)
10
> blackTiles("tiles.txt", 1)
15
> blackTiles("tiles.txt", 2)
12
> blackTiles("tiles.txt", 3)
25
> blackTiles("tiles.txt", 4)
14
> blackTiles("tiles.txt", 5)
23
> blackTiles("tiles.txt", 6)
28
> blackTiles("tiles.txt", 7)
41
> blackTiles("tiles.txt", 8)
37
> blackTiles("tiles.txt", 9)
49
> blackTiles("tiles.txt", 10)
37
> blackTiles("tiles.txt", 20)
132
> blackTiles("tiles.txt", 30)
259
> blackTiles("tiles.txt", 40)
406
> blackTiles("tiles.txt", 50)
566
> blackTiles("tiles.txt", 60)
788
> blackTiles("tiles.txt", 70)
1106
> blackTiles("tiles.txt", 80)
1373
> blackTiles("tiles.txt", 90)
1844
> blackTiles("tiles.txt", 100)
2208

Epiloog

Marcel B (@mrclbschff2) animeerde zijn oplossing voor deze opgave.