Капрекарс режим - Kaprekars routine

В теория чисел, Распорядок Капрекара является итеративный алгоритм, который на каждой итерации принимает натуральное число в данном база чисел, создает два новых числа сортировка цифры его номера в порядке убывания и возрастания, и вычитает второе из первого, чтобы получить натуральное число для следующей итерации. Он назван в честь своего изобретателя, Индийский математик Д. Р. Капрекар.

Определение и свойства

Алгоритм следующий:

  1. Выбери любой натуральное число в данном база чисел . Это первый номер последовательности.
  2. Создать новый номер к сортировка цифры в порядке убывания и еще одно новое число путем сортировки цифр в порядке возрастания. Эти числа могут иметь ведущие нули, которые отбрасываются (или, альтернативно, сохраняются). Вычесть для получения следующего номера последовательности.
  3. Повторите шаг 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

Можно показать, что все натуральные числа

неподвижные точки отображения Капрекара в четной базе для всех натуральных чисел .

Доказательство —

Совершенные цифровые инварианты
12011, 101101, 110111001, 111011110001...
24132, 213312, 221333112, 222133331112...
36253, 325523, 332555223, 333255552223...
48374, 437734, 443777334, 444377773334...
510495, 549945, 554999445, 555499994445...
6125B6, 65BB56, 665BBB556, 6665BBBB5556 ...
7146D7, 76DD67, 776DDD667, 7776DDDD6667 ...
8167F8, 87FF78, 887FFF778, 8887FFFF7778 ...
9188H9, 98HH89, 998HHH889, 9998HHHH8889 ...

Константы Капрекара и циклы отображения Капрекара для конкретной базы б

Все числа выражены в базе , используя A-Z для представления цифровых значений от 10 до 35.

Основание Длина цифрыНетривиальные (ненулевые) постоянные КапрекараЦиклы
2201[примечание 1]
3011[примечание 1]
40111,[примечание 1] 1001
501111,[примечание 1] 10101
6011111,[примечание 1] 101101, 110001
70111111,[примечание 1] 1011101, 1101001
801111111,[примечание 1] 10111101, 11011001, 11100001
9011111111,[примечание 1] 101111101, 110111001, 111010001
32
3022 → 121 → 022[примечание 1]
41012 → 1221 → 1012
520211
6102212 → 210111 → 122221 → 102212
722021012022211 → 2102111 → 2022211
821022111
9222021001

220222101 → 221021101 → 220222101

202222211 → 210222111 → 211021111 → 202222211

4203 → 21 → 03[примечание 1]
3132
430211332 → 2022 → 1332
520322 → 23331 → 20322
6213312, 310221, 330201
73203211
831102221, 33102201, 3330200122033212 → 31333311 → 22133112 → 22033212
9221333112, 321032211, 332032101
5213
3143 → 242 → 143
43032
6205 → 41 → 23 → 05[примечание 1]
3253
41554 → 4042 → 4132 → 3043 → 3552 → 3133 → 1554
54153231533 → 35552 → 31533
6325523, 420432, 530421205544 → 525521 → 432222 → 205544
74405412 → 5315321 → 4405412
843155322, 55304201

31104443 → 43255222 → 33204323 → 41055442 → 54155311 → 44404112 → 43313222 → 31104443

42104432 → 43204322 → 42104432

53104421 → 53304221 → 53104421

72
3264 → 363 → 264
43054 → 5052 → 5232 → 3054
822507 → 61 → 43 → 07[примечание 1]
3374
4

1776 → 6062 → 6332 → 3774 → 4244 → 1776

3065 → 6152 → 5243 → 3065

5

42744 → 47773 → 42744

51753 → 61752 → 63732 → 52743 → 51753

6437734, 640632310665 → 651522 → 532443 → 310665
9217 → 53 → 17
3385 → 484 → 385
4

3076 → 7252 → 5254 → 3076

5074 → 7072 → 7432 → 5074

10[2]209 → 81 → 63 → 27 → 45 → 09[примечание 1]
3495
46174
5

53955 → 59994 → 53955

61974 → 82962 → 75933 → 63954 → 61974

62964 → 71973 → 83952 → 74943 → 62964

6549945, 631764420876 → 851742 → 750843 → 840852 → 860832 → 862632 → 642654 → 420876
77509843 → 9529641 → 8719722 → 8649432 → 7519743 → 8429652 → 7619733 → 8439552 → 7509843
863317664, 97508421

43208766 → 85317642 → 75308643 → 84308652 → 86308632 → 86326632 → 64326654 → 43208766

64308654 → 83208762 → 86526432 → 64308654

11237
34A6 → 5A5 → 4A6
4

3098 → 9452 → 7094 → 9272 → 7454 → 3098

5096 → 9092 → 9632 → 7274 → 5276 → 5096

1220B → A1 → 83 → 47 → 29 → 65 → 0B[примечание 1]
35B6
4

3BB8 → 8284 → 6376 → 3BB8

4198 → 8374 → 5287 → 6196 → 7BB4 → 7375 → 4198

583B7464B66 → 6BBB5 → 64B66
665BB56420A98 → A73742 → 842874 → 642876 → 62BB86 → 951963 → 860A54 → A40A72 → A82832 → 864654 → 420A98
7962B853841B974 → A53B762 → 971B943 → A64B652 → 960BA53 → B73B741 → A82B832 → 984B633 → 863B754 → 841B974
8873BB744, A850A6324210AA98 → A9737422 → 87428744 → 64328876 → 652BB866 → 961BB953 → A8428732 → 86528654 → 6410AA76 → A92BB822 → 9980A323 → A7646542 → 8320A984 → A7537642 → 8430A8762 → A530432842 → A840732842 → A840732762 → 8630428762 → A840732762 →
1321Б → 93 → 57 → 1Б
35C7 → 6C6 → 5C7
14249

2Б → 85 → 2Б

0D → C1 → A3 → 67 → 0D[примечание 1]

36D7
152
36E8 → 7E7 → 6E8
16[3]2

2D → A5 → 4B → 69 → 2D

0F → E1 → C3 → 87 → 0F[примечание 1]

37F8
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

687FF78

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

7C83FB74

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

  1. ^ а б c d е ж грамм час я j k л м п о п Начальные нули сохранены.

Константы Капрекара по основанию 10

Числа длиной четыре цифры

В 1949 г. Д. Р. Капрекар открыл[4] что если описанный выше процесс применяется к база 10 числа из 4 цифр, результирующая последовательность почти всегда будет сходиться к значению 6174 не более чем за 8 итераций, за исключением небольшого набора начальных чисел, которые вместо этого сходятся к 0. Число 6174 - первая обнаруженная константа Капрекара, и поэтому иногда ее называют Постоянная Капрекара.[5][6][7]

Набор чисел, которые сходятся к нулю, зависит от того, сохраняются ли ведущие нули (обычная формулировка) или отбрасываются (как в исходной формулировке Капрекара).

В обычной формулировке есть 77 четырехзначных чисел, которые сходятся к нулю,[8] например 2111. Однако в первоначальной формулировке Капрекара ведущие нули сохранены, и только репдигиты например, 1111 или 2222 сопоставить с нулем. Этот контраст показан ниже:

отбросить ведущие нулисохранять ведущие нули

2111 − 1112 = 999
999 − 999 = 0

2111 − 1112 = 0999
9990 − 0999 = 8991
9981 − 1899 = 8082
8820 − 0288 = 8532
8532 − 2358 = 6174

Ниже представлена ​​блок-схема. Ведущие нули сохраняются, однако единственная разница, когда ведущие нули отбрасываются, состоит в том, что вместо 0999, соединяющегося с 8991, мы получаем 999, соединяющееся с 0.

Последовательность превращений Капрекара, заканчивающаяся 6174 годом.

Цифры трехзначные

Если процедура Капрекара применяется к числам из 3 цифр с основанием 10, результирующая последовательность почти всегда сходится к значению 495 максимум за 6 итераций, за исключением небольшого набора начальных чисел, которые вместо этого сходятся к 0.[5]

Набор чисел, которые сходятся к нулю, зависит от того, отбрасываются ли ведущие нули (обычная формулировка) или сохраняются (как в исходной формулировке Капрекара). В обычной формулировке есть 60 трехзначных чисел, которые сходятся к нулю,[9] например 211. Однако в исходной формулировке Капрекара ведущие нули сохранены, и только репдигиты например 111 или 222, отображаются в ноль.

Ниже представлена ​​блок-схема. Ведущие нули сохраняются, однако единственная разница, когда ведущие нули отбрасываются, заключается в том, что вместо 099, соединяющегося с 891, мы получаем 99, соединяющееся с 0.

Последовательность трехзначных преобразований Капрекара, оканчивающаяся на 495.

Другая длина цифр

Для длин цифр, отличных от трех или четырех (в базе 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)    возвращаться цикл

Смотрите также

Рекомендации

  1. ^ (последовательность A099009 в OEIS )
  2. ^ [1]
  3. ^ [2]
  4. ^ Капрекар Д.Р. (1955). «Интересное свойство числа 6174». Scripta Mathematica. 15: 244–245.
  5. ^ а б c Вайсштейн, Эрик В. «Рутина Капрекара». MathWorld.
  6. ^ Ютака Нишияма, Загадочное число 6174
  7. ^ Капрекар Д.Р. (1980). «О числах Капрекара». Журнал развлекательной математики. 13 (2): 81–82.
  8. ^ (последовательность A069746 в OEIS )
  9. ^ (последовательность A090429 в OEIS )
  10. ^ [3]
  11. ^ [4]

внешняя ссылка