Там всё гораздо менее благоприятно, чем кажется. При сложении в столбик, вы считаете цифры по порядку. А при вычислении корня, всё муторнее намного. Метод о котором вы говорите основан на школьной формуле 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 и так далее все последующие цифры.
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 и так далее все последующие цифры.