Всё гораздо проще, нет необходимости прибегать к компьютерным технологиям, достаточно уметь складывать и вычитать и можно вычислять корни любых степеней. Правда первоклассники ещё не имеют понятия о степенях и корнях (кроме как о корнях растений). Компьютер и самые мощные вычислительные машины и комплексы способны только прибавлять и отнимать по единице с огромной скоростью, все остальные математическим способности заложены в них программистами, разложившими все функции на операции сложения и вычитания. Вычисление корней любых степеней с любой точностью тоже сводиться к простым операциям сложения и вычитания методом последовательных приближений (МПП) и или по научному методом итераций (специальный термин чтобы было не понятно не посвященным и чтобы придать особую наукообразность и таинственность). Суть МПП заключается в том, что вначале значение корня принимается равным некоторому сообразному числу. Для примера вычислим корень кубический из 5 для чего примем сначала его равным 2. Находим, чему равно 2 в 3-й степени. Умножение это сложение одинаковых слагаемых, тогда 2*2*2=(2+2)*2=4+4=8. Видно, что получилось больше 5. Принимаем корень равным 1,5, тогда 1,5*1,5*1,5=1,5+0,75+(0,75+0,375)= 3,375, что меньше 5. Приняв корень равным 1,6 получаем 1,6*1,6*1,6=4,096, что тоже меньше 5. Принимаем корень равным 1,7, получаем 1,7*1,7*1,7=4,913, что тоже меньше 5. Принимаем корень равным 1,71, получаем 1,71*1,71*1,71=5,000211. Можем на этом остановиться и принять корень кубический из 5 примерно равным 1,71. При желании или при необходимости можно продолжит вычисления. На калькуляторе находим корень кубический из 5=1,7099759... что очень близко к найденному результату.
Вообще говоря - нельзя, но если очень хочется - то можно.
Штука в том, что все компьютерные вычисления так или иначе сводятся к сложению и вычитанию. Даже логарифмирование и потенцирование (извлечение корней произвольных степений выполняется именно через операции надо логарифмом основания). Просто эти базовые шаги скрыты от нас - все операции проводятся по алгоритмам, зашитым аппаратно в процессор плавающей точки (он же - математический сопроцессор). Когда-то, на заре PC-строения, это была отдельная микросхема (80287/80387), но начиная с 80486DX это блок уже делается на одном кристалле с самим процессором.
Так что буде взбредёт в голову такая фантазия - да, можете реализовать такие алгоритмы явно.
Для извлечения квадратного корня есть метод итераций.
sqrt(N) = x0 = a (примерно прикидываем, чему может равняться корень)
x(n+1) = 1/2*(x(n) + a/x(n))
То есть
x1 = 1/2*(x0 + a/x0) = 1/2*(a+1)
x2 = 1/2*(x1 + a/x1) = 1/2*(1/2*(a+1) + 2a/(a+1)) = 1/4*(a+1) + a/(a+1)
И так далее.
Но с помощью сложения и вычитания - это сложно.
Добавить комментарий