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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.83
Oksana)
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 23
#1

Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности - C++

08.02.2012, 08:39. Просмотров 6373. Ответов 28
Метки нет (Все метки)

проверте код пожалуйста вроде не точно вычисляет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<conio.h>
using namespace std;
int main(){
    int i,n;
    float v[100];
    v[0]=0;v[1]=0;v[2]=1.5;
    cout<<"vvedite n bol'we 3"<<endl;
    cin>>n;
    for (i=0;i<n;i++)
    if (i>2)
    v[i]=((i+2)/(((((i+1)*(i+1))+1)*v[i-1])-(v[i-2]*v[i-3])));
    cout<<"v[n]="<<v[i];
    getch();
    return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Миниатюры
Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2012, 08:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности (C++):

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

Вычислить сумму, общий член задан рекуррентным соотношением - C++
\sum_{k=1}^{n}\frac{(-1)^{k+1}}{k(k+1)} Попытался составить рекуррентную формулу Y_k=Y_{k-1} \cdot \frac{k-1}{k+1} а...

Задание с рекуррентным соотношением - C++
В задании нужно найти сумму ряда. При решении использовать только рекуррентные соотношения и с++. Ряд загружен картинкой. Заранее...

Вычисление суммы ряда с рекуррентным соотношением - C++
Доброго времени суток. Так уж сложилось, что одна из лабораторных работ потрепала нервишки нашей группе. Все к чему мне удалось прийти, это...

Задачка по рекуррентным соотношениям: вычислить первые n элементов последовательности - C++
Доброго вам. Помогите, пожалуйста, с задачкой. Нужно вычислить первые n элементов вот такой последовательности b_{1}=1,...

Задана произвольная последовательность, все ли элементы последовательности не равны числу X - C++
Требуется написать программу по данному условию: Задана произвольная последовательность, все ли элементы последовательности не равны...

28
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
08.02.2012, 10:04 #2
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 <stdio.h>
#include <stdlib.h>
 
#define MAX_INDEX 100
 
int main(void)
{
    double sequence[MAX_INDEX] = {0, 0, 1.5};
    int n, i, retval = 0;
 
    printf("Input the index of the item (1 <= N <= %d): ", MAX_INDEX);
    scanf("%d", &n);
 
    if(n < 1 || n > MAX_INDEX)
    {
    fprintf(stderr, "N must be in range [1; %d]; given: %d\n", MAX_INDEX, n);
    retval = 1;
    }
    else
    {
    for(i = 4; i <= n; ++i)
        sequence[i - 1] = ((double) (i + 1)) / (i * i + 1) * sequence[i - 2] - sequence[i - 3] * sequence[i - 4];
    printf("%dth number in the sequence: %.3g\n", n, sequence[n - 1]);
    }
 
    exit(retval);
}
Но, в принципе, можно обойтись и без массива и без ограничений на номер элемента последовательности
0
-=ЮрА=-
Заблокирован
Автор FAQ
08.02.2012, 13:08 #3
Oksana), сделайте по коду по этой ссылке http://www.cyberforum.ru/faq/thread436065.html#post2449607
1
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
08.02.2012, 13:11 #4
-=ЮрА=-, разница в том, что 1) сумму считать не надо, 2) последовательность задана рекуррентным соотношением
1
-=ЮрА=-
Заблокирован
Автор FAQ
08.02.2012, 13:43 #5
Впрочем, задание немножко нестандартное как для рядов, поэтому привожу код.
(программа ниже находит члены ряда с задаваемой пользователем точностью разложения)
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
#include <iostream>
#include <cmath>
using namespace std;
 
double v_k(double * v, long k)
{
    double * ptr;
    double * add;
    if(2 < k)//Âîò ГІГ*ГЄ äèГ*Г*ìè÷åñêè äîáГ*âëÿåì ГЇГ® ýëåìåГ*ГІГі
    {
        add = new double[2];
        ptr = &v[k - 1];
        add[0] = v[k - 1];//Г’Г*ГЄ ñîõðГ*Г*ГїГҐГ¬ ïîñëåäГ*ГЁГ© ýëåìåГ*ГІ v
        ptr = add;//ГђГ*ñøèðÿåì Г¬Г*Г±Г±ГЁГў v
    }
    v[k] = (k + 1)*v[k - 1]/(1 + pow(k,2)) - v[k - 2]*v[k - 3];
    return v[k];
}
 
int main()
{
    double e, v_i;
    double * v = new double[3];
    //ÏîìГ*ГЁГ¬ Г·ГІГ® ГЁГ*äåêñГ*öèÿ Гў Г¬Г*Г±Г±ГЁГўГ*Гµ èä¸ò Г± Г*óëÿ
    v[0] = (v[1] = 0);
    v[2] = 1.5;
    long i = 3;
    cout<<"Enter error : ";cin>>e;
    while(e < fabs(v_i = v_k(v, i)))
    {
        cout<<"i = "<<i + 1<<" v[i] = "<<v_i<<endl;
        i = i + 1;
    }
    system("pause");
    delete [] v;//Г—ГЁГ±ГІГЁГ¬ ГЇГ*ìÿòü
    return 0;
}
0
Миниатюры
Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности  
-=ЮрА=-
08.02.2012, 13:48
  #6

Не по теме:

PS:Nameless One, логичней находить разложение в ряд с определённой точностью, а не по числу элементов, т.к в некоторых рядах нужно просуммировать элементов 200 прежде чем достигнем точности разложения хотя-бы один процент.
Впрочем ТС кром рекуррентной формулы ничего не написала, поэтому возможно ей именно по задаваемому числу элементов нужно находить(т.е. реализовывать более лёгкую задачу чем расммотрена мной выше)

0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
08.02.2012, 13:51 #7
-=ЮрА=-, здесь ряд не задан (и тем более никаких разложений нет), а ТС нужно находить не сумму, а n-ный член последовательности
0
-=ЮрА=-
Заблокирован
Автор FAQ
08.02.2012, 13:53 #8
Nameless One, без обид - у меня к тебе замечание по твоему коду - почему взял 100 элементов а не 200 или 10???
Цитата Сообщение от Nameless One Посмотреть сообщение
#define MAX_INDEX 100
Думаю лучше такие задания делать с динамическим выделением памяти, хотя это дело вкуса а также требований по сложности предъявляемым к коду....

Добавлено через 1 минуту
Цитата Сообщение от Nameless One Посмотреть сообщение
здесь ряд не задан
- а что такое по твоему последовательность причём связанных элементов???
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
08.02.2012, 13:54 #9
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
без обид - у меня к тебе замечание по твоему коду - почему взял 100 элементов а не 200 или 10???
потому, что так было в коде ТС, которая попросила сказать, что в нем неправильно

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Думаю лучше такие задания делать с динамическим выделением памяти, хотя это дело вкуса а также требований по сложности предъявляемым к коду....
там вообще массив не нужен — нужно использовать только три переменных для хранения трех последних вычисленных значений. Что я уже говорил:

Цитата Сообщение от Nameless One Посмотреть сообщение
Но, в принципе, можно обойтись и без массива и без ограничений на номер элемента последовательности
0
-=ЮрА=-
08.02.2012, 13:55
  #10

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
здесь ряд не задан (и тем более никаких разложений нет)
http://www.cyberforum.ru/faq/thread436065.html#post2449607 не хочешь FAQ нагугли определение ряда...
И да, судя по тегам ТС ей нужно именно в плюсах а не Си

0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
08.02.2012, 13:56 #11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- а что такое по твоему последовательность причём связанных элементов???
последовательность — она и в Африке последовательность. А ряд — это сумма
0
-=ЮрА=-
Заблокирован
Автор FAQ
08.02.2012, 13:57 #12
Цитата Сообщение от Nameless One Посмотреть сообщение
нужно использовать только три переменных для хранения трех последних вычисленных значений
- и где это написано, м.б витало в воздухе а я не заметил???Предлагаю отложить наш спор до возвращения ТС в топик...
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
08.02.2012, 13:57 #13
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не хочешь FAQ нагугли определение ряда...
ты сам-то хоть свой FAQ почитай, и скажи мне, где я не прав
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
08.02.2012, 14:00 #14
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
и где это написано, м.б витало в воздухе а я не заметил
это определяется Здравым Смыслом ©
Зачем хранить 100 (200, 300, ...) переменных для вычисления значения элемента последовательности, если можно хранить всего 3?
0
-=ЮрА=-
Заблокирован
Автор FAQ
08.02.2012, 14:10 #15
Цитата Сообщение от Nameless One Посмотреть сообщение
А ряд — это сумма
- ряд это числовая последовательность, а СУММА ряда это сумма ряда, не путай понятия

http://ru.wikipedia.org/wiki/Числовой_ряд чёрным по белому написано
Числовой ряд — это числовая последовательность, рассматриваемая вместе с другой последовательностью, которая называется последовательностью частичных сумм (ряда).

Добавлено через 2 минуты
Nameless One, ряд это 1,2,3,4,5,6,7...
А сумма ряда - это 1+2+3+4+5+6... понятия переплетены и тесно связаны вот и путают их люди. Можно сказать что целые числа - это числовой ряд, и никто не просит находить их сумму...

Добавлено через 5 минут
Nameless One,
http://ru.wikipedia.org/wiki/Последовательность
В математике рассматривается множество различных последовательностей:
числовые последовательности;
временные ряды как числовой, так и не числовой природы;
последовательности элементов метрического пространства
последовательности элементов функционального пространства
последовательности состояний систем управления и автоматов.
Просто тебя приучили под рядом понимать сумму, а не последовательность с определёнными свойствами, вот и рубишь сплеча...

Добавлено через 2 минуты

Не по теме:

PS: FAQ я писал сам, так что в курсе что там написано...

0
08.02.2012, 14:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2012, 14:10
Привет! Вот еще темы с ответами:

Задана последовательность чисел длиной n. Определить минимальное и максимальное значение этой последовательности ... - C++
Задана последовательность чисел длиной n. Определить минимальное и максимальное значение этой последовательности ... В паскале вроде...

Рекурсивные функции: найти заданный элемент последовательности - C++
Помогите написать программу при помощи рекурсивной функции, нужно найти 7-ой элемент последовательности.

Вычислить сколько элементов последовательности попало в каждый заданный диапазон - C++
Привет всем у меня такой вопрос изените если вапрос не по теме Выполните подсчет количества значений по разным диапазонам и...

Значение минимального положительного члена числовой последовательности заданной соотношением - C++
Используя оператор цикла, составить программу, в которой находится значение минимального положительного члена числовой последовательности...


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

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

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