maxal Это уже будут три буквы. Первая буква - решение существует, вторая буква - оно занимает столько-то бит, станет известно в каком масштабе, какой двоичной разрядности нужно вести поиск. И третья буква - это уже ответ, после которого становится бессмысленным поиск решения. Я разрабатываю метод перебора. Для этого нужно составить различные программы работы с числами представленными через разложение на простые множители. Идея перебора состоит в том, чтобы найти подходящее основание DENOM которое будет использовано в качестве базового знаменателя. Поиск пар {x,y} идёт по квадратам. Сторона квадрата {x,y} равна DЕNOM. Рассматриваются остатки от деления чисел x и y на DENOM. Для всех пар x,y которые дают остатки от деления на DЕNOM можно заранее исключить пары, которые не могут быть решениями. Чем больше доля таких исключённых из поиска пар, тем эффективнее найдено основание DENOM. Например, для DENOM=124740 коэффициент сокращения поиска равен 629. То есть, вместо (124740*124740) пар, количество необходимое подвергать проверке 24739344 пар, что в 629 раз меньше. По мере увеличения основания DENOM наблюдается рост коэффициента сокращения. В качестве критерия исключения пары из поиска являются соотношения, связанные с разложением на множители чисел x и y, которые входят в состав DENOM. Если выражение 9xy имеет в составе некоторые множители входящие в состав DENOM, то выражение 1+x^2+x^3+y^2 обязано делиться без остатка на этот множитель, в противном случае пара исключается из поиска. Если рассматривать отрицательные x, то выражение 1+x^2-x^3+y^2 также должно делиться без остатка. Для того чтобы перейти к большим значениями DENOM, нужно исключить затратную операцию разложения на множители, которая осуществляется при переборе x от 0 до DENOM. Для этого числа {x,y} нужно представлять в виде разложение на простые множители и итерацию производить в этом представлении на простые множители, а не в двоичном. Если нашлась пара, которая прошла проверку на исключение, то её нужно проверить на делимость (1+x^2+x^3+y^2)/(9xy) на множестве других квадратов, путём добавления n*DENOM. Вот такой был мой план. Но если появится ответ или подсказка, он вероятно изменится или просто отложится без надобности.
|