Kaprekarsova rutina - Kaprekars routine - Wikipedia
v teorie čísel, Kaprekarova rutina je iterativní algoritmus, který při každé iteraci trvá a přirozené číslo v daném číselná základna, vytvoří dvě nová čísla pomocí třídění číslice jeho čísla sestupně a vzestupně a odečte druhou od první, čímž získá přirozené číslo pro další iteraci. Je pojmenována po svém vynálezci, indický matematik D. R. Kaprekar.
Definice a vlastnosti
Algoritmus je následující:
- Vyberte libovolné přirozené číslo v daném číselná základna . Toto je první číslo sekvence.
- Vytvořte nové číslo podle třídění číslice v sestupném pořadí a další nové číslo tříděním číslic ve vzestupném pořadí. Tato čísla mohou mít úvodní nuly, které jsou zahozeny (nebo alternativně zachovány). Odčítat k vytvoření dalšího čísla sekvence.
- Opakujte krok 2.
Sekvence se nazývá a Sekvence Kaprekar a funkce je Mapování Kaprekar. Některá čísla se k sobě mapují; tohle jsou pevné body mapování Kaprekar,[1] a jsou voláni Kaprekarovy konstanty. Nula je Kaprekarova konstanta pro všechny základny , a tak se nazývá a triviální Kaprekarova konstanta. Všechny ostatní Kaprekarovy konstanty jsou netriviální Kaprekarovy konstanty.
Například v základna 10, počínaje 3524,
s 6174 jako Kaprekarova konstanta.
Všechny sekvence Kaprekaru buď dosáhnou jednoho z těchto pevných bodů, nebo budou mít za následek opakující se cyklus. V každém případě je konečného výsledku dosaženo v poměrně malém počtu kroků.
Všimněte si, že čísla a mít stejné součet číslic a tedy stejný zbytek modulo . Proto každé číslo v Kaprekarově sekvenci základny čísla (jiná než možná první) je násobkem .
Pokud jsou zachovány úvodní nuly, pouze repignáty vést k triviální Kaprekarově konstantě.
Rodiny Kaprekarových konstant
v základna 4, lze snadno ukázat, že všechna čísla formuláře 3021, 310221, 31102221, 3 ... 111 ... 02 ... 222 ... 1 (kde délka sekvence „1“ a délka "2" sekvence jsou stejné) jsou pevné body mapování Kaprekar.
v základna 10, lze snadno ukázat, že všechna čísla formuláře 6174, 631764, 63317664, 6 ... 333 ... 17 ... 666 ... 4 (kde délka sekvence „3“ a délka "6" sekvence jsou stejné) jsou pevné body mapování Kaprekar.
b = 2k
Je možné ukázat, že všechna přirozená čísla
jsou pevné body mapování Kaprekar v sudé základně pro všechna přirozená čísla .
1 | 2 | 011, 101101, 110111001, 111011110001... |
2 | 4 | 132, 213312, 221333112, 222133331112... |
3 | 6 | 253, 325523, 332555223, 333255552223... |
4 | 8 | 374, 437734, 443777334, 444377773334... |
5 | 10 | 495, 549945, 554999445, 555499994445... |
6 | 12 | 5B6, 65BB56, 665BBB556, 6665BBBB5556 ... |
7 | 14 | 6D7, 76DD67, 776DDD667, 7776DDDD6667 ... |
8 | 16 | 7F8, 87FF78, 887FFF778, 8887FFFF7778 ... |
9 | 18 | 8H9, 98HH89, 998HHH889, 9998HHHH8889 ... |
Kaprekarovy konstanty a cykly Kaprekarova mapování pro konkrétní základnu b
Všechna čísla jsou vyjádřena v základu , pomocí A-Z reprezentovat číselné hodnoty 10 až 35.
Základna | Délka číslic | Netriviální (nenulové) Kaprekarovy konstanty | Cykly |
---|---|---|---|
2 | 2 | 01[poznámka 1] | |
3 | 011[poznámka 1] | ||
4 | 0111,[poznámka 1] 1001 | ||
5 | 01111,[poznámka 1] 10101 | ||
6 | 011111,[poznámka 1] 101101, 110001 | ||
7 | 0111111,[poznámka 1] 1011101, 1101001 | ||
8 | 01111111,[poznámka 1] 10111101, 11011001, 11100001 | ||
9 | 011111111,[poznámka 1] 101111101, 110111001, 111010001 | ||
3 | 2 | ||
3 | 022 → 121 → 022[poznámka 1] | ||
4 | 1012 → 1221 → 1012 | ||
5 | 20211 | ||
6 | 102212 → 210111 → 122221 → 102212 | ||
7 | 2202101 | 2022211 → 2102111 → 2022211 | |
8 | 21022111 | ||
9 | 222021001 | 220222101 → 221021101 → 220222101 202222211 → 210222111 → 211021111 → 202222211 | |
4 | 2 | 03 → 21 → 03[poznámka 1] | |
3 | 132 | ||
4 | 3021 | 1332 → 2022 → 1332 | |
5 | 20322 → 23331 → 20322 | ||
6 | 213312, 310221, 330201 | ||
7 | 3203211 | ||
8 | 31102221, 33102201, 33302001 | 22033212 → 31333311 → 22133112 → 22033212 | |
9 | 221333112, 321032211, 332032101 | ||
5 | 2 | 13 | |
3 | 143 → 242 → 143 | ||
4 | 3032 | ||
6 | 2 | 05 → 41 → 23 → 05[poznámka 1] | |
3 | 253 | ||
4 | 1554 → 4042 → 4132 → 3043 → 3552 → 3133 → 1554 | ||
5 | 41532 | 31533 → 35552 → 31533 | |
6 | 325523, 420432, 530421 | 205544 → 525521 → 432222 → 205544 | |
7 | 4405412 → 5315321 → 4405412 | ||
8 | 43155322, 55304201 | 31104443 → 43255222 → 33204323 → 41055442 → 54155311 → 44404112 → 43313222 → 31104443 42104432 → 43204322 → 42104432 53104421 → 53304221 → 53104421 | |
7 | 2 | ||
3 | 264 → 363 → 264 | ||
4 | 3054 → 5052 → 5232 → 3054 | ||
8 | 2 | 25 | 07 → 61 → 43 → 07[poznámka 1] |
3 | 374 | ||
4 | 1776 → 6062 → 6332 → 3774 → 4244 → 1776 3065 → 6152 → 5243 → 3065 | ||
5 | 42744 → 47773 → 42744 51753 → 61752 → 63732 → 52743 → 51753 | ||
6 | 437734, 640632 | 310665 → 651522 → 532443 → 310665 | |
9 | 2 | 17 → 53 → 17 | |
3 | 385 → 484 → 385 | ||
4 | 3076 → 7252 → 5254 → 3076 5074 → 7072 → 7432 → 5074 | ||
10[2] | 2 | 09 → 81 → 63 → 27 → 45 → 09[poznámka 1] | |
3 | 495 | ||
4 | 6174 | ||
5 | 53955 → 59994 → 53955 61974 → 82962 → 75933 → 63954 → 61974 62964 → 71973 → 83952 → 74943 → 62964 | ||
6 | 549945, 631764 | 420876 → 851742 → 750843 → 840852 → 860832 → 862632 → 642654 → 420876 | |
7 | 7509843 → 9529641 → 8719722 → 8649432 → 7519743 → 8429652 → 7619733 → 8439552 → 7509843 | ||
8 | 63317664, 97508421 | 43208766 → 85317642 → 75308643 → 84308652 → 86308632 → 86326632 → 64326654 → 43208766 64308654 → 83208762 → 86526432 → 64308654 | |
11 | 2 | 37 | |
3 | 4A6 → 5A5 → 4A6 | ||
4 | 3098 → 9452 → 7094 → 9272 → 7454 → 3098 5096 → 9092 → 9632 → 7274 → 5276 → 5096 | ||
12 | 2 | 0B → A1 → 83 → 47 → 29 → 65 → 0B[poznámka 1] | |
3 | 5B6 | ||
4 | 3BB8 → 8284 → 6376 → 3BB8 4198 → 8374 → 5287 → 6196 → 7BB4 → 7375 → 4198 | ||
5 | 83B74 | 64B66 → 6BBB5 → 64B66 | |
6 | 65BB56 | 420A98 → A73742 → 842874 → 642876 → 62BB86 → 951963 → 860A54 → A40A72 → A82832 → 864654 → 420A98 | |
7 | 962B853 | 841B974 → A53B762 → 971B943 → A64B652 → 960BA53 → B73B741 → A82B832 → 984B633 → 863B754 → 841B974 | |
8 | 873BB744, A850A632 | 4210AA98 → A9737422 → 87428744 → 64328876 → 652BB866 → 961BB953 → A8428732 → 86528654 → 6410AA76 → A92BB822 → 9980A323 → A7646542 → 8320A984 → A7537642 → 8430A874 → A5428852 → A302842 | |
13 | 2 | 1B → 93 → 57 → 1B | |
3 | 5C7 → 6C6 → 5C7 | ||
14 | 2 | 49 | 2B → 85 → 2B 0D → C1 → A3 → 67 → 0D[poznámka 1] |
3 | 6D7 | ||
15 | 2 | ||
3 | 6E8 → 7E7 → 6E8 | ||
16[3] | 2 | 2D → A5 → 4B → 69 → 2D 0F → E1 → C3 → 87 → 0F[poznámka 1] | |
3 | 7F8 | ||
4 | 3FFC → C2C4 → A776 → 3FFC A596 → 52CB → A596 E0E2 → EB32 → C774 → 7FF8 → 8688 → 1FFE → E0E2 E952 → C3B4 → 9687 → 30ED → E952 | ||
5 | 86F88 → 8FFF7 → 86F88 A3FB6 → C4FA4 → B7F75 → A3FB6 A4FA6 → B3FB5 → C5F94 → B6F85 → A4FA6 | ||
6 | 87FF78 | 310EED → ED9522 → CB3B44 → 976887 → 310EED 532CCB → A95966 → 532CCB 840EB8 → E6FF82 → D95963 → A42CB6 → A73B86 → 840EB8 A80E76 → E40EB2 → EC6832 → C91D64 → C82C74 → A80E76 C60E94 → E82C72 → CA0E54 → E84A72 → C60E94 | |
7 | C83FB74 | B62FC95 → D74FA83 → C92FC64 → D85F973 → C81FD74 → E94fA62 → DA3FB53 → CA5F954 → B74FA85 → B62FC95 B71FD85 → E83FB72 → DB3FB43 → CA6F854 → B73FB85 → C63FB94 → C84FA74 → B82FC75 → D73FB83 → CA3FB54 → C85F974 → B71FD85 | |
8 | 3110EEED → EDD95222 → CBB3B444 → 97768887 → 3110EEED 5332CCCB → A9959666 → 5332CCCB 7530ECA9 → E951DA62 → DB52CA43 → B974A865 → 7530ECA9 A832CC76 → A940EB66 → E742CB82 → CA70E854 → E850EA72 → EC50EA32 → EC94A632 → C962C964 → A832CC76 C610EE94 → ED82C722 → CBA0E544 → E874A872 → C610EE94 C630EC94 → E982C762 → CA30EC54 → E984A762 → C630EC94 C650EA94 → E852CA72 → CA50EA54 → E854AA72 → C650EA94 CA10EE54 → ED84A722 → CB60E944 → E872C872 → CA10EE54 |
Kaprekarovy konstanty v základně 10
Čísla délky čtyři číslice
V roce 1949 objevil D. R. Kaprekar[4] že pokud se použije výše uvedený proces základna 10 čísla 4 číslic, bude výsledná sekvence téměř vždy konvergovat k hodnotě 6174 v maximálně 8 iteracích, s výjimkou malé množiny počátečních čísel, které se místo toho sbíhají k 0. Číslo 6174 je první Kaprekarovou konstantou, která se má objevit, a proto se někdy označuje jako Kaprekarova konstanta.[5][6][7]
Sada čísel, která konvergují k nule, závisí na tom, zda jsou počáteční nuly zachovány (obvyklá formulace), nebo jsou zahozeny (jako v původní formulaci Kaprekar).
V obvyklém složení je 77 čtyřmístných čísel, která konvergují k nule,[8] například 2111. V Kaprekarově původní formulaci jsou však zachovány přední nuly, a to pouze repignáty například 1111 nebo 2222 mapují na nulu. Tento kontrast je znázorněn níže:
zahoďte úvodní nuly | zachovat úvodní nuly |
---|---|
2111 − 1112 = 999 | 2111 − 1112 = 0999 |
Níže je vývojový diagram. Počáteční nuly zůstanou zachovány, ale jediný rozdíl, když jsou počáteční nuly zahozeny, je ten, že namísto připojení 0999 k 8991 získáme 999 připojení k 0.

Čísla délky tři číslice
Pokud se rutina Kaprekar použije na čísla 3 číslic v základně 10, výsledná sekvence se téměř vždy sblíží s hodnotou 495 v maximálně 6 iteracích, s výjimkou malé sady počátečních čísel, která se místo toho sbíhají na 0[5]
Sada čísel, která konvergují k nule, závisí na tom, zda jsou úvodní nuly zahozeny (obvyklá formulace) nebo jsou zachovány (jako v původní formulaci Kaprekar). V obvyklém složení je 60 třímístných čísel, která konvergují k nule,[9] například 211. V Kaprekarově původní formulaci jsou však zachovány úvodní nuly, a to pouze repignáty například 111 nebo 222 mapa na nulu.
Níže je vývojový diagram. Počáteční nuly zůstanou zachovány, ale jediný rozdíl, když jsou počáteční nuly zahozeny, je ten, že namísto 099 připojení k 891 dostaneme 99 připojení k 0.

Jiné délky číslic
U délek číslic jiných než tři nebo čtyři (v základně 10) může rutina končit v jednom z několika pevných bodů nebo může místo toho zadat jeden z několika cyklů, v závislosti na počáteční hodnotě sekvence.[5] Viz tabulka v část výše pro základna 10 pevné body a cykly.
Počet cyklů se rychle zvyšuje s většími délkami číslic a až na malou hrst těchto cyklů jsou tři. Například pro 20místná čísla v základně 10 existuje čtrnáct konstant (cykly délky jedna) a devadesát šest cyklů délky větší než jeden, všechny kromě dvou mají délku tři. Zvláštní délky číslic produkují méně různých konečných výsledků než sudé délky číslic.[10][11]
Příklad programování
Následující příklad implementuje mapování Kaprekar popsané ve výše uvedené definici hledat Kaprekarovy konstanty a cykly v Krajta.
Přední nuly zahozeny
def get_digits(X, b): číslice = [] zatímco X > 0: číslice.připojit(X % b) X = X // b vrátit se číslice def form_number(číslice, b): výsledek = 0 pro i v rozsah(0, len(číslice)): výsledek = výsledek * b + číslice[i] vrátit se výsledekdef kaprekar_map(X, b): klesající = form_number(tříděny(get_digits(X, b), zvrátit=Skutečný), b) vzestupně = form_number(tříděny(get_digits(X, b)), b) vrátit se klesající - vzestupně def kaprekar_cycle(X, b): X = int (str(X), b) vidět = [] zatímco X ne v vidět: vidět.připojit(X) X = kaprekar_map(X, b) cyklus = [] zatímco X ne v cyklus: cyklus.připojit(X) X = kaprekar_map(X, b) vrátit se cyklus
Počáteční nuly zůstaly zachovány
def digit_count(X, b): počet = 0 zatímco X > 0: počet = počet + 1 X = X // b vrátit se počet def get_digits(X, b, init_k): k = digit_count(X, b) číslice = [] zatímco X > 0: číslice.připojit(X % b) X = X // b pro i v rozsah(k, init_k): číslice.připojit(0) vrátit se číslice def form_number(číslice, b): výsledek = 0 pro i v rozsah(0, len(číslice)): výsledek = výsledek * b + číslice[i] vrátit se výsledek def kaprekar_map(X, b, init_k): klesající = form_number(tříděny(get_digits(X, b, init_k), zvrátit=Skutečný), b) vzestupně = form_number(tříděny(get_digits(X, b, init_k)), b) vrátit se klesající - vzestupně def kaprekar_cycle(X, b): X = int (str(X), b) init_k = digit_count(X, b) vidět = [] zatímco X ne v vidět: vidět.připojit(X) X = kaprekar_map(X, b, init_k) cyklus = [] zatímco X ne v cyklus: cyklus.připojit(X) X = kaprekar_map(X, b, init_k) vrátit se cyklus
Viz také
- Aritmetická dynamika
- Dudeneyovo číslo
- Factorion
- Šťastné číslo
- Číslo Kaprekar
- Číslo Meertens
- Narcistické číslo
- Perfektní invariant mezi číslicemi
- Perfektní digitální invariant
- Souhrnné číslo produktu
- Algoritmus řazení
Reference
- ^ (sekvence A099009 v OEIS )
- ^ [1]
- ^ [2]
- ^ Kaprekar DR (1955). "Zajímavá vlastnost čísla 6174". Scripta Mathematica. 15: 244–245.
- ^ A b C Weisstein, Eric W. "Rutina Kaprekar". MathWorld.
- ^ Yutaka Nishiyama, Tajemné číslo 6174
- ^ Kaprekar DR (1980). „Na číslach Kaprekar“. Časopis rekreační matematiky. 13 (2): 81–82.
- ^ (sekvence A069746 v OEIS )
- ^ (sekvence A090429 v OEIS )
- ^ [3]
- ^ [4]
externí odkazy
- Bowley, Rover. „6174 je Kaprekarova konstanta“. Numberphile. University of Nottingham: Brady Haran. Archivovány od originál dne 23. 8. 2017. Citováno 2013-04-01.
- Ukázkový (Perl) kód, pomocí kterého můžete přenést libovolné čtyřciferné číslo na Kaprekarovu konstantu