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

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

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

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

08.02.2012, 08:39. Просмотров 6202. Ответов 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;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Миниатюры
Последовательность задана рекуррентным соотношением. Вычислить заданный элемент последовательности  
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++
Требуется написать программу по данному условию: Задана произвольная последовательность, все ли элементы последовательности не равны...

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.02.2012, 14:10
Ответ Создать тему
Опции темы

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