De Keithreeks van een natuurlijk getal $$k$$ ($$k > 9$$) met $$n$$ cijfers ($$n > 1$$) is een getallenreeks waarvan de eerste $$n$$ getallen gelijk zijn aan de $$n$$ cijfers van $$k$$. De eerste drie getallen in de Keithreeks van 197 zijn dus 1, 9 en 7. Het volgende getal in de reeks is telkens gelijk aan som van de vorige $$n$$ getallen uit de reeks. De volgende getallen in de Keithreeks van 197 zijn dus \[ \begin{eqnarray*} 1 + 9 + 7 &=& 17 \\ 9 + 7 + 17 &=& 33 \\ 7 + 17 + 33 &=& 57 \\ 17 + 33 + 57 &=& 107 \\ 33 + 57 + 107 &=& 197 \\ &\vdots & \end{eqnarray*} \] Het begin van de volledige Keithreeks van 197 is dus
1, 9, 7, 17, 33, 57, 107, 197, 361, 665, 1223, …
Op de eerste $$n$$ getallen na is een Keithreeks strikt stijgend.
Een Keithgetal is een natuurlijk getal $$k$$ ($$k > 9$$) met $$n$$ cijfers ($$n > 1$$) dat voorkomt in zijn eigen Keithreeks. Het getal 197 is dus een Keithgetal omdat 197 voorkomt in de Keithreeks van 197 (hierboven aangeduid in het blauw).
Het omgekeerd getal $$\bar{k}$$ voor een natuurlijk getal $$k = c_1c_2\ldots c_{n-1}c_n$$ ($$k \geq 0$$) met $$n$$ cijfers ($$n > 0$$) is het natuurlijk getal dat we bekomen door de volgorde van de cijfers om te keren: $$\bar{k} = c_nc_{n-1}\ldots c_2c_1$$.
Een omgekeerd Keithgetal is een natuurlijk getal $$k$$ ($$k > 9$$) met $$n$$ cijfers ($$n > 1$$) waarvoor het omgekeerd getal $$\bar{k}$$ voorkomt in de Keithreeks van $$k$$. Omdat 791 niet voorkomt in de Keithreeks van 197, is 197 dus geen omgekeerd Keithgetal. Het getal 341 is daarentegen wel een omgekeerd Keithgetal omdat 143 voorkomt in de Keithreeks van 341
3, 4, 1, 8, 13, 22, 43, 78, 143, 264, 485, 892, 1641, …
Schrijf een functie keithstap waaraan een lijst (list) met $$n$$ natuurlijke getallen (int) moet doorgegeven worden. De functie moet de gegeven lijst aanpassen door het eerste getal te verwijderen en achteraan de som van de $$n$$ gegeven getallen toe te voegen. Omdat we één getal verwijderen en één getal toevoegen, blijft de lijst nog altijd bestaan uit $$n$$ natuurlijke getallen. De functie moet ook een verwijzing naar de lijst teruggeven.
Schrijf een functie keithreeks waaraan een natuurlijk getal $$k$$ (int; $$k > 9$$) met $$n$$ cijfers ($$n > 1$$) moet doorgegeven worden. De functie heeft ook nog een optionele tweede parameter doel waaraan een getal $$t$$ (int) kan doorgegeven worden. Als er niet expliciet een waarde wordt doorgegeven aan de parameter doel, dan is $$t \equiv k$$. De functie moet een lijst (list) teruggeven met de eerste $$n$$ opeenvolgende getallen uit de Keithreeks van $$k$$ waarvoor geldt dat het laatste van die $$n$$ getallen groter of gelijk is aan $$t$$.
Schrijf een functie iskeith waaraan een getal $$k$$ (int) moet doorgegeven worden. De functie heeft ook nog een optionele tweede parameter omgekeerd waaraan een Booleaanse waarde (bool; standaardwaarde: False) kan doorgegeven worden. De functie moet een Booleaanse waarde (bool) teruggeven die aangeeft of $$k$$ een Keithgetal (omgekeerd=False) of een omgekeerd Keithgetal (omgekeerd=True) is.
>>> getallen = [1, 9, 7]
>>> keithstap(getallen)
[9, 7, 17]
>>> getallen
[9, 7, 17]
>>> keithstap(getallen)
[7, 17, 33]
>>> keithstap(getallen)
[17, 33, 57]
>>> keithstap(getallen)
[33, 57, 107]
>>> keithstap(getallen)
[57, 107, 197]
>>> getallen
[57, 107, 197]
>>> keithreeks(3)
[3]
>>> keithreeks(11)
[8, 13]
>>> keithreeks(34)
[29, 47]
>>> keithreeks(197)
[57, 107, 197]
>>> keithreeks(1104, doel=7000)
[1104, 2128, 4102, 7907]
>>> keithreeks(3684, doel=10000)
[1910, 3684, 7100, 13685]
>>> iskeith(3)
False
>>> iskeith(34, omgekeerd=False)
False
>>> iskeith(197)
True
>>> iskeith(11)
False
>>> iskeith(2580, False)
True
>>> iskeith(86935)
True
>>> iskeith(174680)
True
>>> iskeith(5752090994058710841670361653731519, omgekeerd=False)
True
>>> iskeith(9, True)
False
>>> iskeith(11, omgekeerd=True)
False
>>> iskeith(12, True)
True
>>> iskeith(341, omgekeerd=True)
True
>>> iskeith(5532, True)
True
>>> iskeith(5426705064, omgekeerd=True)
True
Er bestaat geen algemene techniek om Keithgetallen te vinden, behalve door met brute kracht1 alle getallen af te lopen en voor elk getal na te gaan of het een Keithgetal is. Keithgetallen lijken veel zeldzamer te zijn dan priemgetallen: er zijn slechts 84 Keithgetallen met minder dan 26 cijfers. Het is ook niet bekend of het aantal Keithgetallen eindig of oneindig is. Tot nu toe waren enkel deze 95 Keithgetallen met hoogstens 34 cijfers gekend.
$$n$$ | aantal | Keithgetallen met $$n$$ cijfers |
---|---|---|
2 | 6 | 14, 19, 28, 47, 61, 75 |
3 | 2 | 197, 742 |
4 | 9 | 1104, 1537, 2208, 2580, 3684, 4788, 7385, 7647, 7909 |
5 | 7 | 31331, 34285, 34348, 55604, 62662, 86935, 93993 |
6 | 10 | 120284, 129106, 147640, 156146, 174680, 183186, 298320, 355419, 694280, 925993 |
7 | 2 | 1084051, 7913837 |
8 | 3 | 11436171, 33445755, 44121607 |
9 | 2 | 129572008, 251133297 |
10 | 0 | (geen) |
11 | 1 | 24769286411 96189170155 |
12 | 4 | 171570159070, 202366307758, 239143607789, 296658839738 |
13 | 2 | 1934197506555, 8756963649152 |
14 | 3 | 43520999798747, 74596893730427, 97295849958669 |
15 | 3 | 120984833091531, 270585509032586, 754788753590897 |
16 | 3 | 3621344088074041, 3756915124022254, 4362827422508274 |
17 | 5 | 11812665388886672, 14508137312404344, 16402582054271374, 69953250322018194, 73583709853303061 |
18 | 3 | 119115440241433462, 166308721919462318, 301273478581322148 |
19 | 5 | 1362353777290081176, 3389041747878384662, 5710594497265802190, 5776750370944624064, 6195637556095764016 |
20 | 3 | 12763314479461384279, 27847652577905793413, 45419266414495601903 |
21 | 1 | 855191324330802397989 |
22 | 1 | 7657230882259548723593 |
23 | 3 | 26842994422637112523337, 36899277593852609997403, 61333853602129819189668 |
24 | 1 | 229146413136585558461227 |
25 | 1 | 9838678687915198599200604 |
26 | 3 | 18354972585225358067718266, 19876234926457288511947945, 98938191214220718050301312 |
27 | 7 | 153669354455482560987178342, 154677881401007799974564336, 133118411174059688391045955, 154140275428339949899922650, 295768237361291708645227474, 956633720464114515890318410, 988242310393860390066911414 |
28 | 1 | 9493976840390265868522067200 |
29 | 2 | 41796205765147426974704791528, 70267375510207885242218837404 |
30 | 5 | 127304146123884420932123248317, 389939548933846065763772833753, 344669719564188054170496150677, 756672276587447504826932994366, 534139807526361917710268232010 |
31 | 2 | 1598187483427964679092074853838, 2405620130870553672640058975437 |
32 | 4 | 41030306579725050560909919549414, 47824404246899742508216679149392, 42983394195992223818343905028410, 89980815134051887612993101615858 |
33 | 6 | 172451142646837728336412943204299, 193962639439026709638083447831059, 381933008901296879565658130750756, 359253598248137147666007355623218, 303294117104027490007126494842828, 312736110821858321305917486145434 |
34 | 3 | 1876178467884883559985053635963437, 2787674840304510129398176411111966, 5752090994058710841670361653731519 |
D. Lichtblau vond in 2004 het Keithgetal 98938191214220718050301312 (26 cijfers) door lineair programmeren2 met gehele getallen te gebruiken om de corresponderende diofantische vergelijkingen3 op te lossen. Op 29 juni 2009 vond hij ook alle Keithgetallen met 30 en 31 cijfers, en op 26 augustus 2009 vond hij alle Keithgetallen met 32, 33 en 34 cijfers. Daarmee was 5752090994058710841670361653731519 (34 cijfers) tot nu toe het grootste Keithgetal dat we kennen, want sinds augustus 2009 zijn er geen nieuwe Keithgetallen meer gevonden.
Bij het opstellen van deze opgave (december 2022) slaagde Toon Baeyens (Universiteit Gent, België) er echter in om het lijstje van gekende Keithgetallen verder uit te breiden met alle Keithgetallen van 35 en 36 cijfers.
$$n$$ | aantal | Keithgetallen met $$n$$ cijfers |
---|---|---|
35 | 4 | 23137274755282109912063039769168142, 25314398891465125143523864790391288, 44715370344837755402179510861188022, 47933465320021485928519060435917729 |
36 | 5 | 196866601633638871239614307772203156, 214860400509971669129437189647933258, 394684240118372710589383926683340073, 763701584467955209221750616718219223, 880430656963418264331749765271577784 |