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

Рекурся - C++

Восстановить пароль Регистрация
 
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
22.02.2011, 17:40     Рекурся #1
как данное выражение можно общитать с помощью рекурсии?


Код
1+X+X2/2!+...+XN/N!
спасибо большое заранее
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
timchuchok
15 / 15 / 0
Регистрация: 21.12.2010
Сообщений: 55
22.02.2011, 18:05     Рекурся #2
C++
1
2
3
4
5
6
7
double sum = 1 ;
double a = x;
for ( int i = 1 ; i < n; i++)
{
     a *= x/i;
     sum +=a;
}
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
22.02.2011, 18:18  [ТС]     Рекурся #3
timchuchok, Гг.. мда.. математика у вас странная ..
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.02.2011, 18:19     Рекурся #4
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
#include <iostream>
 
double e(double);
double e_helper(double, double, double, size_t);
 
int main()
{
    double x;
 
    std::cout << "Enter x: ";
    std::cin >> x;
 
    std::cout << "Result = " << e(x) << std::endl;
}
 
double e(double x)
{
    return e_helper(x, 1E-8, 1.0, 1);
}
 
double e_helper(double x, double eps, double an, size_t n)
{
    return (an < eps) ? 0.0 : an + e_helper(x, eps, an * x / n, n + 1);
}
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
22.02.2011, 18:22  [ТС]     Рекурся #5
timchuchok,
х=8
n=5

вот так должно быть 1+8+8+8/2+8/6+8/24 = 22.(6)
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.02.2011, 18:25     Рекурся #6
legend, у вас тоже странноватая... Иксы-то у нас в степенях соответствующих идут. Вообще это известный ряд для отыскания с некоторой точностью числа е в степени икс.
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
22.02.2011, 18:30  [ТС]     Рекурся #7
оО.. так ето по заданю степень типо береться??
Код
XN/N!
типо
Код
X^(N/N!)
timchuchok
15 / 15 / 0
Регистрация: 21.12.2010
Сообщений: 55
22.02.2011, 18:32     Рекурся #8
У меня в коде выход с цикла по заданому n, можно по заданой точностю.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.02.2011, 18:34     Рекурся #9
legend, и снова нет. Типа
Код
(X^N) / N!
timchuchok
15 / 15 / 0
Регистрация: 21.12.2010
Сообщений: 55
22.02.2011, 18:35     Рекурся #10
Цитата Сообщение от legend Посмотреть сообщение
оО.. так ето по заданю степень типо береться??
Код
XN/N!
типо
Код
X^(N/N!)
это типа:
при икс = 2:
1 + (2*2)/2! + (2*2*2)/ 3! + ..... + (2*2*2*2*...*2)/ n! , соответственно, задань этот ряыд можно одинм элементом и множителем, как я и написал выше.
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
23.02.2011, 11:24  [ТС]     Рекурся #11
silent_1991, О_о спс , буду знать

Добавлено через 16 часов 47 минут
а как общитать ето выражение, если пользователь ведет и 'N'
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
23.02.2011, 12:50     Рекурся #12
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
#include <iostream>
 
double e(double, size_t);
double e_helper(double, size_t, double, size_t);
 
int main()
{
    double x;
    size_t N;
 
    std::cout << "Enter x: ";
    std::cin >> x;
    std::cout << "Enter N: ";
    std::cin >> N;
 
    std::cout << "Result = " << e(x, N) << std::endl;
}
 
double e(double x, size_t N)
{
    return e_helper(x, N, 1.0, 1);
}
 
double e_helper(double x, size_t N, double an, size_t n)
{
    return (n == N) ? 0.0 : an + e_helper(x, N, an * x / n, n + 1);
}
Yandex
Объявления
23.02.2011, 12:50     Рекурся
Ответ Создать тему
Опции темы

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