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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.83
Oksana)
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 23
08.02.2012, 08:39     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности #1
проверте код пожалуйста вроде не точно вычисляет
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;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Миниатюры
Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2012, 08:39     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности
Посмотрите здесь:

Задана последовательность чисел длиной n. Определить минимальное и максимальное значение этой последовательности ... C++
C++ Задана произвольная последовательность, все ли элементы последовательности не равны числу X
Данная последовательность из n целых чисел. Найти минимальный элемент в этой последовательности C++
Вычислить сумму, общий член задан рекуррентным соотношением C++
Вычислить значение квадратного корня рекуррентным соотношением C++
C++ Значение минимального положительного члена числовой последовательности заданной соотношением
Задачка по рекуррентным соотношениям: вычислить первые n элементов последовательности C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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);
}
Но, в принципе, можно обойтись и без массива и без ограничений на номер элемента последовательности
-=ЮрА=-
Заблокирован
Автор FAQ
08.02.2012, 13:08     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности #3
Oksana), сделайте по коду по этой ссылке http://www.cyberforum.ru/faq/thread4...ml#post2449607
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
08.02.2012, 13:11     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности #4
-=ЮрА=-, разница в том, что 1) сумму считать не надо, 2) последовательность задана рекуррентным соотношением
-=ЮрА=-
Заблокирован
Автор 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;
}
Миниатюры
Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности  
-=ЮрА=-
08.02.2012, 13:48
  #6

Не по теме:

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

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

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

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

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

Не по теме:

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

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

Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
08.02.2012, 14:13     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности #16
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ряд это 1,2,3,4,5,6,7...
это как раз-таки числовая последовательность. Ты бы лучше вместо русскоязычной википедии почитал, к примеру, Фихтенгольца, второй том
-=ЮрА=-
Заблокирован
Автор FAQ
08.02.2012, 14:23     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности #17
Цитата Сообщение от Nameless One Посмотреть сообщение
это как раз-таки числовая последовательность.
Nameless One, а числовая последовательность для которой выполняется условия
http://www.cyberforum.ru/cgi-bin/latex.cgi?\lim_{n\rightarrow 0}{a}_{n} = 0
http://www.cyberforum.ru/cgi-bin/latex.cgi?\lim_{n\rightarrow 0}{S}_{n} = S
называется рядом, для рядов ещё куча теории, кстати геометрическая прогрессия тоже подвид ряда (по памяти расходящегося). Давай дождёмся ТС узнаем что ей надо а не будем спорить причём как мне кажется зря...
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
08.02.2012, 15:10     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности #18
-=ЮрА=-, это не определение ряда; все, что ты приводишь — это частные случаи и упрощения
-=ЮрА=-
Заблокирован
Автор FAQ
08.02.2012, 15:20     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности #19
Nameless One, ряд есть числовая последовательность элементов для которых выполняются приведенные мной выше условия. Если условия(пределы) не существуют то данная числовая последовательность не является рядом. Если не различаем понятия сумма ряда и числовой ряд, это уже не мои проблемы - значит неверно трактуешь литературу, либо преподаватель у тебя был плохой!!!

Цитата Сообщение от Nameless One Посмотреть сообщение
-=ЮрА=-, это не определение ряда; все, что ты приводишь — это частные случаи и упрощения
- это не более чем твои слова, давай закончим!
Ещё раз сылка в 15-й пост
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2012, 15:24     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности
Еще ссылки по теме:

Вычисление суммы ряда с рекуррентным соотношением C++
C++ Вычислить сколько элементов последовательности попало в каждый заданный диапазон
C++ Найти минимальный элемент первой последовательности, который не входит во вторую последовательность
Задание с рекуррентным соотношением C++

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

Или воспользуйтесь поиском по форуму:
silent_1991
08.02.2012, 15:24     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности
  #20
 Комментарий модератора 
Давайте заканчивать оффтоп. Можно же об этом и в личке поговорить.
Yandex
Объявления
08.02.2012, 15:24     Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности
Ответ Создать тему
Опции темы

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