.
Алгоритм выведения квадратного корня


    Здравствуй! Сегодня я покажу тебе как разработать несложный алгоритм
для выведения корня квадратного из целого числа используя JavaScript.
Это конечно не полноценная замена функции Math.sqrt(), потому как функция
не способна работать с дробными числами, однако если тебе не лень
вспоминать математику, или задание в учебном заведении дали, то рекомендую
все же прочесть.

    Когда я учился в школе мы часто юзали таблицы Барлоу и калькуляторы
для вычисления корня квадратного. В те времена я и не задумывался как
машина вычисляет эти значения. Однако предыдущая статья немного пособила
на изучение вопроса и написание этой.
    Есть несколько методов извлечения квадратного корня, о них можно
узнать здесь(wikipedia).
    Я предлагаю воспользоваться следующим методом: путем простых расчетов
и учета совпадений можно вывести что если число из которого извлекают
квадратный корень будет больше либо равно 16, то этот самый корень всегда
будет находиться в одной четвертой числа. То есть если например нам нужно
найти корень из 25, то мы разделим без остатка 25 на 4, - получится 6.
Далее в ряду цифр (1,2,3,4,5,6) то возводим в квадрат каждое из этих чисел и
выбираем совпавшее.
    Нужно добавить что начиная с 16 корень не может быть меньше 4. Поэтому
искать нужно по сути в трех числах (4,5,6). Конечно большие числа расчитывать
таким методом трудновато, но для машины это сущий пустяк. Ведь даже из числа
1048576 корень был извлечен за доли секунды!
    Думаю хватит грузить математикой и пора набросать небольшую схемку
алгоритма:
Планграфик
    Думаю теперь все предельно ясно, поэтому можно уже приступить к
реализации.
   Прежде всего создай html форму. Нужно только два компонента -
textarea и button. Далее переводим наш алгоритм в JavaScript
заклинания. Для ясности приведу пример с числом меньшим чем 16:

function koren(x) { var res; if(x<16){ for(i=1;i<=x;i++){ res=x/i; if(res==i){ return i; break; } } }

    Тут функции koren передается аргумент х(из которого нужно
извлечь корень). Далее создается переменная res,служащая для
проверки совпадений. И цикл который обрывается при найденном
совпадении чисел.
    То же самое нужно проделать и с другим условием, в котором
мы экономим время четвертовав число:

else { var areol = x/4; for(i=4;i<=areol;i++){ res = x/i; if(i == res){ return i; break; } } }

    Переменную areol используем для хранения четверти числа. А остальное
все такое же элементарное как и в прошлом куске кода.
    Ниже функция представлена полностью. Чтобы использовать её нужно
прописать koren(x),где х твое значение.

function koren(x) { var res; if(x<16){ for(i=1;i<=x;i++){ res=x/i; if(res==i){ return i; break; } } } else { var areol = x/4; for(i=4;i<=areol;i++){ res = x/i; if(i == res){ return i; break; } } } }

На этом пока всё. Успехов!

Пример К списку статей