Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/16: Рейтинг темы: голосов - 16, средняя оценка - 4.81
0 / 0 / 3
Регистрация: 15.04.2010
Сообщений: 40

Найти сумму ряда

02.03.2012, 10:30. Показов 3245. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Очень нужна помощь. Найти сумму ряда. В программировании не разбираюсь. Нужно в С++ сделать. Спасибо.
https://www.cyberforum.ru/cgi-bin/latex.cgi?\prod \limits_{k = 0}^{\infty } \left(1 + \frac{{x}^{k}}{k!} \right);\; |x| < 1<br />
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.03.2012, 10:30
Ответы с готовыми решениями:

Найти сумму ряда с заданной точностью, если дан общий член ряда
Найти сумму ряда с точностью Е=-4 (0.0001) общий член которого n=n*-n2 (n kvadrat)... Надо написать программу, т.е текст..на языке Си...

Найти сумму ряда с точностью до члена ряда
Найти сумму ряда с точностью до члена ряда, меньшего 0.0001 для заданного значения и сравнить эту сумму с функцией контроля. Для...

Найти сумму ряда с точностью до члена ряда
Помогите пожалуйста с задачей , вот условие Найти сумму ряда с точностью до члена ряда, меньшего ε(0.0001) для заданного значения...

12
 Аватар для Roof
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
02.03.2012, 14:30
Суммы ряда в формуле я не нашел.
Думаю надо вычислить произведение.
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
#include <iostream>
#include <cmath>
using namespace std;
 
unsigned int factorial( unsigned int n ) {
    if ( n <= 1 )
        return 1;
    return ( n * factorial( n - 1 ) );
}
 
double multi( double x, unsigned k ) {
    double result = 1 + pow( x, ( double ) k ) / factorial( k );
    if ( k == 0 )
        return 1;
    return result * multi( x, k - 1 );
}
 
int main() {
    double x;
    unsigned k;
    cout << "Введите x и k через пробел, |x| < 1" << endl;
    cin >> x >> k;
    cout << "Произведение ряда " << multi( x, k ) << endl;
    return 0;
}
Консоль
Введите x и k через пробел, |x| < 1
0.4 3
Произведение ряда 1.52813
0
02.03.2012, 16:42

Не по теме:

Цитата Сообщение от Anton12390 Посмотреть сообщение
Найти сумму ряда.
в задании стоит П - это значит нужно найти произведение элементов ряда, а пишите сумму, что находить надо?

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
02.03.2012, 16:50
Roof, проверь алгоритм (посмотри скрин и сравни с твоим ответом)
Цитата Сообщение от Roof Посмотреть сообщение
Консоль
Введите x и k через пробел, |x| < 1
0.4 3
Произведение ряда 1.52813
Миниатюры
Найти сумму ряда  
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
02.03.2012, 16:59
Вот простенько и правильно на Си
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 <stdio.h>
 
int main()
{
    double x = 0;
    long i, N   = 0;
    double fact = 1;
    double xk   = 1;
    double mult = (1 + xk/fact);//Ýòî ðàâíîñèëüíî 1 + 1 == 2 ;)
    printf("Enter x : ");scanf("%lf",&x);
    printf("Enter N : ");scanf( "%u",&N);
    for(i = 1; i <= N; i++)
    {
        fact = fact *  i;
        xk   = xk   *  x;
        mult = mult * (1 + xk/fact);
    }
    printf("Mult : %lf\n",mult);
    printf("Press any key to continue\n");
    getchar();
    getchar();
    return 0;
}
Миниатюры
Найти сумму ряда  
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
02.03.2012, 17:09
Проведя небольшие исследования с кодом - пришёл к выводу что пределом данного произведения ряда является 3.059795538543
Код и скрин прилагаю
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
#include <stdio.h>
 
int main()
{
    double x = 0;
    long i, N   = 0;
    double fact = 1;
    double xk   = 1;
    double mult = (1 + xk/fact);//Ýòî ðàâíîñèëüíî 1 + 1 == 2 ;)
    while(1)
    {
        printf("Enter x : ");scanf("%lf",&x);
        printf("Enter N : ");scanf( "%u",&N);
        fact = 1;
        xk   = 1;
        mult = (1 + xk/fact);
        for(i = 1; i <= N; i++)
        {
            fact = fact *  i;
            xk   = xk   *  x;
            mult = mult * (1 + xk/fact);
        }
        printf("Mult : %.12f\n",mult);
    }
    return 0;
}
Миниатюры
Найти сумму ряда  
1
14 / 14 / 3
Регистрация: 02.11.2011
Сообщений: 22
02.03.2012, 17:44
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
42
43
44
45
46
#include <iostream>
#include <cmath>
 
using namespace std;
 
int fact(int);
 
int main()
 {
     double s; double x; int i; int n;
 
     cin>>x;
     if (abs(x)>1)
     {
     cout<<"error variable";
     return 0;
     }
 
     else
     {
cin>>n; //количество членов в ряду
 
s=2; // нулевой множитель в ряду
 for(i=1;i<n;i++)
 s=s*(1+(double)pow(x,i)/fact(i));
 
cout<<s;
     }
return 0;
 }
 
 int fact(int i)
 
 {
     int f=1;
     int k=1;
 
        if (i==0) return 1;
 
        if (i!=0)
{
     for(k=1;k<=i;k++)
     f=f*k;
}
     return f;
 }
0
02.03.2012, 17:50

Не по теме:

NEO*, введи 1000 элементов и понаблюдай за крахом своего алгоритма...
Находить факториал на каждой итерации - верх нерациональности!:pardon:

0
 Аватар для Roof
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
02.03.2012, 21:03
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Roof, проверь алгоритм (посмотри скрин и сравни с твоим ответом)
Да, -=ЮрА=-, согласен, я потерял единичку, вследствие чего результат работы функции оказался неверным. Спасибо за подсказку.
В моем варианте нужно исправить функцию:
C++
1
2
3
4
5
6
double multi( double x, unsigned k ) {
    if ( k == 0 )
        return 2.0;
    double result = 1 + pow( x, ( double ) k ) / factorial( k );
    return result * multi( x, k - 1 );
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
02.03.2012, 22:33
Цитата Сообщение от Roof Посмотреть сообщение
double multi( double x, unsigned k ) {
* * * * if ( k == 0 )
* * * * * * * * return 2.0;
* * * * double result = 1 + pow( x, ( double ) k ) / factorial( k );
* * * * return result * multi( x, k - 1 );
}
- поставь 1000 чу в элементах и посмотри как обломится алгоритм на факториале 1000.
Ну ладно можем тип поправить какой нибудь long long long ... - но ты хоть думал что программа будет производить в n! раз больше операций нежели простое домножение???
Говорю же нерационально вот так считать!
Цитата Сообщение от Roof Посмотреть сообщение
1 + pow( x, ( double ) k ) / factorial( k );
Добавлено через 7 минут
Roof, подумай на досуге что быстрее
цикл
C++
1
2
for(i = 1; i <= N; i++)
   fact *= i;
или же цикл
C++
1
2
for(i = 1; i <= N; i++)
   fact = factorial(i);
- который хоть с реурсией хоть без эквивалентен по трудоёмкости этому
C
1
2
3
4
5
6
7
for(i = 1; i <= N; i++)
{
     factorial = 1;
     for(j = 1; j<= N; j++)
           factorial *= j;
     fact = factorial;
}
- Зачем делать трудоёмкость N! там где можно обойтись трудоёмкостью N???
1
 Аватар для Roof
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
02.03.2012, 23:18
-=ЮрА=-, Нерациональность в своем варианте увидел, ведь действительно можно просто домножать в каждой итерации, за пример спасибо, учту это.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
02.03.2012, 23:51
Цитата Сообщение от Roof Посмотреть сообщение
-=ЮрА=-, Нерациональность в своем варианте увидел, ведь действительно можно просто домножать в каждой итерации, за пример спасибо, учту это.
- я сам в своё время находил факториал на каждой итерации и в степень возводил, однажды мне тоже обратили внимание на это и с тех пор я кардинально пересмотрел свои взгляды на итерационные процессы с участием факториала и степени, что позволило писать более качественный и производительный код. Надеюсь ты теперь сам сможешь экспертно отвечать пользователям по вопросу факториала со степенью в итерационных процессах

Не по теме:

Не сочти за наглось или попытку навязать что-либо прочти
https://www.cyberforum.ru/faq/... ost2431657
Там и функции и комплексные числа и ряды и ещё много разных задач, на днях доведу его до конца!

0
03.03.2012, 02:22

Не по теме:

адекватные советы наглостью и навязыванием назвать нельзя, а твою тему по этой ссылке уже видел, но пока не дошел до освоения. но в закладках уже лежит :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.03.2012, 02:22
Помогаю со студенческими работами здесь

Найти сумму ряда
Нужно найдти сумму программкой С++ S=1/2+3/4+5/6......99/100 / - это дровь помогите пожалуйста

Найти сумму ряда
please помогите с кодом программы на с++ (как правильно вычислить s(x))

Найти сумму ряда
Помогите с программой. Нужно сделать все только в одной функции, убрав функцию нахождения факториала и сумы в знаменателе. Я запутался...

Найти сумму ряда
Привет всем! Помогите плз найти сумму ряда срочно, очень надо, ряд выглядит так: 1+1/3x - (1*2)/(3*6) *x^2 + (1*2*5)/(3*6*9) *x^3 -...

Найти сумму ряда
программа некорректно выдает результат #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
ПЛИС
zxcha1ka_ 27.01.2026
AHDL Разработать программы для синтеза следующих устройств: 1. Параллельного регистра 4-х разрядного с синхронной загрузкой и асинхронным сбросом (обнулением); Пoмoгитe пoжaлyйстa
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru