Компьютер в помощь математике. Исследование и поиск Георгий Гуляев 7 июня 2026 г. В рамках заданной тематики, мы будем рассматривать различные зада- чи на исследование, для каждой из которых напишем разные вспомога- тельные функции на языке Julia и, при помощи компьютера, получим те или иные ответы на возникающие вопросы, а также сформулируем новые задачи, решения для которых нам пока неизвестны. 1. Проблема 196 или числа Лишрела Палиндром - это последовательность символов, не меняющаяся после преобразования реверса, то есть записи символов в обратном порядке следования. В нашем случае речь пойдет о натуральных числах-палиндромах в десятичной системе счисления, например, таких как 5 , 33 , 131 , 1221 , 12321 , 705919507 , ... Очевидно, такие числа не могут оканчиваться на 0 , а также однозначные числа и числа, в десятичной записи которых используется только одна цифра, сразу являются палиндромами. Когда натуральное число n не является палиндромом, можно попытаться получить из него палиндром, при помощи последовательного сложения числа с реверсным ему: 57 = > 57 + 75 = 132 = > 132 + 231 = 363 1 Для большинства чисел этот процесс приводит к палиндрому за неболь- шое число итераций, как в данном примере. Однако есть такие числа, наименьшее из которых 196, которые не подчиняются данному правилу. Процесс "сумма с реверсным" для 196 и других подобных чисел, кажется, продолжается сколько угодно долго без получения числа - палиндрома (для 196 на компьютерах процесс был доведен до числа, содержащего более милиарда цифр - [1]). Однако доказать, что для чисел подобных 196 процесс бесконечен, мы не в состоянии. Числами Лишрела называются числа, для которых процесс "сумма с реверсным" - бесконечен, то есть не приведет к палиндрому никогда. На данный момент доказанных чисел Лишрела для десятичной системы не существует, числа 196 и другие подобные ему - всего лишь кандидаты в числа Лишрела. Напишем две простые функции на языке Julia: function ispal(n) l = digits(n) l == reverse(l) end function go(n) next(x) = x + parse(BigInt, join(digits(x))) l = [big(n)]; while !ispal(l[end])&&length(l)<300 push!(l, next(l[end])) end l end Первая проверяет является ли число палиндромом, вторая - по данно- му числу строит последовательность "сумма с реверсным"до получения палиндрома. Если число не кандидат в число Лишрела, то максимальное число итера- ций для него в этом процессе до получения палиндрома не превосходит 300 (для всех известных на сегодняшний день случаев). 2 Поэтому мы останавливаемся, как только длина последовательности до- стигает 300 и считаем такое число кандидатом в число Лишрела. Примеры: julia> for n in [56,57,59,89] println(go(n)) end BigInt[56, 121] BigInt[57, 132, 363] BigInt[59, 154, 605, 1111] BigInt[89, 187, 968, 1837, 9218, 17347, 91718, 173437, 907808, 1716517, 8872688, 17735476, 85189247, 159487405, 664272356, 1317544822, 3602001953, 7193004016, 13297007933, 47267087164, 93445163438, 176881317877, 955594506548, 1801200002107, 8813200023188] Ну а для 196, естественно, получаем последовательность из 300 элемен- тов, последний из которых содержит 132 десятичных знака, так и не достигнув палиндрома. От известных фактов перейдем теперь непосредственно к теме нашего исследования. Поставим общий вопрос: как следует изменить функцию "палиндромизации" (в данном случае "сложить с реверсным"), чтобы исключений подобных 196 не было. Первое что приходит в голову попробовать вычитание вместо сложения. Вычитание из большего числа меньшего. Достаточно изменить функцию next next(x) = abs(x - parse(BigInt, join(digits(x)))) и попробовать. В этом случае мы можем ожидать, что все последова- тельности будут конечны, поскольку они должны иметь тенденцию к убыванию. Примеры с измененной функцией next : julia> for n in [56,57,59,89,196,1234] println(go(n)) end BigInt[56, 9] BigInt[57, 18, 63, 27, 45, 9] BigInt[59, 36, 27, 45, 9] BigInt[89, 9] BigInt[196, 495, 99] BigInt[1234, 3087, 4716, 1458, 7083, 3276, 3447, 3996, 2997, 4995, 999] 3 Кажется, что здесь все последовательности сходятся к 9 , 99 , 999 , ... , при этом число девяток на единицу меньше числа цифр в исходном числе. Однако, продолжая исследование, находим примеры. которые опровер- гают это предположение: julia> for n in [1011,1026,1042,1056] println(go(n)) end BigInt[1011, 90, 81, 63, 27, 45, 9] BigInt[1026, 5175, 540, 495, 99] BigInt[1042, 1359, 8172, 5454, 909] BigInt[1056, 5445] Более того, мы находим примеры бесконечных последовательностей: [1012, 1089, 8712, 6534, 2178, 6534, 2178, ...] [1023, 2178, 6534, 2178, 6534, ...] Так мы обнаруживаем два числа 2178 и 6534 , которые постоянно пере- ходят друг в друга: next(2178) = 6534, то есть 8712 - 2178 = 6534 next(6534) = 2178, то есть 6534 - 4356 = 2178 Любопытно, что функция "сумма с реверсным"приводит эти числа к одному и тому же результату: 2178 + 8712 = 10890 6534 + 4356 = 10890 И, как следствие этого, верны равенства: 6534 = 3 * 2178 8712 = 2 * 4356 Возникает вопрос существует только два таких числа или есть еще по- добные пары чисел. Нужно заставить компьютер поискать их: 4 function find2(n) next(x) = abs(x - parse(BigInt, join(digits(x)))) map(x -> (x,next(x)), filter(x -> !ispal(x)&&next(next(x))==x, 1:n)) end julia> find2(10^6) 6-element Vector{Tuple{Int64, BigInt}}: (2178, 6534) (6534, 2178) (21978, 65934) (65934, 21978) (219978, 659934) (659934, 219978) Мы не только нашли три такие пары, но и можем теперь легко построить другие подобные им: (2178, 6534) (21978, 65934) (219978, 659934) (2199978, 6599934) (21999978, 65999934) ... Исчерпываются ли все такие пары этой последовательностью? Ответ, скорее всего, да, но мы пока не можем это доказать. Мы не можем также утверждать, что не существует циклов из троек, четверок, пятерок и так далее, хотя компьютер их не находит: function find3(n) next(x) = abs(x - parse(BigInt, join(digits(x)))) for a in filter(x -> !ispal(x), 1:n) b = next(a); c = next(b) if !ispal(b)&&!ispal(c)&&next(c)==a println((a,b,c)) end end 5 end julia> find3(10^7) Для четырех и пяти - аналогичный результат. То есть в пределах 10 7 ничего не найдено. После проведенного исследования новой функции "палиндромизации" , появилось много вопросов. Кроме перечисленных выше, интересно было бы также понять какие числа приводят к палиндрому, а какие к зацик- ливанию. Теперь немного математики. Пусть n, m ∈ N , будем обозначать через ˜ n, ˜ m - натуральные числа, которые получаются из n и m реверсом (за- писью цифр в обратном порядке в десятичной системе счисления). Предположим, что n ̸ = m, n ̸ = ˜ n, m ̸ = ˜ m и ( | n − ˜ n | = m | m − ˜ m | = n Невозможно чтобы выражения n − ˜ n и m − ˜ m имели одинаковые знаки (раскрывая модули приводим систему уравнений противоречию). Поэто- му, без ограничения общности, будем считать, n < ˜ n, m > ˜ m и система будет выглядеть так: ( ˜ n − n = m m − ˜ m = n или ( m + n = ˜ n m − n = ˜ m В реальных примерах, при помощи компьютера, мы получили дополни- тельные условия: m = 3 · n, ˜ n = 2 · ˜ m , которые к сожалению из наших уравнений напрямую не следуют. Поэтому сформулируем гипотезу: Если n, m ∈ N такие, что m + n = ˜ n и m − n = ˜ m , то m = 3 · n, ˜ n = 2 · ˜ m . 6 Добавление от 7 июня 2026 года. Гипотеза оказалась верной. Более того, оказалось, что для n, m ∈ N четыре условия: 1. m + n = ˜ n и m − n = ˜ m 2. 2 · ( m 2 + n 2 ) = ˜ m 2 + ˜ n 2 3. m = 3 · n, ˜ n = 2 · ˜ m 4. ˜ n = 4 · n, m = 3 · n эквивалентны и каждое из них задает одну и ту же последовательность пар ( n, m ) , которую мы и обнаружили: (2178, 6534),(21978, 65934),(219978, 659934),(2199978, 6599934),... Поскольку здесь ( n, ˜ m, m, ˜ n ) = ( n, 2 n, 3 n, 4 n ) , то все определяется одной последовательностью { n } чисел, заданной условием: ˜ n = 4 · n 2178,21978,219978,2199978,21782178,21999978,217802178,219999978,... Эта последовательность известна и хорошо изучена: [6] , [7] . 2. Параллелепипеды Эйлера в R 4 Прямоугольные параллелепипеды в R 3 , длины всех рёбер и диагоналей граней которых - натуральные числа, называются параллелепипедами Эйлера - [2]. Таким параллелепипедом, например, является параллелепипед с рёбра- ми 44 , 117 , 240 . 44 2 + 117 2 = 125 2 44 2 + 240 2 = 244 2 117 2 + 240 2 = 267 2 Однако, его главная диагональ d = √ 44 2 + 117 2 + 240 2 = √ 73255 = √ 5 · 7 2 · 13 · 23 не является натуральным числом. И на сегодняшний день неизвестно, существуют ли параллелепипеды Эйлера, у которых главная диагональ - натуральное число. 7 Задача нахождения параллелепипедов Эйлера с ребрами a, b, c сводится к решению системы уравнений      a 2 + b 2 = x 2 a 2 + c 2 = y 2 b 2 + c 2 = z 2 (1) в натуральных числах a,b,c,x,y,z. Если есть решение a, b, c - то a · k, b · k, c · k ( k = 1 , 2 , 3 , ... ) - тоже решения, порождаемые a, b, c . Поэтому, достаточно искать только те решения, для которых наиболь- ший общий делитель чисел a, b, c равен 1 (взаимно простые). Для нахождения и исследования параллелепипедов Эйлера используем следующую функцию на языке Julia: function getEulerBySum(sm) s(a) = sum(a.^2) int(a) = Int64(floor(a)) sqt(a) = int(sqrt(a)) for a in 1:div(sm,3), b in a:div(sm-a,2) c = sm-a-b ab = s([a,b]); bc = s([b,c]); ac = s([a,c]) if gcd(a,b,c)==1&&sqt(ab)^2==ab&&sqt(bc)^2==bc&&sqt(ac)^2==ac print((a, b, c)); print(string(" s = ",sm," = 24*",div(sm,24),"+",sm%24)) if isprime(sm) print(" - простое") end println("") end end end julia> for s in 1:10000 getEulerBySum(s) end (44, 117, 240) s = 401 = 24*16+17 - простое (240, 252, 275) s = 767 = 24*31+23 (85, 132, 720) s = 937 = 24*39+1 - простое (160, 231, 792) s = 1183 = 24*49+7 (140, 480, 693) s = 1313 = 24*54+17 (187, 1020, 1584) s = 2791 = 24*116+7 - простое 8 (1008, 1100, 1155) s = 3263 = 24*135+23 (429, 880, 2340) s = 3649 = 24*152+1 (832, 855, 2640) s = 4327 = 24*180+7 - простое (828, 2035, 3120) s = 5983 = 24*249+7 (780, 2475, 2992) s = 6247 = 24*260+7 - простое (195, 748, 6336) s = 7279 = 24*303+7 (1560, 2295, 5984) s = 9839 = 24*409+23 - простое Функция getEulerBySum нашла все взаимно простые решения системы (1) для которых s = a + b + c ≤ 10000 . Оказалось, что в половине случаев сумма s является простым числом. А при делении суммы s на 24 всегда получаются остатки ± 1 или ± 7 . Ниже перечислены все случаи параллелепипедов Эйлера, когда сумма измерений s - простое и s < 63000 : (44, 117, 240) s = 401 (85, 132, 720) s = 937 (187, 1020, 1584) s = 2791 (832, 855, 2640) s = 4327 (780, 2475, 2992) s = 6247 (1560, 2295, 5984) s = 9839 (1755, 4576, 6732) s = 13063 (1155, 6300, 6688) s = 14143 (2925, 3536, 11220) s = 17681 (2964, 9152, 9405) s = 21521 (7840, 9828, 10725) s = 28393 (7579, 8820, 17472) s = 33871 (8789, 10560, 17748) s = 37097 (935, 17472, 25704) s = 44111 (4900, 17157, 23760) s = 45817 (4599, 18368, 23760) s = 46727 (2964, 6160, 38475) s = 47599 (14112, 15400, 19305) s = 48817 (7920, 15232, 26649) s = 49801 (2163, 15840, 37100) s = 55103 (7800, 23751, 29920) s = 61471 По аналогии, назовем четверку натуральных чисел ( a, b, c, d ) параллеле- пипедом Эйлера для четырехмерного пространства R 4 , если существуют 9 натуральные x, y, z, t такие, что          a 2 + b 2 + c 2 = x 2 a 2 + b 2 + d 2 = y 2 a 2 + c 2 + d 2 = z 2 b 2 + c 2 + d 2 = t 2 (2) Первое, что хочется проверить, может быть здесь уже есть случаи с натуральной главной диагональю √ a 2 + b 2 + c 2 + d 2 . Перепишем нашу функцию следующим образом: function getEulerBySum4(sm) s(a) = sum(a.^2) int(a) = Int64(floor(a)) sqt(a) = int(sqrt(a)) for a in 1:div(sm,4), b in a:div(sm-a,3), c in b:div(sm-a-b,2) d = sm-a-b-c abc = s([a,b,c]); abd = s([a,b,d]); acd = s([a,c,d]); bcd = s([b,c,d]) if gcd(a,b,c,d)==1&&sqt(abc)^2==abc&&sqt(abd)^2==abd&& sqt(acd)^2==acd&&sqt(bcd)^2==bcd abcd = s([a,b,c,d]) print((a, b, c, d)) print(" d^2 = ",abcd) if sqt(abcd)==abcd print(" - квадрат, s = ",sm) else print(" - не квадрат, s = ",sm) end if isprime(sm) print(" - простое") end println("") end end end julia> for s in 1:4500 getEulerBySum4(s) end (49, 72, 72, 84) d^2 = 19825 - не квадрат, s = 277 - простое (21, 28, 120, 120) d^2 = 30025 - не квадрат, s = 289 (60, 105, 168, 280) d^2 = 121249 - не квадрат, s = 613 - простое 10 (313, 336, 336, 492) d^2 = 565825 - не квадрат, s = 1477 (237, 336, 336, 952) d^2 = 1188265 - не квадрат, s = 1861 - простое (136, 711, 1008, 1008) d^2 = 2556145 - не квадрат, s = 2863 (385, 792, 840, 1980) d^2 = 5401489 - не квадрат, s = 3997 (420, 728, 1365, 1560) d^2 = 5003209 - не квадрат, s = 4073 - простое Вычислений здесь больше, процесс медленнее. Натуральной главной диа- гонали и здесь пока не было найдено. Простые суммы всех измерений также встречаются примерно в половине случаев. Отметим еще, что здесь часто встречаются одинаковые ребра, хотя есть и все разные тоже. В книге Серпинского [3, стр 69, теорема 5] была найдена идея для бо- лее эффективного алгоритма вычисления параллелепипедов Эйлера в четырехмерном пространстве. В результате дополнительно к тем, что приведены выше, были найдены следующие четырехмерные прараллепипеды Эйлера: (595, 1428, 1560, 1560) d^2 = 7260409 - не квадрат, s = 5143 (1185, 1316, 1680, 1680) d^2 = 8780881 - не квадрат, s = 5861 -простое (585, 1008, 1456, 5460) d^2 = 33289825 - не квадрат, s = 8509 (1288, 2415, 4080, 4080) d^2 = 40783969 - не квадрат, s = 11863 -простое (880, 1155, 5040, 5544) d^2 = 58245961 - не квадрат, s = 12619 - простое (624, 2625, 3220, 6432) d^2 = 59019025 - не квадрат, s = 12901 (816, 1519, 6048, 6048) d^2 = 76129825 - не квадрат, s = 14431 - простое (828, 3773, 5544, 5544) d^2 = 76392985 - не квадрат, s = 15689 (1848, 3575, 4620, 7800) d^2 = 98380129 - не квадрат, s = 17843 (1059, 6944, 9408, 9408) d^2 = 226361545 - не квадрат, s = 26819 Ну что же, следует признать, что здесь практически все так же, как и в R 3 . Скорее всего, проблема несовместимости целочисленности диаго- налей ребер и его главной диагонали более глобальна и не зависит от размерности пространства. 3. Бесконечные суммы квадратов и кубов В связи с параллепипедами Эйлера из прошлого раздела возникла забав- ная идея попробовать строить параллелепипеды с натуральными диаго- налями бесконечно, постоянно увеличивая размерность пространства. 11 Например, можно начать с прямоугольника со сторонами 3 и 4 , диаго- наль которого равна 5 , поскольку 3 2 + 4 2 = 5 2 . Затем добавить третье число, а именно, наименьшее натуральное число x , такое что 3 2 + 4 2 + x 2 = y 2 Легко проверить подбором, что таким числом будет 12 , то есть мы по- лучаем 3 2 + 4 2 + 12 2 = 13 2 Число 13 - это уже диагональ трехмерного параллелепипеда (3 , 4 , 12) . Каким же будет следующее число z чтобы теперь уже сумма 3 2 + 4 2 + 12 2 + z 2 была квадратом? Если немного повычислять, то можно найти наимень- шее такое число z = 84 и получить равенство 3 2 + 4 2 + 12 2 + 84 2 = 85 2 Таким образом, мы получаем последовательность, которую подобным образом можно продолжать бесконечно: 3 , 4 , 12 , 84 , 132 , ... Я тут же написал простую программу для генерации начальных членов этой последовательности, function next(a) s(a) = sum(a.^2) int(a) = Int64(floor(a)) sqt(a) = int(sqrt(a)) ok(a) = sqt(a)^2==a sm = s(a) for x in 1:10^8 if ok(sm+x^2) return x end end end 12 julia> next([3,4,12,84]) 132 julia> next([3,4,12,84,132]) 12324 julia> next([3,4,12,84,132,12324]) 1836 julia> next([3,4,12,84,132,12324,1836]) 105552 julia> next([3,4,12,84,132,12324,1836,105552]) 255084 и, при ее помощи, вычислил ее следующие элементы: 3 , 4 , 12 , 84 , 132 , 12324 , 1836 , 105552 , 255084 , 197580 , 10358340 , 13775220 , ... Последовательность не всегда возрастает (12324 > 1836) , однако в итоге ее элементы достаточно быстро растут. При поиске на сайте https://oeis.org я обнаружил, что эта последова- тельность зарегистирирована под номером A018930 - [4]. Там приводится список из 100 элементов и опубликована более эффек- тивная программа для дальнейшего вычисления новых членов последо- вательности. Здесь у меня появилась мысль попробовать аналогичную идею для ку- бов, тем более, что есть замечательное равенство, с которого можно на- чать процесс: 3 3 + 4 3 + 5 3 = 6 3 (3) Проблема в том, что не получится добавлять к сумме только по одному кубу, поскольку уравнение a 3 + b 3 = c 3 неразрешимо в целых числах (частный случай великой теоремы Ферма). Поскольку в равенстве (3) мы к 3 3 добавляем не один куб, а сразу сумму двух 4 3 + 5 3 , то надо точно также поступать и далее на каждом шаге. Итак, сумму каких двух кубов нужно добавить к 3 3 + 4 3 + 5 3 чтобы в результате получился куб? Простая программа, подобная той, что была для квадратов, дает нам варианты: 13 (1, 8) (8, 10) (20, 36) (32, 33) (36, 48) (51, 120) (68, 228) (72, 74) ... Естественным решением является выбирать наименьшее, то есть (1 , 8) . Понятие "наименьшее"придется уточнить. Все тщательно проанализиро- вав, я выбрал такое определение, вводящее линейную упорядоченность множества пар. Определение 1 . Пара ( a, b ) меньше пары ( c, d ) , если a 3 + b 3 < c 3 + d 3 или, если a 3 + b 3 = c 3 + d 3 и a + b < c + d . Корректность данного определения будет строго доказана позднее. Счи- таем, что a ≤ b и именно так добавляем пару в последовательность сна- чала a потом b . Итак, 3 3 + 4 3 + 5 3 + 1 3 + 8 3 = 9 3 Следующими кандидатами на продолжение последовательности 3 , 4 , 5 , 1 , 8 , ... являются (12, 15) (30, 54) (54, 72) (55, 116) (58, 255) (102, 342) (108, 111) ... В соответствии с определением 1 наименьшей парой будет (12 , 15) , то есть 3 3 + 4 3 + 5 3 + 1 3 + 8 3 + 12 3 + 15 3 = 18 3 14 И так далее. В результате получаем новую последовательность a n , n = 1 , 2 , 3 , ... , которой нет в энциклопедии https://oeis.org . 3, 4, 5, 1, 8, 12, 15, 3, 10, 18, 21, 14, 34, 2, 17, 16, 23, 8, 34, 30, 40, 36, 48, 12, 40, 72, 84, 14, 84, 21, 70, 48, 147, 30, 164, 50, 67, 31, 95, 84, 159, 63, 129, 14, 189, 109, 437, 32, 457, 94, 150, 30, 128, 219, 538, 430, 461, 186, 384, 64, 204, 269, 435, 69, 243, 116, 150, 422, 451, 756, 973, 186, 570, 227, 277, 240, 905, 144, 1455, 625, 1200, 320, 535, 72, 464, 139, 954, 90, 965, 339, 394, 891, 1215, 675, 1026, 384, 642, 9, 262, 620, 1674, 775, 1178, 118, 279, 584, 1100, 769, 800, 1731, 2901, 1408, 1632, 770, 931, 861, 2238, 322, 1134, 591, 2153, 882, 1449, 270, 343, 944, 1335, 129, 1054, 953, 2007, 352, 1122, 1112, 1678, 194, 1276, 4, 944, 242, 2057, 533, 2665, 421, 445, 50, 1252, 1328, 1854, 288, 615, 92, 1908, 2260, 2320, 900, 2010, 1034, 1341, 915, 1336, 2309, 2811, 165, 478, 2336, 3476, 1435, 3730, 770, 1792, 1967, 2324, 952, 1337, 1240, 1456, 143, 3081, 195, 2210, 3910, 4485, 90, 1548, 963, 2520, 1149, 2280, 1407, 4690, 497, 4060, 1637, 1918, 2277, 7755, 6206, 8054, 278, 6100, 2819, 8992, 1135, 15201, 2541, 7042, 2300, 3979, 2798, 6304, 3435, 9357, 725, 5926, 1192, 1259, 6718, 7874, 4776, 5462, 3048, 5484, 729, 1542, 2320, 10170, 1880, 3095, 4185, 10680, 220, 10935, 2055, 3220, 5432, 6818, 6310, 8185, 1512, 2786, 783, 6420, 1800, 6702, 10087, 13755, 623, 16074, 1116, 4650, 1536, 3280, 2900, 5270, 7690, 8000, 2334, 9666, 4470, 5530, 2254, 7938, 4137, 15071, 6174, 10143, 1890, 2401, 6608, 9345, 903, 7378, 6671, 14049, 2464, 7854, 3544, 9905, 7311, 17052, 2888, 4268, 4822, 8212, 13664, 19642, 3248, 5880, 294, 5929, 5166, 10919, 3537, 5751, 3141, 5803, 509, 22472, 6730, 12635, 2893, 8107, 7766, 9453, 5949, 19359, 7359, 10758, 1590, 4584, 3567, 4722, 5913, 10074, 2199, 4497, 3090, 7335, 718, 4185, 3287, 11281, 8753, 11846, 4084, 13215, 2346, 5862, 3024, 12264, 8, 8992, 7186, 9140, 5316, 13733, 2989, 14569, 308, 4125, 6840, 7866, 7746, 10190, 16945, 21879, 3762, 12220, 380, 29988, 2688, 3114, 6717, 16800, 5523, 15057, 2751, 28056, 4123, 20181, 4059, 19205, 2261, 11851, 925, 8435, 4700, 10951, 1880, 11233, 6895, 7056, 26657, 30894, 1647, 18666, 828, 13018, 21761, 44494, 4530, 22284, 8990, 30876, 9413, 11899, 270, 7860, 18328, 22041, 29072, 41791, 4503, 19592, 4065, 37782, 13680, 17920, 15155, 27580, 1365, 41850, 4394, 37349, 35152, 50531, 29913, 39988, 20007, 27768, 12766, 24687, 53006, 15 60801, 2622, 9189, 1143, 22785, 8883, 33300, 20142, 25191, 9600, 11649, 24009, 33118, 9260, 29831, 5632, 21696, 1656, 19848, 4428, 14769, 4551, 6492, 8787, 13812, 1287, 14337, 20007, 29403, 4728, 13131, ... А также возрастающую последовательность b k , k = 1 , 2 , 3 , ... b 3 k = a 3 1 + a 3 2 + ... + a 3 2 k − 1 3, 6, 9, 18, 19, 28, 40, 41, 44, 50, 60, 72, 76, 112, 126, 133, 178, 216, 219, 225, 252, 264, 293, 479, 590, 594, 596, 723, 822, 852, 856, 900, 906, 908, 971, 1314, 1350, 1356, 1481, 1850, 2025, 2040, 2048, 2115, 2180, 2187, 2349, 2430, 2448, 2449, 2697, 2790, 2791, 2855, 2894, 3776, 3936, 3963, 4200, 4228, 4410, 4473, 4474, 4527, 4546, 4686, 4708, 4798, 4828, 4840, 4961, 5207, 5209, 5233, 5337, 5340, 5420, 5680, 5770, 5805, 5836, 6156, 6157, 6605, 7000, 7042, 7175, 7196, 7228, 7410, 7475, 8280, 8298, 8379, 8442, 8911, 9184, 9229, 10813, 12653, 13109, 14426, 18678, 19021, 19090, 19336, 20074, 20245, 20248, 20872, 21078, 21222, 21225, 21985, 22010, 22865, 23670, 23695, 23975, 24430, 24444, 24591, 24759, 26593, 28422, 28464, 28480, 28550, 28940, 29300, 29400, 29596, 30870, 31311, 31318, 31689, 31822, 32802, 32956, 33265, 34804, 34832, 35014, 37576, 37632, 37681, 38016, 38070, 38122, 40565, 41030, 41140, 41397, 42801, 43098, 43116, 43143, 43362, 43380, 43455, 43468, 43726, 44129, 44532, 44568, 44880, 45000, 45186, 45629, 46123, 46134, 46260, 46496, 48750, 49012, 52500, 52506, 53109, 53529, 55986, 56854, 57582, 57750, 57810, 57951, 58092, 58159, 62586, 63135, 63319, 70624, 71362, 73284, 73440, 73470, 74497, 79948, 80343, 83040, 83440, 84595, 87880, 90077, 96668, 99801, 100776, 101335, 112248, 112269, 112581, 113562, 114183, 114246, 115513, 116192, 116448, 116640, 116721, 116730, 116811, 116883, 117693, 117750, ... Основная формула описывающая процесс порождения последовательно- стей a k и b k : b 3 k +1 = b 3 k + a 3 2 k + a 3 2 k +1 (4) Здесь b 1 = a 1 = 3 , k = 1 , 2 , 3 , ... и на каждом шаге a 2 k и a 2 k +1 выбира- ются таким образом, чтобы добавляемая сумма s k = a 3 2 k + a 3 2 k +1 была наименьшей, а при равных s k выбираем ту, для которой меньше сумма a 2 k + a 2 k +1 . 16 Содержательный смысл этих требований можно понять на примере так называемой последовательности чисел такси [5]. Возьмем, например, пер- вое число 1729 = 1 3 + 12 3 = 9 3 + 10 3 По определению 1, пара (1 , 12) < (9 , 10) , так как 1 + 12 < 9 + 10 . Теорема 1 . Последовательности a k и b k , порождаемые формулой (4) , - бесконечны и в последовательности a k не может быть совпадающих добавляемых пар элементов. Доказательство . b k - бесконечно возрастает, поэтому бесконечность по- следовательностей не требует формального доказательства. Что касает- ся a k , то если бы произошло совпадение пар ( a 2 k , a 2 k +1 ) для разных k , то последовательность a k , начиная с некоторого k , повторяла бы одну и ту же цепочку элементов. Это противоречит формуле (4) : a 3 2 k + a 3 2 k +1 = b 3 k +1 − b 3 k > ( n + 1) 3 − n 3 = 3 n 2 + 3 n + 1 Левая часть неравенства для некоторых k константа, а правая неогра- ничена и стремится к бесконечности. Теорема 2 . Пусть a, b, c, d - разные натуральные числа такие, что a < b и c < d . И пусть выполняется равенство: a 3 + b 3 = c 3 + d 3 (5) Тогда равенство a + b = c + d невозможно. Если же a + b < c + d , то a · b < c · d и a 2 + b 2 < c 2 + d 2 . Доказательство . Допустим, что a + b = c + d . Тогда ( a + b ) 3 = ( c + d ) 3 то есть a 3 + b 3 + 3 ab ( a + b ) = c 3 + d 3 + 3 cd ( c + d ) откуда следует, что a · b = c · d . Последнее означает, что a, b, c, d разные делители некоторого числа n = a · b = c · d . То есть, либо a < c < d < b , либо c < a < b < d . С другой стороны из равенства (5) получаем ( a + b )( a 2 − ab + b 2 ) = ( c + d )( c 2 − cd + d 2 ) 17 откуда следует, что a 2 + b 2 = c 2 + d 2 , а это противоречит доказанным ранее неравенствам, например, b 2 − d 2 = c 2 − a 2 ⇒ ( b − d )( b + d ) = ( c − a )( c + a ) ⇒ b + d = c + a Подобным же образом доказывается и вторая часть теоремы a + b < c + d ⇒ ( a + b )(( a + b ) 2 − 3 ab ) = ( c + d )(( c + d ) 2 − 3 cd ) ⇒ ( a + b ) 2 − 3 ab > ( c + d ) 2 − 3 cd ⇒ 3( cd − ab ) > ( c + d ) 2 − ( a + b ) 2 > 0 ⇒ cd > ab И так далее. Последняя версия программы для вычисления элементов последовательности a k : function next(list) int(a) = Int64(floor(a)) sbt(a) = int(cbrt(a)) int2(a) = Int64(ceil(a)) sbt2(a) = int2(cbrt(a)) s(a) = sum(a.^3) ok(a) = sbt(a)^3==a function points(m,n) # список точек m<=x^3+y^3<=n l = Vector{Vector{Int64}}() a = 1; b = sbt2(m-1) while a^3+b^3<=n while a^3+b^3<=n push!(l,[a^3+b^3,a+b,a,b]) b+=1 end a+=1; b = max(a,sbt2(m-a^3)) end sort!(l) end sb = s(list); b = sbt(sb); rep = true m = (b+1)^3-sb; n = m+int(1000*m/log(m)^3) while rep for l in points(m,n) if ok(sb+l[1]) rep = false 18 push!(list,l[3],l[4]) return list end end m = n; n = m+int(1000*m/log(m)^3) end end function get(list,n) # генерация списка, n - шагов if n > 0 println(list) get(next(list),n-1) else return list end end Ссылки [1] https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB% D0%B5%D0%BC%D0%B0_196 [2] https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%B2%D0%B5%D1%80% D1%88%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BA%D1%83%D0%B1%D0%BE%D0% B8%D0%B4 [3] Серпинский В. Пифагоровы треугольники / пер. с польск. под ред. и с прим. С. И. Зетеля. — М. : Учпедгиз, 1959. https://www.mathedu.ru/ text/serpinskiy_pifagorovy_treugolniki_1959/p0/ [4] https://oeis.org/A018930 [5] https://oeis.org/A001235 [6] R. Webster and G. Williams, On the Trail of Reverse Divisors: 1089 and All that Follow, Mathematical Spectrum, 45 (2012/2013), 96–102. [7] https://oeis.org/A008918 19