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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
eamirus
1 / 1 / 0
Регистрация: 14.09.2013
Сообщений: 26
#1

Рекурсивное вычисление корня k-й степени - C++

14.07.2014, 11:29. Просмотров 1316. Ответов 7
Метки нет (Все метки)

Описать рекурсивную функцию RootK(X, K, N) вещественного типа, находящую приближенное значение корня K-й степени из числа X по формуле:

http://www.cyberforum.ru/cgi-bin/latex.cgi?Y_0 = 1, Y_{N+1} = Y_N -\frac{Y_N - \frac{X} {Y_N^{k-1}}}{k},

где http://www.cyberforum.ru/cgi-bin/latex.cgi?Y_N обозначает RootK(X, K, N) при фиксированных X и K. Параметры функции: X (> 0) — вещественное число, K (> 1) и N (> 0) — целые. С помощью функции RootK найти для данного числа X приближенные значения его корня K-й степени при шести данных значениях N.

Добавлено через 50 минут
Помогите, пожалуйста, написать функцию!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2014, 11:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивное вычисление корня k-й степени (C++):

Вычисление корня n-ой степени - C++
Сам обучаюсь C#, но дали решить С++ не понимаю помогите пожалуйста!!!

Рекурсия: вычисление корня n-ой степени - C++
Вот условие А вот то, что я набросал... Прошу исправить... Зарание спасибо: #pragma argsused #include <stdio.h> #include <conio.h>...

Вычисление корня заданной степени - C++
Всем привет. Как сделать корень по основанию? Например:

Вычисление корня n степени оформить в виде функции - C++
Вычислить z=x\sqrt{y}+\frac{\sqrt{y}}{ctgx}+tx(x+y) при x=2.12, y=5 Вычисление корня n степени оформить в виде функции

Приближенное вычисление корня n-ой степени, в чем ошибка? - C++
#include <cmath> #include <iostream> #include <conio.h> main() { float x,x1,e,y,y1,p;y1=1; cout << "Введите степень точности...

Функция корня степени - C++
Написать и протестировать функцию, которая по натуральному k и вещественным x > 0, 0 < ε ≤ 10-6 вычисляет значение , используя следующую...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
14.07.2014, 13:34 #2
Формулу запиши через редактор формул.
0
IrineK
Заблокирован
14.07.2014, 13:58 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
double RootK(double x, int k, int n)
{
    if (!n) return 1;
    return RootK(x, k, n - 1) - (RootK(x, k, n - 1) - x/pow(RootK(x, k, n - 1), k - 1))/k;
}
1
eamirus
1 / 1 / 0
Регистрация: 14.09.2013
Сообщений: 26
14.07.2014, 14:06  [ТС] #4
http://www.cyberforum.ru/cgi-bin/latex.cgi?Y_0=1 ,  {Y}_{N+1}=Y_N - ( Y_N - X /  ({Y_N}) ^{K-1}  ) )/K
Немного поправил пару ошибок.
Хотя там и так все правильно, упс.
0
Hekaton Prime
10 / 10 / 2
Регистрация: 10.06.2014
Сообщений: 21
14.07.2014, 14:28 #5
С помощью приведённой формулы невозможно посчитать корень n-ой степени от числа. Скорей всего предполагалась очень похожая формула из быстросходящийся алгоритм нахождения корня n-ной степени

Программа с данной функцией может иметь следующий вид:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
using namespace std;
 
double RootK(double X, int K, int N = 6);
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    double number; int rank;
 
    while (true)
    {
        cout << "Введите число: ";
        cin >> number;
        if (number > 0) { break; }
        cout << "Число меньше нуля" << endl;
    }
 
    while (true)
    {
        cout << "Введите степень корня: ";
        cin >> rank;
        if (rank > 1) { break; }
        cout << "Число меньше еденицы" << endl;
    }
 
    cout << RootK(number, rank) << endl;
 
    system("PAUSE");
 
    return 0;
}
 
double RootK(double X, int K, int N)
{
    if (!N) { return 1; }
    
    return ( (K-1)*RootK(X, K, N-1) + (X/( pow(RootK(X, K, N-1),(K-1)))) ) / K;
}
0
IrineK
14.07.2014, 15:34
  #6

Не по теме:

Цитата Сообщение от Hekaton Prime Посмотреть сообщение
С помощью приведённой формулы невозможно посчитать корень n-ой степени от числа
Чево дают, таво и кодим)

0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
14.07.2014, 15:40 #7
IrineK, малость подшаманил. На кой ляд тройной вызов одной функции с одинаковыми аргументами...
C++
1
2
3
4
5
6
double RootK(double x, int k, int n)
{
    if (!n) return 1;
    double tm = RootK(x, k, n - 1) ;
    return tm - (tm - x/pow(tm, k - 1))/k;
}
0
IrineK
Заблокирован
14.07.2014, 15:43 #8
Ilot,
ходят слухи, что формула не работает - шамань/не шамань.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2014, 15:43
Привет! Вот еще темы с ответами:

Извлечение корня n-степени - C++
Написал программу для вычисления корня n-cтепени #include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() ...

Рекурсивное вычисление - C++
Доброе время суток!!! Помогите пожалуйста решить две задачи с помощью рекурсии. За ранее огромное спасибо!!! Задача №1. Написать...

Рекурсивное вычисление НОК - C++
return (b &lt; 1 ? (b ? NOK(b, a % b) : a) : (a / -NOK(-b, -a % b) * b)); // РЕБЯТА ОБЪЯСНИТЕ ПОЖАЛУЙСТА ЭТУ СТРОЧКУ. СРОЧНО НУЖНО!!!

Рекурсивное вычисление суммы. - C++
Здравствуйте! Помогите пожалуйста. Написать программу, рекурсивно вычисляющую сумму. Найти сумму ряда с точностью Eps, общий член...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.07.2014, 15:43
Ответ Создать тему
Опции темы

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