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

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

Войти
Регистрация
Восстановить пароль
 
Varloy
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 18
#1

Итерационные алгоритмы - C++

23.06.2014, 00:43. Просмотров 574. Ответов 9
Метки нет (Все метки)

Помогите пожалуйста с заданием нужно решить на основе реккурентных отношений
Миниатюры
Итерационные алгоритмы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2014, 00:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Итерационные алгоритмы (C++):

Итерационные алгоритмы - C++
Задание: вычислить значение бесконечного выражения (прогрессии) с вводом с клавиатуры значения аргумента (х) и количества членов (N)....

итерационные алгоритмы - C++
Ребята, помогите пожалуйста! нужно решить уравнение методом итерации, а я в этом не шарю вообще (программирование раньше не изучал)!...

Циклические и итерационные алгоритмы - C++
Задачи эти по теме "Циклические и интерационные алгоритмы": 1. Дано целое число N (N>1), является числом Фибоначчи: N=Fk....

Итерационные и рекурсивные алгоритмы - C++
Вычислить на ЭВМ значение суммы членов бесконечного ряда с заданной точностью и значение суммы, определяемое пределом суммы ряда ( по...

Итерационные алгоритмы Visual C++ - C++
Прошу помочь с заданием.. я совсем не знаю как делать, пожалуйста :cry: y=\frac{arctg\, x+1}{\sqrt{2}}+\frac{arctg\,...

Обработка числовой информации. Итерационные алгоритмы. Циклы - C++
цели лабы 1) Организация циклов различной структуры. 2) Организация вложенных циклов. 3) Выделение отдельных цифр данного числа. Их...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Елена Едыгарова
34 / 20 / 9
Регистрация: 24.01.2014
Сообщений: 80
23.06.2014, 01:46 #2
Факториал и степень понимаю:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int fact(int n)
{
    if(n>1)
        return n*fact(n-1);
    else
        return n;
}
 
int step(int n,int m)
{
    if(m>1)
        return n*step(n,m-1);
    else
        return n;
 
}
Как сумму отношение в рекурсии найти - не понимаю...
S_el
2094 / 1601 / 307
Регистрация: 15.12.2013
Сообщений: 6,435
23.06.2014, 02:42 #3
Цитата Сообщение от Varloy Посмотреть сообщение
Помогите пожалуйста с заданием нужно решить на основе реккурентных отношений
Рекурсивно?

Елена Едыгарова, например так:
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
#include <iostream>
using namespace std;
double Summa(int n,int iter);
int fact(int n);
int step(int n,int m);
int main() {
    int N;
    cout<<"Vvedute N"<<endl;
    cin>>N;
    cout<<Summa(9,1)<<endl;
    return 0;
}
 
   double Summa(int n,int iter)
        {     
             double sum=(double)fact(iter)/(3*step(iter,iter));
            cout<<"Sum ="<<sum<<" iter"<<iter<<endl;
            if (iter != n)
            {
                iter++;
                return Summa(n, iter)+sum;
            }
            return sum;
        }
        
int fact(int n)
{
    if(n>1)
        return n*fact(n-1);
    else
        return n;
}
 
int step(int n,int m)
{
    if(m>1)
        return n*step(n,m-1);
    else
        return n;
 
}
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23385 / 15376 / 4526
Регистрация: 22.10.2011
Сообщений: 27,333
Записей в блоге: 4
23.06.2014, 11:08 #4
Ну что вы с рекурсией-то прицепились? Ясно же в названии темы написано: итерационные алгоритмы. Рекурсия (вызов подпрограммой самой себя) и рекуррентность (вычисление An+1 на основе известного An) - это совсем не одно и то же, прежде чем отвечать на форумах, надо хотя бы это знать...
zss
Модератор
Эксперт С++
6357 / 5921 / 1919
Регистрация: 18.12.2011
Сообщений: 15,217
Завершенные тесты: 1
23.06.2014, 12:17 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int step(int n)
{
   int p=1;
   for(int i=1;i<=n;i++)
        p*=n;
   return n;
}
int main()
{
   double s=0,f=1.,an;
    int i=1;
   do()
   {
      an=f/step(i); // степень рекуррентно не посчитать
      s+=an;
      i++;
      f*=i; // Считаем факториал рекуррентно
   }while(an>1e-10);
    cout<<s/3.0; // 3 вынесли за знак суммы
    return 0;
}
S_el
2094 / 1601 / 307
Регистрация: 15.12.2013
Сообщений: 6,435
23.06.2014, 13:59 #6
Цитата Сообщение от zss Посмотреть сообщение
an=f/step(i); // степень рекуррентно не посчитать
Но ведь вариант Елена Едыгарова рабочий.
zss
Модератор
Эксперт С++
6357 / 5921 / 1919
Регистрация: 18.12.2011
Сообщений: 15,217
Завершенные тесты: 1
23.06.2014, 16:00 #7
Цитата Сообщение от S_el Посмотреть сообщение
вариант Елена Едыгарова рабочий
А я разве спорю.
Я предложил рекуррентный (а не рекурсивный) алгоритм.
Psilon
Master of Orion
Эксперт .NET
5887 / 4784 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 5
Завершенные тесты: 4
23.06.2014, 16:25 #8
S_el, рабочий, но кривой. Тов. zss абсолютно правильно вас поправил. Не говоря про вычислительную сложность (O(n2) против O(n))

Добавлено через 3 минуты
только я бы double использовал, nn очень быстро растет, и в int не влезет.
S_el
2094 / 1601 / 307
Регистрация: 15.12.2013
Сообщений: 6,435
23.06.2014, 16:53 #9
Цитата Сообщение от zss Посмотреть сообщение
А я разве спорю.
Я предложил рекуррентный (а не рекурсивный) алгоритм.
Верно,опять невнимательно посмотрел
Елена Едыгарова
34 / 20 / 9
Регистрация: 24.01.2014
Сообщений: 80
24.06.2014, 09:37 #10
Цитата Сообщение от UI Посмотреть сообщение
надо хотя бы это знать.
Цитата Сообщение от S_el Посмотреть сообщение
Рекурсивно?
Теперь вот и я буду знать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2014, 09:37
Привет! Вот еще темы с ответами:

Циклические конструкции и итерационные алгоритмы. на Visual C++ 2008 - C++
Используя перебор значений найти все натуральные числа, не превосходящие заданного N и делящиеся на каждую из своих цифр. На С++!!! ...

задача на Итерационные алгоритмы. Проверить численно второй замечательный предел - C++
Есть задача на Итерационные алгоритмы: Помогите,пожалуйста, с решением:)

Итерационные циклы - C++
Помогите решить задачку на итерацию в С++ Просто на завтра нужно сдать)) плс

итерационные циклы - C++
void main() {setlocale(LC_ALL,&quot;Russian&quot;);const float eps=0.001f;float x; float y=x-1,y0,xn;int n=2; cout&lt;&lt;&quot;Введите x:&quot;; cin&gt;&gt;x; ...


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

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

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