Распорядок Капрекарса - Википедия - Kaprekars routine
В теория чисел, Распорядок Капрекара является итеративный алгоритм, который на каждой итерации принимает натуральное число в данном база чисел, создает два новых числа сортировка цифры его номера в порядке убывания и возрастания, и вычитает второе из первого, чтобы получить натуральное число для следующей итерации. Он назван в честь своего изобретателя, Индийский математик Д. Р. Капрекар.
Определение и свойства
Алгоритм следующий:
- Выбери любой натуральное число в данном база чисел . Это первый номер последовательности.
- Создать новый номер к сортировка цифры в порядке убывания и еще одно новое число путем сортировки цифр в порядке возрастания. Эти числа могут иметь ведущие нули, которые отбрасываются (или, альтернативно, сохраняются). Вычесть для получения следующего номера последовательности.
- Повторите шаг 2.
Последовательность называется Последовательность Капрекара и функция это Карта Капрекара. Некоторые числа отображаются сами на себя; эти фиксированные точки отображения Капрекара,[1] и называются Константы Капрекара. Нуль постоянная Капрекара для всех оснований , и поэтому называется тривиальная постоянная Капрекара. Все остальные постоянные Капрекара равны нетривиальные константы Капрекара.
Например, в база 10, начиная с 3524,
с 6174 в качестве постоянной Капрекара.
Все последовательности Капрекара либо достигнут одной из этих фиксированных точек, либо приведут к повторяющемуся циклу. В любом случае конечный результат достигается за довольно небольшое количество шагов.
Обратите внимание, что числа и имеют то же самое цифра сумма и, следовательно, тот же остаток по модулю . Следовательно, каждое число в последовательности Капрекара с основанием числа (кроме, возможно, первого) кратны .
Когда ведущие нули сохраняются, только репдигиты приводят к тривиальной постоянной Капрекара.
Семейства констант Капрекара
В база 4, легко показать, что все числа вида 3021, 310221, 31102221, 3 ... 111 ... 02 ... 222 ... 1 (где длина последовательности "1" и длина «2» последовательности те же) - неподвижные точки отображения Капрекара.
В база 10, легко показать, что все числа вида 6174, 631764, 63317664, 6 ... 333 ... 17 ... 666 ... 4 (где длина последовательности "3" и длина «6» последовательности те же) - неподвижные точки отображения Капрекара.
б = 2k
Можно показать, что все натуральные числа
неподвижные точки отображения Капрекара в четной базе для всех натуральных чисел .
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 ... |
Константы Капрекара и циклы отображения Капрекара для конкретной базы б
Все числа выражены в базе , используя A-Z для представления цифровых значений от 10 до 35.
Основание | Длина цифры | Нетривиальные (ненулевые) постоянные Капрекара | Циклы |
---|---|---|---|
2 | 2 | 01[примечание 1] | |
3 | 011[примечание 1] | ||
4 | 0111,[примечание 1] 1001 | ||
5 | 01111,[примечание 1] 10101 | ||
6 | 011111,[примечание 1] 101101, 110001 | ||
7 | 0111111,[примечание 1] 1011101, 1101001 | ||
8 | 01111111,[примечание 1] 10111101, 11011001, 11100001 | ||
9 | 011111111,[примечание 1] 101111101, 110111001, 111010001 | ||
3 | 2 | ||
3 | 022 → 121 → 022[примечание 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[примечание 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[примечание 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[примечание 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[примечание 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[примечание 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 → 8430A8762 → A530432842 → A840732842 → A840732762 → 8630428762 → A840732762 → | |
13 | 2 | 1Б → 93 → 57 → 1Б | |
3 | 5C7 → 6C6 → 5C7 | ||
14 | 2 | 49 | 2Б → 85 → 2Б 0D → C1 → A3 → 67 → 0D[примечание 1] |
3 | 6D7 | ||
15 | 2 | ||
3 | 6E8 → 7E7 → 6E8 | ||
16[3] | 2 | 2D → A5 → 4B → 69 → 2D 0F → E1 → C3 → 87 → 0F[примечание 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 |
Константы Капрекара по основанию 10
Числа длиной четыре цифры
В 1949 г. Д. Р. Капрекар открыл[4] что если описанный выше процесс применяется к база 10 числа из 4 цифр, результирующая последовательность почти всегда будет сходиться к значению 6174 не более чем за 8 итераций, за исключением небольшого набора начальных чисел, которые вместо этого сходятся к 0. Число 6174 - первая обнаруженная константа Капрекара, и поэтому иногда ее называют Постоянная Капрекара.[5][6][7]
Набор чисел, которые сходятся к нулю, зависит от того, сохраняются ли ведущие нули (обычная формулировка) или отбрасываются (как в исходной формулировке Капрекара).
В обычной формулировке есть 77 четырехзначных чисел, которые сходятся к нулю,[8] например 2111. Однако в первоначальной формулировке Капрекара ведущие нули сохранены, и только репдигиты например, 1111 или 2222 сопоставить с нулем. Этот контраст показан ниже:
отбросить ведущие нули | сохранять ведущие нули |
---|---|
2111 − 1112 = 999 | 2111 − 1112 = 0999 |
Ниже представлена блок-схема. Ведущие нули сохраняются, однако единственная разница, когда ведущие нули отбрасываются, состоит в том, что вместо 0999, соединяющегося с 8991, мы получаем 999, соединяющееся с 0.
Цифры трехзначные
Если процедура Капрекара применяется к числам из 3 цифр с основанием 10, результирующая последовательность почти всегда сходится к значению 495 максимум за 6 итераций, за исключением небольшого набора начальных чисел, которые вместо этого сходятся к 0.[5]
Набор чисел, которые сходятся к нулю, зависит от того, отбрасываются ли ведущие нули (обычная формулировка) или сохраняются (как в исходной формулировке Капрекара). В обычной формулировке есть 60 трехзначных чисел, которые сходятся к нулю,[9] например 211. Однако в исходной формулировке Капрекара ведущие нули сохранены, и только репдигиты например 111 или 222, отображаются в ноль.
Ниже представлена блок-схема. Ведущие нули сохраняются, однако единственная разница, когда ведущие нули отбрасываются, заключается в том, что вместо 099, соединяющегося с 891, мы получаем 99, соединяющееся с 0.
Другая длина цифр
Для длин цифр, отличных от трех или четырех (в базе 10), процедура может завершиться в одной из нескольких фиксированных точек или может вместо этого войти в один из нескольких циклов, в зависимости от начального значения последовательности.[5] См. Таблицу в раздел выше за база 10 неподвижные точки и циклы.
Количество циклов быстро увеличивается с увеличением длины цифр, и все эти циклы, за исключением небольшой, имеют длину три. Например, для 20-значных чисел с основанием 10 существует четырнадцать констант (циклов длины один) и девяносто шесть циклов длины больше единицы, все из которых, кроме двух, имеют длину три. Длина нечетных цифр дает меньше разных конечных результатов, чем длина четных цифр.[10][11]
Пример программирования
Пример ниже реализует отображение Капрекара, описанное в определении выше. для поиска постоянных и циклов Капрекара в Python.
Начальные нули отброшены
def get_digits(Икс, б): цифры = [] пока Икс > 0: цифры.добавить(Икс % б) Икс = Икс // б возвращаться цифры def form_number(цифры, б): результат = 0 за я в классифицировать(0, len(цифры)): результат = результат * б + цифры[я] возвращаться результатdef kaprekar_map(Икс, б): нисходящий = form_number(отсортированный(get_digits(Икс, б), обеспечить регресс=Истинный), б) Восходящий = form_number(отсортированный(get_digits(Икс, б)), б) возвращаться нисходящий - Восходящий def kaprekar_cycle(Икс, б): Икс = int (ул(Икс), б) видимый = [] пока Икс нет в видимый: видимый.добавить(Икс) Икс = kaprekar_map(Икс, б) цикл = [] пока Икс нет в цикл: цикл.добавить(Икс) Икс = kaprekar_map(Икс, б) возвращаться цикл
Начальные нули сохранены
def digit_count(Икс, б): считать = 0 пока Икс > 0: считать = считать + 1 Икс = Икс // б возвращаться считать def get_digits(Икс, б, init_k): k = digit_count(Икс, б) цифры = [] пока Икс > 0: цифры.добавить(Икс % б) Икс = Икс // б за я в классифицировать(k, init_k): цифры.добавить(0) возвращаться цифры def form_number(цифры, б): результат = 0 за я в классифицировать(0, len(цифры)): результат = результат * б + цифры[я] возвращаться результат def kaprekar_map(Икс, б, init_k): нисходящий = form_number(отсортированный(get_digits(Икс, б, init_k), обеспечить регресс=Истинный), б) Восходящий = form_number(отсортированный(get_digits(Икс, б, init_k)), б) возвращаться нисходящий - Восходящий def kaprekar_cycle(Икс, б): Икс = int (ул(Икс), б) init_k = digit_count(Икс, б) видимый = [] пока Икс нет в видимый: видимый.добавить(Икс) Икс = kaprekar_map(Икс, б, init_k) цикл = [] пока Икс нет в цикл: цикл.добавить(Икс) Икс = kaprekar_map(Икс, б, init_k) возвращаться цикл
Смотрите также
- Арифметическая динамика
- Номер Дудени
- Факторион
- Счастливый номер
- Число Капрекара
- Число Меертенса
- Нарциссическое число
- Идеальный инвариант между цифрами
- Идеальный цифровой инвариант
- Сумма-номер продукта
- Алгоритм сортировки
Рекомендации
- ^ (последовательность A099009 в OEIS )
- ^ [1]
- ^ [2]
- ^ Капрекар Д.Р. (1955). «Интересное свойство числа 6174». Scripta Mathematica. 15: 244–245.
- ^ а б c Вайсштейн, Эрик В. «Рутина Капрекара». MathWorld.
- ^ Ютака Нишияма, Загадочное число 6174
- ^ Капрекар Д.Р. (1980). «О числах Капрекара». Журнал развлекательной математики. 13 (2): 81–82.
- ^ (последовательность A069746 в OEIS )
- ^ (последовательность A090429 в OEIS )
- ^ [3]
- ^ [4]
внешняя ссылка
- Боули, Ровер. «6174 - константа Капрекара». Numberphile. Ноттингемский университет: Брэди Харан. Архивировано из оригинал на 2017-08-23. Получено 2013-04-01.
- Пример кода (Perl) для перехода от любого четырехзначного числа к константе Капрекара