![]() |
|
![]() ![]() ![]() |
|
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
Кто-нибудь подскажет алгоритм извлечения квадратного корня из целочисленного числа?
Все расчеты надо проводить без использования дробных чисел. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
как обычно - в столбик... какие проблемы-то?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
dvs |
|
|||
![]() Владимир Драпалюк ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 660 Регистрация: 25.8.2003 Где: Воронеж->Москв а Репутация: нет Всего: 19 |
-------------------- Любите друг друга! |
|||
|
||||
Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
Ну, например, я не знаю как вычислять корень квадратный в столбик.
Точно! Спасибо! Ньютон воистину рулит! ![]() -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Тогда в тему, как его вычислять столбиком?
-------------------- Всем добра ![]() |
|||
|
||||
dvs |
|
|||
![]() Владимир Драпалюк ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 660 Регистрация: 25.8.2003 Где: Воронеж->Москв а Репутация: нет Всего: 19 |
Akina и я не знаю, как в столбик его вычислять... Рассказывай, с нас "+" и добавим материал в ФАК.
![]() -------------------- Любите друг друга! |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Мне тоже интересно
![]() разве что начиная с единицы столбиком числа перемножать и проверять ![]() |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 5 Всего: 99 |
Можно так сделать...
Это такая мысля на быструю руку просто. Можно сравнить кол-во операций в решении Ньютона с этим решением (значение c). -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
Увы, медленно. Лучше сравнить время нахождения корня от 1 до некоего max, так как кол-во операций все же не так важно.
max=553600 Ньютоновский:0.11 сек Кардинальный(?):0.64 сек Это сообщение отредактировал(а) Mayk - 8.6.2005, 00:08 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Потому что ньютоновский использует производную функцию
![]() |
|||
|
||||
cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 5 Всего: 99 |
Ну, Ньютон же есть Ньютон ![]() Мой способ пошел из одного рекурсивного способа нахождения корня (если интересно напишу), но в том способе можно использовать дробные числа. А тут пришлось немного его изменить, что привело к тому, что корень после поределенного числа итераций мы автоматом не получаем и приходится в случае перелета "спускаться" вниз см.
Что уже само собой тупо ![]() ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: 4 Всего: 14 |
Смысл Вашей фразы от меня ускользает. Что все методы которые используют производные быстро сходятся? Вроде бы нет. -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
Я весь внимание. Кстати, я нашел еще один способ нахождения корня. Внимательный читатель заметит здесь идеи бинарного поиска. Получается довольно быстро. Правда дает округление в любую сторону. Как следствие, график от этой функции не является возрастающем на всех допустимых X.(А при больших X функция вообще не верна - overflow). Особенно радует sq(1) и sq(3). Зато при остальных результат верен с учетом рандомного округления :-)
Результат(для того же max) Ньютон: 0,09 Мой: 0,10 Кардинальный: 0,63 Я почти что Ньютон(ну и что, что при больших и сверхмалых X алгоритмы Ньютона и Кардинала дают одинаковй результат, быть может мой корень определен для X != {1,3,[262144;+oo) ) ![]() -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
![]() А я не улавливаю смысл Вашей ![]() Всё-таки нашёл наглядное обьяснение ![]() ![]() |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 5 Всего: 99 |
Есть вот такая формула:
[formula]a_{k+1}=\frac{1}{2}(a_{k}+\frac{b}{a_{k}}), k=0,1,2,..., a_{0}=1[/formula] Она как понимаешь рекурсивная. После определенного кол-ва итераций ты получаешь sqrt(b) с такой то точностью. Чем дольше считаешь, тем точнее будет. То что эта формула сводится к корню от b можно математически доказать... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |