Естественно. Protiv loma net priyoma. На обычном лаптопе с Матлабом вот этот код исполняется за 3 секунды:
biden=10000;
for x=10001:50000
for y=10001:50000
harris=abs(3*x*(x-1)/(y*(y-1))-1);
if abs(harris)<biden
biden=harris;
fprintf('%5d %5d %30.20f\n',x,y,biden);
end
end
end
Далее смотрим за соотношением x(n+1)/x(n) и наблюдаем, что оно достаточно быстро сходится к чему-то типа 3.73202614379085
По взгляду на цифирки ясно, что это просто
2+sqrt(3)=3.732050807568877
Стало быть, скорее всего, иксы описываются какой-то рекуррентной последовательностью, где
2+sqrt(3) -- наибольший корень соответствующего характеристического многочлена.
Далее, подбираем коэффициенты многочлена и убеждаемся, что рекуррентная последовательность вида
x(n)=5x(n-1)-5x(n-2)+x(n-3)
работает на всех полученных результатах. А это, в свою очередь, формирует базис индукции, после чего в лоб переносится на следующие члены.
думаю, что это просто апроксимация. формула не получена аналитическим путем. она проваливается после n=17, не дает всех решений, многие решения пропущены (например, x=179006125, y=310047703), формула дает ненатуралтьные числа (n = 26, x=78443478040201.9) и показывает сомнительные (для меня) решения (n=18 2084377906, y=???)
мой алгоритм работает в n/миллион раз быстрее (для n=1000000) поэтому все очень быстро проверил. хотя, может быть, и ошибся
кому не лень, может проверить (C#)
long MAX = 10000000000000;
//gosha algorithm
DateTime start = DateTime.Now;
double x, ch;
for (long N = 1; N < MAX; N++)
{
ch = (1 + N + Math.Sqrt(3 * Math.Pow(N, 2) + 1));
x = ch / 2;
if (ch % 2 == 0)
Console.WriteLine("N={0}, x={1}, y={2}", N, x, x + N);
}
DateTime end = DateTime.Now;
Console.WriteLine("gosha calculation total time: " + (end - start).TotalSeconds);
---------------------------------------------------------------
//jsjs formula
double biden = Math.Sqrt(3);
for (int n = 1; n < 50; n++)
{
double x = (6 + (3 + biden) * Math.Pow(2 + biden, n - 1) + (3 - biden) * Math.Pow(2 - biden, n - 1)) / 12;
Console.WriteLine("n={0}, x={1} ", n, x);
}
решения по jsjs формуле (мое программрование)
n = 1, x=1
n = 2, x=2
n = 3, x=6
n = 4, x=21
n = 5, x=77
n = 6, x=286
n = 7, x=1066
n = 8, x=3977
n = 9, x=14841
n = 10, x=55386
n = 11, x=206702
n = 12, x=771421
n = 13, x=2878981
n = 14, x=10744502
n = 15, x=40099026
n = 16, x=149651601
n = 17, x=558507377
n = 18, x=2084377906
n = 19, x=7779004246
n = 20, x=29031639077
n = 21, x=108347552061
n = 22, x=404358569166
n = 23, x=1509086724602
n = 24, x=5631988329241
n = 25, x=21018866592361
n = 26, x=78443478040201.9
n = 27, x=292755045568446
n = 28, x=1.09257670423358E+15
n = 29, x=4.07755177136587E+15
n = 30, x=1.52176303812299E+16
n = 31, x=5.67929697535538E+16
n = 32, x=2.11954248632985E+17
n = 33, x=7.91024024778387E+17
n = 34, x=2.95214185048056E+18
n = 35, x=1.10175433771439E+19
n = 36, x=4.11180316580949E+19
n = 37, x=1.53454583255236E+20
n = 38, x=5.72700301362848E+20
n = 39, x=2.13734662219616E+21
n = 40, x=7.97668618742177E+21
n = 41, x=2.97693981274909E+22
n = 42, x=1.11100906322542E+23
n = 43, x=4.14634227162677E+23
n = 44, x=1.54743600232817E+24
n = 45, x=5.77510978214999E+24
n = 46, x=2.15530031262718E+25
n = 47, x=8.04369027229371E+25
n = 48, x=3.00194607765477E+26
n = 49, x=1.12034152833897E+27
--------------
Это была формула для n-go члена рекуррентной последовательности x(n)=5x(n-1)-5x(n-2)+x(n-3), которая, как оказалось, образует всего лишь *подмножество* всех решений.
Ненатуральных чисел эта формула, однако, всё же не даёт; просто там у Вас видимо, недостаточная точность начинается для больших значений "n". Конкретно на Матлабе со 100 десятичными знаками имеем:
jsjs wrote: 11 Jan 2021 04:00
x=2084377906
y=3610248435
это пара чисел годится. у мeня тоже такая есть. я ее сперва не нашел потому, что "прогу остановил на полпути". большое число.
сейчас опять запустил прогу, но подольше. там эти числа есть. файл приаттачил, но он опять не полный ("прогу остановил на полпути")
на мой поверхностный взгляд, у вас много пропущенных решений после n=17. я приводил пример. см. мой файл.
вопрос: как вы получили эту формулу для х? с помощью пера и бумаги или компьютер подсказал/аппроксимировал?
You do not have the required permissions to view the files attached to this post.
jsjs wrote: 11 Jan 2021 04:00
x=2084377906
y=3610248435
это пара чисел годится. у мeня тоже такая есть. я ее сперва не нашел потому, что "прогу остановил на полпути". большое число.
сейчас опять запустил прогу, но подольше. там эти числа есть. файл приаттачил, но он опять не полный ("прогу остановил на полпути")
на мой поверхностный взгляд, у вас много пропущенных решений после n=17. я приводил пример. см. мой файл.
вопрос: как вы получили эту формулу для х? с помощью пера и бумаги или компьютер подсказал/аппроксимировал?
Если есть линейная рекуррентая последовательность, то ее общий член -- это линейная комбинация степенных функций от корней характеристческого многочлена. Коэффициенты этой линейной комбинации вычисляются как решение системы линейных уравнений, построенной с помощью первых нескольких членов этой самой рекуррентной последовательности. Вот гляньте сюда: https://en.m.wikipedia.org/wiki/Recurrence_relation
Кстати, это просто дискретный аналог линейных дифуров -- там тоже решение будет линейной комбинацией экспонент (вместо степенных функций) с показателями взятыми из корней характеристического многочлена.
jsjs, понял, что это формула получена не "на кончике пера" и думаю, что ее нельзя использовать как общее решение. она не находит всех пар чисел. она верна для малых n. и это не аналитическое решение. это - аппроксимация. это формула не работает для всех n. согласны?
взял 2 последовательных ваших решения
n = 17, x=558507377
n = 18, x=2084377906
у меня между этими числами (558507377 и 2084377906) есть еще около 300 решений (правильных пар чисел, см. ниже), но по вашей формуле они отсутсвуют.
мне просто было интересно, можно ли это уравнение решить аналитически? похоже, что нет
у вас был правильный алгоритм в начале, но он был слишком медленный - цикл в циклe (n^2). я предложил аналитическое решение через параметр - просто цикл (n). это в миллион раз быстрее (для n=миллион) [или одна десятая секунды против суток вычислений] и в миллиард раз быстрее (для n=миллиард)
на мой взгляд, перебор - это более правильное решение, чем аппроксимация.
и в том, и в другом случае используется компьютер, но перебор дает все решения, а аппроксимация - только избранные
вот список обещанных пропущенных решений между n=17 и 18 (между n=18 и 19 их должно быть еще больше)
Гоша Хороший wrote: 11 Jan 2021 07:43
jsjs, понял, что это формула получена не "на кончике пера" и думаю, что ее нельзя использовать как общее решение. она не находит всех пар чисел. она верна для малых n. и это не аналитическое решение. это - аппроксимация. это формула не работает для всех n. согласны?
взял 2 последовательных ваших решения
n = 17, x=558507377
n = 18, x=2084377906
у меня между этими числами (558507377 и 2084377906) есть еще около 300 решений (правильных пар чисел, см. ниже), но по вашей формуле они отсутсвуют.
мне просто было интересно, можно ли это уравнение решить аналитически? похоже, что нет
...
Про общее решение я не думал -- моя рекуррентная формула для "ветки" решений, которая является (как Вы установили) подмножеством всех решений. Ветка построена по индукции (рекурентно) из начального десятка решений. После n=17, как Вы установили, начинают расти другие ветки -- или даже целый "куст".
Существуют ли 8 различных натуральных чисел a, b, c, d, e, f, g, h что справедливо равенство (а+b+c+d+e+f+g+h) / (1/a + 1/b +1/c + 1/d + 1/e + 1/f + 1/g + 1/h) = 2022 ?
Задачка с олимпиады 8-го класса. Решение аналитическим методом.
lexell wrote: 11 Feb 2022 19:33
Существуют ли 8 различных натуральных чисел a, b, c, d, e, f, g, h что справедливо равенство (а+b+c+d+e+f+g+h) / (1/a + 1/b +1/c + 1/d + 1/e + 1/f + 1/g + 1/h) = 2022 ?
Задачка с олимпиады 8-го класса. Решение аналитическим методом.