Там всё гораздо менее благоприятно, чем кажется. При сложении в столбик, вы считаете цифры по порядку. А при вычислении корня, всё муторнее намного. Метод о котором вы говорите основан на школьной формуле S=(X+Y)^2=X^2+Y^2+2XY, где S число, из которого вычисляете корень.
В общем, первым делом определяете, сколько цифр до запятой будет в результате, их примерно вдвое меньше. Если число 0-99, то корень из него 0-9, если число 100-9999, то корень 10-99, если число 10000-999999, то корень 100-999, и т.д.
Ну а дальше, перебираете первую цифру результата (а можно и сразу несколько), дописываете нужное число нулей, возводите в квадрат, сравниваете. Нужно подобрать первую цифру так, чтобы квдарат получился меньше или равна, а квадрат следующей за ней цифры уже давал бы перебор.
Как только угадали, начинаете угадывать следующие за ней цифры по порядку, пока не надоест (смотря какая нужна точность). Можно даже выписанной выше формулой не пользоваться. А можно ипользоваться, тогда может придётся чуть меньше считать при переборе. Для этого пользуетесь квадратным уравнением: Y^2+Y*2X=(S^2-X^2). Где S - исходный квадрат, X - цифры, которые вы уже угадали, с нужным количеством дописанных нулей, Y - цифры, которые ещё предстоит угадать. Только решаете это уравнение не в лоб, а так же, перебором первой цифры Y. Потом угаданную цифру включаете в X и так далее все последующие цифры.
Уже по количеству цифр определяем, что результат трёхзначный (100^2=10000 - меньше, а 1000^2=1000000 - перебор, значит результат трёхзначный: 101-999). Перебираем первую цифру.
300^2=90000 - меньше 400^2=160000 - перебор.
Значит, результат лежит в диапазоне 301-399, X=300.
Записываем уравнение:
Y^2+Y*600=29025
Y=40: Y^2+Y*600=25600 - меньше Y=50: Y^2+Y*600=32500 - перебор
no subject
Date: 2013-10-25 10:48 pm (UTC)но вообще http://bit.ly/17jXycH конечно же )
no subject
Date: 2013-10-25 11:08 pm (UTC)завтра с утречка разберу.
no subject
Date: 2013-10-26 09:00 am (UTC)В общем, первым делом определяете, сколько цифр до запятой будет в результате, их примерно вдвое меньше. Если число 0-99, то корень из него 0-9, если число 100-9999, то корень 10-99, если число 10000-999999, то корень 100-999, и т.д.
Ну а дальше, перебираете первую цифру результата (а можно и сразу несколько), дописываете нужное число нулей, возводите в квадрат, сравниваете. Нужно подобрать первую цифру так, чтобы квдарат получился меньше или равна, а квадрат следующей за ней цифры уже давал бы перебор.
Как только угадали, начинаете угадывать следующие за ней цифры по порядку, пока не надоест (смотря какая нужна точность). Можно даже выписанной выше формулой не пользоваться. А можно ипользоваться, тогда может придётся чуть меньше считать при переборе. Для этого пользуетесь квадратным уравнением: Y^2+Y*2X=(S^2-X^2). Где S - исходный квадрат, X - цифры, которые вы уже угадали, с нужным количеством дописанных нулей, Y - цифры, которые ещё предстоит угадать. Только решаете это уравнение не в лоб, а так же, перебором первой цифры Y. Потом угаданную цифру включаете в X и так далее все последующие цифры.
no subject
Date: 2013-10-26 09:13 am (UTC)Уже по количеству цифр определяем, что результат трёхзначный (100^2=10000 - меньше, а 1000^2=1000000 - перебор, значит результат трёхзначный: 101-999). Перебираем первую цифру.
300^2=90000 - меньше
400^2=160000 - перебор.
Значит, результат лежит в диапазоне 301-399, X=300.
Записываем уравнение:
Y^2+Y*600=29025
Y=40: Y^2+Y*600=25600 - меньше
Y=50: Y^2+Y*600=32500 - перебор
Результат лежит в диапазоне 341-349. Теперь X=340
Снова уравнение:
Y^2+Y*680=3425
Уравнение уравнивается при Y=5.
Итак, корень из 119025 равен 345.
no subject
Date: 2013-10-26 08:56 pm (UTC)