В развлекательной математике число Кита или число повторений (сокращение от повторяющейся цифры , подобной цифре Фибоначчи ) — это натуральное число в заданной системе счисления с такими цифрами, что при создании последовательности первые члены представляют собой цифры и каждый последующий член представляет собой сумму предыдущих членов, является частью последовательности. Числа Кита были введены Майком Китом в 1987 году. [1] Их очень сложно найти с вычислительной точки зрения, известно всего около 100.
Пусть это натуральное число, пусть это количество цифр по основанию и пусть
быть значением каждой цифры .
Мы определяем последовательность линейным рекуррентным соотношением . Для ,
и для
Если существует такое, что , то говорят, что это число Кита .
Например, 88 — это число Кита по основанию 6 , так как
и вся последовательность
и .
Существует ли бесконечно много чисел Кита в конкретной базе, в настоящее время является предметом предположений. Числа Кита редки, и их трудно найти. Их можно найти методом перебора, и более эффективного алгоритма не известно. [2] По словам Кита, в базе 10 в среднем ожидаются числа Кита между последовательными степенями 10 . [3] Известные результаты, похоже, подтверждают это.
14 , 19 , 28 , 47 , 61 , 75 , 197, 742, 1104, 1537, 2208, 2580, 3684, 4788, 7385, 7647, 7909, 31331, 34285, 34348, 55604, 62662, 86935, 93993, 120284, 129106, 147640, 156146, 174680, 183186, 298320, 355419, 694280, 925993, 1084051, 7913837, 11436171, 33445755, 44121607, 12 9572008, 251133297, ... [4]
В системе счисления 2 существует метод построения всех чисел Кита. [3]
Числа Кита по основанию 12 , записанные по основанию 12, равны
где ᘔ представляет собой 10, а Ɛ представляет собой 11.
Кластер Кита — это связанный набор чисел Кита, одно из которых кратно другому. Например, в системе счисления 10 , , и все являются кластерами Кейта. Возможно, это единственные три примера кластера Кита с основанием 10 . [5]
В приведенном ниже примере реализуется последовательность, определенная выше в Python, для определения того, является ли число в определенной базе числом Кита:
def is_repfigit ( x : int , b : int ) -> bool : """Определить, является ли число в определенной базе числом Кита.""" if x == 0 : вернуть True последовательность = [] y = x в то время как y > 0 : последовательность . добавить ( y % b ) y = y // b digit_count = len ( последовательность ) последовательность . обеспечить регресс () while последовательность [ len ( последовательность ) - 1 ] < x : n = 0 для i в диапазоне ( 0 , digit_count ): n = n + последовательность [ len ( последовательность ) - digit_count + i ] последовательность . добавить ( н ) возвращаемая последовательность [ len ( последовательность ) - 1 ] == x