Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 219, средняя оценка - 4.60
Al21
0 / 0 / 0
Регистрация: 03.09.2010
Сообщений: 4
#1

Как выразить в С корень n-степени. - C++

03.09.2010, 23:14. Просмотров 41273. Ответов 36
Метки нет (Все метки)

Как выразить в С корень n-степени.
Подскажите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2010, 23:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как выразить в С корень n-степени. (C++):

Как записать корень в степени
ссылка вырезана]

Как описать корень пятой степени?
Как описать в С++ корень пятой степени з выражения?

Как написать в коде корень четвертой степени
имеется корень корень четвертой степени в нем выражение.Как это написать в...

Как возвести число в целочисленную степень и взять корень N-ной степени?
извиняюсь, за ламерский вопрос, но как в C++ возвести число в целочисленную...

Корень n-й степени
Всем доброго времени суток. Как взять корень n-й степени? При использовании...

Определить корень третьей степени от Z
Помогите написать программу: Определить корень третьей степени от Z по...

36
Nameless One
Эксперт С++
5785 / 3434 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
04.09.2010, 15:47 #21
rik_nel, первое число - это число, корень которого мы хотим посчитать, второе - степень корня: http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[n]{x}. В данном случае - квадратный корень из двух. Так что все правильно
0
bambino
194 / 20 / 5
Регистрация: 05.08.2010
Сообщений: 229
04.09.2010, 15:52 #22
Значит pow() ето аналог sqrt() ?
0
Nameless One
Эксперт С++
5785 / 3434 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
04.09.2010, 15:58 #23
Цитата Сообщение от rik_nel Посмотреть сообщение
Значит pow() ето аналог sqrt() ?
pow - это числа возведение в произвольную степень. sqrt - это подсчет квадратного корня. Так что твое предположение неверно.
Если тебе не понятно, как из возведения в степень мы получили корень n-ной степени, напомню тебе такое математическое тождество:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[n]{x} \equiv {x}^{\frac{1}{n}},
т.е. корень n-ной степени из x эквивалентен x в степени http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{n}. pow(x, n) возводить x в степень n, pow(x, 1/n) возводит x в степень http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{n}, т.е. считает корень n-ной степени от x.
1
bambino
194 / 20 / 5
Регистрация: 05.08.2010
Сообщений: 229
04.09.2010, 16:18 #24
Nameless One
Спасибо,доступно обяснил!
P.S. Я не зразу поня,потомучто ми еще в школи не учили такое тождество.
0
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 12
01.05.2014, 20:28 #25
Подниму старую тему. Не могу вычислить кубический корень из логарифма. Код как в 14м посте темы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    double x,n;
 
    cout << "Input x: ";
    cin >> x;
    cout << "Input n: ";
    cin >> n;
    x=log10(x);
    x = pow(x, 1.0 / n);
 
    cout << "Result: " << x << endl;
    system("pause");
 
    return 0;
}
Выдает значение nan. Хотел бы понять причину.
0
IrineK
Заблокирован
01.05.2014, 20:34 #26
Цитата Сообщение от Antikuba Посмотреть сообщение
Хотел бы понять причину.
Что вводите в качестве х?
0
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 12
01.05.2014, 20:41 #27
Дробное число меньше единицы. В частности 0.95.
Судя по всему ошибка не из-за степени возникает,а в функции логарифма.
0
IrineK
Заблокирован
01.05.2014, 20:46 #28
Читаем pow

If the base is finite negative and the exponent is finite but not an integer value, it causes a domain error.
Добавлено через 1 минуту
Вам нужен кубический корень именно из отрицательного числа?
0
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 12
01.05.2014, 20:50 #29
Ну то что ошибка в функции возникает я понял. А как быть то?
После матлаба все так странно...
0
IrineK
Заблокирован
01.05.2014, 20:55 #30
Повторяю:
Цитата Сообщение от IrineK Посмотреть сообщение
Вам нужен кубический корень именно из отрицательного числа?
Какие еще корни из отрицательных чисел вы собираетесь извлекать?
Четный корень из отрицательного числа - это комплексное число, не действительное.
Действительный нечетный корень - возможен.

Цитата Сообщение от Antikuba Посмотреть сообщение
После матлаба
ОДЗ для извлечения корней везде одинаковое: положительная база.
0
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 12
01.05.2014, 21:03 #31
Ну в данном случае корень как раз и был кубический.
Не могу понять,почему число 0.95,которое является положительным,вызывает ошибку. И каким образом тогда работать с числами,меньше единицы.
0
IrineK
Заблокирован
01.05.2014, 21:04 #32
Цитата Сообщение от Antikuba Посмотреть сообщение
число 0.95,которое является положительным
логарифм от этого числа отрицательный.
0
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 12
01.05.2014, 21:09 #33
Ну,в данном случае корень как раз и был кубическим.
Не могу понять, почему число 0.95, которе является положительным,вызывает подобную ошибку. И каким образом тогда работать с числами,из интервала (0,1).
0
IrineK
Заблокирован
01.05.2014, 21:12 #34
Antikuba,
похоже мне придется все повторять по два раза (может быть и больше?).

Логарифм от 0,95 - число отрицательное.
Вы берет корень от логарифма, который является числом отрицательным.
0
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 12
01.05.2014, 21:16 #35
Логарифм 0.95, вычисленный через функцию log10 также имеет значение nan.
А логарифм действительно отрицательный,как-то я упустил из виду. Каким образом тогда вычислять корни нечетной степени из отрицательных чисел? Искать другие библиотеки?
0
IrineK
Заблокирован
01.05.2014, 21:17 #36
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
using namespace std;
 
 
int main()
{   double x,n;
 
    cout << "Input x: ";
    cin >> x;
    cout << "Input n: ";
    cin >> n;
    x = log10(x);
    if (x > 0)
        x = pow(x, 1.0 / n);
    else
        x = -pow (fabs(x), 1./n);
        
    cout << "Result: " << x << endl;
    system("pause");
 
    return 0;
}
1
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 12
01.05.2014, 21:21 #37
Премного благодарен, буду вникать.
Нда, когда решение на виду, стыдно становится за собственную глупость.
0
01.05.2014, 21:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2014, 21:21
Привет! Вот еще темы с решениями:

Корень седьмой степени из числа?
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace...

Не получается извлечь корень n-го степени
Не работает часть кода с корнем, по непонятным мне причинам всегда выводит 1,...

Корень в n-ой степени. Никак не хочет считать
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;conio.h&quot; #include &quot;cmath&quot;...

Взять корень из степени большого числа
Всем привет задачакая с помощью библиотеки math.h и функции pow() нужно взять...


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru