Welk getal komt op de plaats van het vraagteken?

749, 286, 859, 008, 112, 442, 367, ?, …

Het volgende getal in de reeks is 048. Deze reeks getallen is immers een voorbeeld van een arithmetische progressie van getal 749 met verschuivingen 123.

arithmetische progressie

Opgave

We stellen een getal $$d = d_1d_2\ldots d_n$$ met $$n$$ cijfers voor als een string (str).

Voor twee getallen $$d = d_1d_2\ldots d_n$$ en $$s = s_1s_2\ldots s_n$$ met $$n$$ cijfers is de arithmetische progressie van $$d$$ met verschuivingen $$s$$ een reeks getallen die begint met het getal $$d$$. Het volgende getal van de arithmetische progressie wordt telkens via een progressiestap bepaald uit het vorige getal van de reeks.

progressiestap

Bij een progressiestap verschuiven we eerste de cijfers van getal $$d = d_1d_2\ldots d_n$$ met verschuivingen $$s = s_1s_2\ldots s_n$$. Dit levert een nieuw getal $$d' = d'_1d'_2\ldots d'_n$$ van $$n$$ cijfers op, waarbij $$d'_i = (d_i + s_i)\!\!\!\!\mod{10}$$ voor $$i = 1, 2, \ldots, n$$ en waarbij $$\text{mod}$$ de bewerking is die de rest na deling bepaalt. Daarna rollen we het getal $$d'$$ naar rechts door alle cijfers één positie naar rechts te verplaatsen en het laatste cijfer vooraan te plaatsen. Dit levert een nieuw getal $$d'' = d'_nd'_1d'_2\ldots d'_{n-1}$$ van $$n$$ cijfers op.

De progressiestap bepaalt dus dat het getal $$d$$ in de arithmetische progressie gevolgd wordt door het getal $$d''$$. Om nu de opvolger van het getal $$d''$$ in de arithmetische progressie te bepalen, gebruiken we in de volgende progressiestap niet de verschuivingen $$s$$ maar rollen we die verschuivingen ook naar rechts. Daardoor werken we dus in de volgende progressiestap met de verschuivingen $$s'' = s_ns_1s_2\ldots s_{n-1}$$.

Voor twee getallen $$d$$ en $$s$$ met $$n$$ cijfers heeft de arithmetische progressie van $$d$$ met verschuivingen $$s$$ een cyclisch karakter. Het aantal progressiestappen waarna we terug bij het eerste getal $$d$$ uitkomen, noemen we de periode van de arithmetische expressie. Zo komen we in de arithmetische progressie van 749 met verschuivingen 123 bijvoorbeeld na 30 progressiestappen terug bij getal 749 uit. Dit is ook de maximale periode, want voor een getal met $$n$$ cijfers is de periode altijd kleiner of gelijk aan $$10 \times n$$. Er zijn echter ook kortere periodes mogelijk. Zo heeft de arithmetische expressie van 749 met verschuivingen 154 bijvoorbeeld een periode van 7, en met verschuivingen 758 krijgen we zelfs na één progressiestap terug het getal 749.

arithmetische progressiearithmetische progressie

Gevraagd wordt:

Voorbeeld

>>> rollen('749')
'974'
>>> rollen('48839')
'94883'

>>> verschuiven('749', '123')
'862'
>>> verschuiven('52736', '97563')
'49299'

>>> progressie('749', '123', 1)
'286'
>>> progressie('749', '123', 2)
'859'
>>> progressie('749', '123', 3)
'008'
>>> progressie('749', '123', 30)
'749'
>>> progressie('52736', '97563', 1)
'94929'
>>> progressie('52736', '97563', 2)
'52367'
>>> progressie('52736', '97563', 3)
'21523'
>>> progressie('52736', '97563', 9)
'52736'

>>> periode('749', '123')
30
>>> periode('749', '154')
7
>>> periode('749', '758')
1
>>> periode('52736', '97563')
9
>>> periode('416275', '869241')
21