Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
xazeq1
1

Вычислить сумму, общий член задан рекуррентным соотношением

02.10.2014, 21:03. Показов 1462. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{k=1}^{n}\frac{(-1)^{k+1}}{k(k+1)}

Попытался составить рекуррентную формулу

https://www.cyberforum.ru/cgi-bin/latex.cgi?Y_k=Y_{k-1} \cdot \frac{k-1}{k+1}

а программу написать не получается
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2014, 21:03
Ответы с готовыми решениями:

Вычислить сумму ряда, общий член которого задан формулой An=(xn)/n!
Не понимаю, помогите, нужно в С++

Вычислить значение квадратного корня рекуррентным соотношением
С клавиатуры ввести значение действительного числа x. Вычислить значение квадратного корня из этого...

Найти сумму ряда, общий член которого задан формулой, с точностью ε
Найти сумму ряда, общий член которого задан формулой, с точностью ε (10-4)

Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности
проверте код пожалуйста вроде не точно вычисляет #include<iostream> #include<conio.h> using...

15
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
02.10.2014, 23:07 2
мб так?
C++
1
2
3
4
5
6
double Y=0;
int n;
for(int k=0;k<n;k++)
{
Y+=(pow(-1,(double)(k+1)))/(k*(k+1))
}
0
4820 / 2286 / 287
Регистрация: 01.03.2013
Сообщений: 5,970
Записей в блоге: 29
02.10.2014, 23:13 3
Nevermind_qqq, а мб (С) попробуете запустить свой код на выполнение?

ЗЫ pow(-1,(double)(k+1)) - шутку оценил.
0
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
02.10.2014, 23:27 4
_Ivana, так написал бы свой сразу, если ума много
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
#include <math.h>
 
int main()
{
    double Y = 0;
    int n=11;
    for (int k = 1; k<n; k++)
    {
            Y += ((pow(-1, (k+1))) / (k*(k + 1)));
 
    }
    
    std::cout << Y;
    _getch();
    return 0;
}
0
870 / 720 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
03.10.2014, 00:41 5
xazeq1,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double f(int k, double& sum)
{
    double n = k == 1 ? 0.5 : f(k-1, sum)*(1-k)/(k+1);
    sum += n;
    return n;
}
 
int main()
{
    double sum = 0;
    f(3, sum);
    cout << sum;
 
    return 0;
}
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,519
Записей в блоге: 1
03.10.2014, 09:13 6
Nevermind_qqq, зато у тебя похоже проблемы. pow использует... посмотрите-ка на этого "учителя"!
0
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
03.10.2014, 16:22 7
Kuzia domovenok, ну и что же не так с pow?
0
Модератор
Эксперт С++
13703 / 10906 / 6473
Регистрация: 18.12.2011
Сообщений: 29,115
03.10.2014, 18:21 8
Мне кажется рекуррентная формула другая:
https://www.cyberforum.ru/cgi-bin/latex.cgi?Y_k=-Y_{k-1} \cdot \frac{k}{k+2}

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
double f(int n)
{
  
   double ak=0.5;
   double sum=0;
   for( int k=1;k<=n;k++)
   {
         sum+=ak;
         ak*=-1.*k/(k+2);
   }
   return sum;
}
 
int main()
{
     double s= f(3);
     cout << s;
     return 0;
}
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,519
Записей в блоге: 1
03.10.2014, 18:56 9
Цитата Сообщение от Nevermind_qqq Посмотреть сообщение
Kuzia domovenok, ну и что же не так с pow?
во-первых, она не рекуррентна как просил автор.
во-вторых, она увеличивает сложность алгоритма на порядок
Программы zss и XRoy имеют сложность O(n)
Твой же вариант O(n квадрат)
0
4820 / 2286 / 287
Регистрация: 01.03.2013
Сообщений: 5,970
Записей в блоге: 29
03.10.2014, 23:09 10
Автор не просил рекуррентно, он только неудачно попытался, а модератор переименовал тему.

ЗЫ ума у меня не много, но эта задача его и не требует. Вот ленивый кот:
Haskell
1
sum $ take 500 [(fromIntegral $ 2 * mod k 2 - 1) / (fromIntegral $ k*(k+1)) | k<-[1..]]
0
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
03.10.2014, 23:25 11
Kuzia domovenok, ну эти программы тем не менее требуют мат.преобразования, которое можно не делать
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,519
Записей в блоге: 1
04.10.2014, 11:25 12
Nevermind_qqq, какие нафиг "не делать"? Ты это читал???
http://habrahabr.ru/post/188010/
http://habrahabr.ru/post/78728/
https://en.wikipedia.org/wiki/Big_O_notation
лишние операции делаешь как раз ты, Nevermind_qqq!
вот это - всего две-три операции! o(1)
Цитата Сообщение от zss Посмотреть сообщение
sum+=ak; ak*=-1.*k/(k+2);
а вот это порядка N операций o(n)
Цитата Сообщение от Nevermind_qqq Посмотреть сообщение
pow(-1, (k+1))
Твоё упорное нежелание никого слушать поражает...
0
Модератор
Эксперт С++
13703 / 10906 / 6473
Регистрация: 18.12.2011
Сообщений: 29,115
04.10.2014, 11:29 13
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а вот это порядка N операций o(n)
А то и существенно больше, если компилятор это приведет к pow(-1.0, double(k+1))
и будет считать как exp((k+1)*log(-1))

Кстати ak*=-1.*k/(k+2); можно еще чуть чуть сократить написав ak*=-(double)k/(k+2);
0
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
04.10.2014, 11:42 14
Kuzia domovenok,под лишним я имел в виду составление рекуррентной формулы
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,519
Записей в блоге: 1
04.10.2014, 12:01 15
Nevermind_qqq, ты хотел "как лучше" а получилось только хуже.
0
4820 / 2286 / 287
Регистрация: 01.03.2013
Сообщений: 5,970
Записей в блоге: 29
04.10.2014, 15:03 16
Еще вчера добавил расчет (-1)^n через pow в копилку перлов с форума (в блоге). Чувствую, тема благодатная, и копилка будет регулярно пополняться. Думаю, можно вообще завести отдельную тему и прикрепить ее в список важных, рядом с распространенными ошибками.
1
04.10.2014, 15:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2014, 15:03
Помогаю со студенческими работами здесь

Дан числовой ряд и малая величина ɛ. Найти сумму ряда с точностью ɛ, общий член которого задан формулой
Дан числовой ряд и малая величина ɛ. Найти сумму ряда с точностью ɛ, общий член которого задан...

Вычислить сумму ряда с точностью Е, общий член которого
Помогите, пожалуйста, написать программу. Вычислить сумму ряда с точностью Е, общий член...

Вычислить сумму ряда с точностью Е, общий член которого
2. Вычислить сумму ряда с точностью Е, общий член которого напишите программу пожалуйста не могу...

Вычислить сумму ряда с точностью E, общий член которого an = e-n.
Вычислить сумму ряда с точностью E, общий член которого an = e-n. Добавлено через 15 минут Хелп...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru