Метод bot -- красивая "обертка"
Не только. Если его сравнивать с методом перебора остатков
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
, то на поиск решения тратится примерно в два раза меньше операций. Правда, сама операция становится другой, так что общие трудозатраты вполне могут быть соизмеримы.
(Оффтоп)
На примере общего уравнения
![$py=x^2+3$ $py=x^2+3$](https://dxdy-04.korotkov.co.uk/f/f/d/e/fde97bb7ee585a33cc5ee2915c83514882.png)
(
![$p=3k+1$ $p=3k+1$](https://dxdy-02.korotkov.co.uk/f/9/b/4/9b4739ed1018be8cb12cc80d39a5fc3382.png)
--- простое число) это выглядит так. Перебирая
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
по первому методу и проверяя делимость
![$x^2+3$ $x^2+3$](https://dxdy-02.korotkov.co.uk/f/d/7/8/d78f1a72caf69d7049d2a7230b933f5882.png)
на
![$p$ $p$](https://dxdy-03.korotkov.co.uk/f/2/e/c/2ec6e630f199f589a2402fdf3e0289d582.png)
, мы сделаем примерно
![$p/2$ $p/2$](https://dxdy-03.korotkov.co.uk/f/a/3/1/a31210dbef52d1a918c33ba427d91a5082.png)
тестов на делимость, пока не наткнёмся на нужный
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
. Перебирая
![$y$ $y$](https://dxdy-02.korotkov.co.uk/f/d/e/c/deceeaf6940a8c7a5a02373728002b0f82.png)
по методу
bot и проверяя, будет ли
![$py-3$ $py-3$](https://dxdy-02.korotkov.co.uk/f/d/b/1/db16843d8a1c4335c211c72e40143aa082.png)
точным квадратом, мы совершим примерно
![$p/4$ $p/4$](https://dxdy-01.korotkov.co.uk/f/c/b/9/cb9a141bad38b05eeccb9725ff53febb82.png)
тестов на "быть точным квадратом", пока не обнаружим нужный
![$y$ $y$](https://dxdy-02.korotkov.co.uk/f/d/e/c/deceeaf6940a8c7a5a02373728002b0f82.png)
. Что лучше? При маленьких
![$p$ $p$](https://dxdy-03.korotkov.co.uk/f/2/e/c/2ec6e630f199f589a2402fdf3e0289d582.png)
оба метода хороши, а при больших
![$p$ $p$](https://dxdy-03.korotkov.co.uk/f/2/e/c/2ec6e630f199f589a2402fdf3e0289d582.png)
оба плохи за счёт большого количества тестов (несмотря на то, что тест каждого типа стоит дешево).
-- Вт май 05, 2015 15:44:08 -- Просто они не такого уровня общности как, скажем, корни квадратного уравнения.
Я бы сказал "не такого уровня сложности". Плюс к этому, алгоритмы становятся слишком трудоёмкими с вычислительной точки зрения. Алгоритм Евклида для решения диофантовых уравнений
![$ax+by=c$ $ax+by=c$](https://dxdy-03.korotkov.co.uk/f/2/3/d/23d94a3dad5032d9bc1ddf8e0e5b752382.png)
--- приятное и, похоже, единственное исключение.