|
Очень нужна помощь в оптимизации алгоритма извлечения квадратного корня |
|
|
|
 |
Ответов
|
Dec 5 2012, 03:37
|
Местный
  
Группа: Участник
Сообщений: 298
Регистрация: 26-01-09
Из: Пермь
Пользователь №: 43 940

|
Если нужна только целая часть квадратного корня, то можно воспользоваться другим алгоритмом:
Для квадратов чисел верны следующие равенства: 1 = 1^2 1+3 = 2^2 1+3+5 = 3^2 и так далее.
То есть, узнать целую часть квадратного корня числа можно, вычитая из него все нечётные числа по порядку, пока остаток не станет меньше следующего вычитаемого числа или равен нулю, и посчитав количество выполненных действий. Например, так: Выполнено 3 действия, квадратный корень числа 9 равен 3.
Недостатком такого способа является то, что если извлекаемый корень не является целым числом, то можно узнать только его целую часть, но не точнее. В то же время такой способ вполне доступен детям, решающим простейшие математические задачи, требующие извлечения квадратного корня.
Циклов конечно будет больше, зато время их выполнения гораздо меньше
|
|
|
|
|
Dec 5 2012, 06:09
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 6-07-08
Из: Москва
Пользователь №: 38 765

|
Цитата(alexeyv @ Dec 5 2012, 06:37)  1 = 1^2 1+3 = 2^2 1+3+5 = 3^2 и так далее. Забавный алгоритм)) Т.е. если я Вас правильно понял, то программа должна выглядеть так: a=подкоренное выражение b=1 i=1 цикл если b > a или b = a то ....выход (результат в i) иначе ....b=b+(b+2) ....i=i+1 повтор цикла Так?
Сообщение отредактировал Rostislav - Dec 5 2012, 06:30
|
|
|
|
|
Dec 5 2012, 06:28
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Rostislav @ Dec 5 2012, 10:09)  Забавный алгоритм)) Что Вас так забавляет? Немного школьной арифметики... Сумма арифметической прогрессии дает - сумма N нечетных чисел в точности равна N в квадрате. Следующий разряд (после точки) можно вычислить как (половина остатка)/N.
|
|
|
|
Сообщений в этой теме
Rostislav Очень нужна помощь в оптимизации алгоритма извлечения квадратного корня Dec 4 2012, 22:16 Rostislav Что забавляет? Все)) Магия чисел в особенности))
... Dec 5 2012, 06:55 MrYuran Цитата(Rostislav @ Dec 5 2012, 10:55) Где... Dec 5 2012, 06:59 Rostislav Кстати, детская арифметика заканчивается начиная с... Dec 5 2012, 07:11 skyv Я использовал просто таблицу, которую предваритель... Dec 5 2012, 10:59 Rostislav Цитата(skyv @ Dec 5 2012, 13:59) Я исполь... Dec 5 2012, 11:04  Lmx2315 QUOTE (Rostislav @ Dec 5 2012, 15:04) А В... Dec 5 2012, 11:14   skyv Цитата(Lmx2315 @ Dec 5 2012, 15:14) ..мог... Dec 6 2012, 10:52 MrYuran
Можно скомбинировать.
Таблицу для грубого опреде... Dec 5 2012, 11:28 Rostislav Цитата(MrYuran @ Dec 5 2012, 14:28) Можно... Dec 5 2012, 11:39 sysel Не знаю, как называется метод, но пашет:
Код// Выч... Dec 5 2012, 13:56 анатолий Вот функция корня по алгоритму CORDIC
Кодfunction ... Dec 8 2012, 21:23 Rostislav Цитата(анатолий @ Dec 9 2012, 00:23) Вот ... Dec 11 2012, 06:07  анатолий Цитата(Rostislav @ Dec 11 2012, 08:07) чт... Dec 11 2012, 19:16 TSerg Кодfunction intSqrt_(Val : Longword) ... Dec 11 2012, 11:41 akorud Есть возможность использовать floating-point? Може... Dec 11 2012, 18:41 VitekSVM http://algolist.manual.ru/maths/count_fast/index.p... Dec 20 2012, 13:41 ASN Rostislav
С какой практической точностью нужно выч... Dec 20 2012, 14:38 Rostislav Цитата(ASN @ Dec 20 2012, 17:38) С какой ... Dec 20 2012, 20:46  beaRTS Цитата(Rostislav @ Dec 21 2012, 00:46) [c... Dec 21 2012, 02:07   Rostislav Цитата(beaRTS @ Dec 21 2012, 05:07) temp ... Dec 21 2012, 05:56    beaRTS Цитата(Rostislav @ Dec 21 2012, 08:56) Да... Dec 21 2012, 06:16     Rostislav Цитата(beaRTS @ Dec 21 2012, 09:16) а, ну... Dec 21 2012, 06:19 blackfin Сто раз уже обсуждали: ReAl. Dec 21 2012, 06:19 Rostislav Цитата(blackfin @ Dec 21 2012, 09:19) Сто... Dec 21 2012, 06:24 beaRTS Цитата(blackfin @ Dec 21 2012, 09:19) Сто... Dec 21 2012, 06:27  Rostislav Цитата(beaRTS @ Dec 21 2012, 09:27) ...я ... Dec 21 2012, 06:31 TSerg Топик-стартер слушает только себя в попытке изобре... Dec 21 2012, 07:12 Rostislav Цитата(TSerg @ Dec 21 2012, 10:12) Топик-... Dec 21 2012, 11:10  beaRTS Цитата(Rostislav @ Dec 21 2012, 14:10) ЗЫ... Dec 22 2012, 08:50  beaRTS Цитата(Rostislav @ Dec 21 2012, 14:10) ЗЫ... Dec 22 2012, 09:01  TSerg Цитата(Rostislav @ Dec 21 2012, 15:10) Ва... Dec 22 2012, 17:47 Rostislav TSerg, Ваш вариант описывается тут: http://en.wiki... Dec 22 2012, 08:25 beaRTS по поводу своей идеи начал новую тему. вот здесь к... Dec 22 2012, 16:06
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|