Форум программистов, компьютерный форум CyberForum.ru

Нужен алгоритм извлечения квадратного корня - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 76, средняя оценка - 4.99
Denis St.
 Аватар для Denis St.
44 / 25 / 5
Регистрация: 07.11.2011
Сообщений: 75
20.12.2011, 00:27     Нужен алгоритм извлечения квадратного корня #1
Здравствуйте, уважаемые форумчане.Недавно начал изучать C++ и столкнулся с проблемой.Мне необходимо извлечь квадратный корень, но функция sqrt мне не подходит т.к в задаче сказано что нельзя использовать при решении вещественную арифметику.Хотелось бы узнать какой-нибуть быстрый алгоритм т.к сказанно что входное число до 1000000000.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 00:27     Нужен алгоритм извлечения квадратного корня
Посмотрите здесь:

C++ алгоритм для вычисления квадратного корня x из вещественного числа y.
вычисления квадратного корня C++
Опишите процесс вычисления выражения заданного выражения 3 + 2 * x -0,5 – 4 / x. Обраб отайте ошибку извлечения квадратного корня из отрицательного C++
C++ Определить функцию для извлечения квадратного корня из эдементов массива
C++ извлечения квадратного корня из комплексного числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dino-4udo
-41 / 5 / 1
Регистрация: 16.12.2010
Сообщений: 68
20.12.2011, 00:29     Нужен алгоритм извлечения квадратного корня #2
По методу Ньютона

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <math.h>
 
float Sqrt(float A, float x)
{
  float xold;
  do
  {
    xold=x;
    x=(x+A/x)/2.0;
  } while (x!=xold);
  return x;
}
void main(void)
{
  printf("C++ Sqrt(13)=%f,  Sqrt(13)=%f.",sqrt(13),Sqrt(13,3.5));
}
Denis St.
 Аватар для Denis St.
44 / 25 / 5
Регистрация: 07.11.2011
Сообщений: 75
20.12.2011, 00:31  [ТС]     Нужен алгоритм извлечения квадратного корня #3
Нельзя использовать вещественые типы
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.12.2011, 08:31     Нужен алгоритм извлечения квадратного корня #4
Цитата Сообщение от Denis St. Посмотреть сообщение
Хотелось бы узнать какой-нибуть быстрый алгоритм т.к сказанно что входное число до 1000000000.
Вам скорее всего нужен двоичный поиск.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
20.12.2011, 11:08     Нужен алгоритм извлечения квадратного корня #5
Цитата Сообщение от Denis St. Посмотреть сообщение
т.к сказанно что входное число до 1000000000.
это 10^9 или 2^9?
Цитата Сообщение от Denis St. Посмотреть сообщение
Нельзя использовать вещественые типы
... т.е. http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{3} \approx 1 или http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{3} \approx 2?
Denis St.
 Аватар для Denis St.
44 / 25 / 5
Регистрация: 07.11.2011
Сообщений: 75
20.12.2011, 15:59  [ТС]     Нужен алгоритм извлечения квадратного корня #6
Дело в том что sqrt принимает как аргумент и возвращает double, но мне нельзя использовать в программе типы float, double только целые int, а задаваемое число как аргумент в моей задачи может быть до 1 000 000 000
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.12.2011, 16:24     Нужен алгоритм извлечения квадратного корня #7
Denis St., вот гуглом нашлось: http://algolist.manual.ru/maths/count_fast/intsqrt.php
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2013, 02:09     Нужен алгоритм извлечения квадратного корня
Еще ссылки по теме:

Придумать алгоритм вычисления квадратного корня, не использую функции возведения в степень C++
C++ Прототип и тело функции. Алгоритм вычисления квадратного корня
Составить программу извлечения точного квадратного корня из n-разрядного числа (n > 40) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Genag
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 9
06.08.2013, 02:09     Нужен алгоритм извлечения квадратного корня #8
C++
1
2
3
4
5
6
7
8
double kor(int x){
    int z = 0;
    while(z*z < x){
        z++;
    }
 
    return z;
}
Yandex
Объявления
06.08.2013, 02:09     Нужен алгоритм извлечения квадратного корня
Ответ Создать тему
Опции темы

Текущее время: 00:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru