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

Оператор примитивной рекурсии - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
20.11.2011, 19:57     Оператор примитивной рекурсии #1
всем привет, помогите пожалуйста решить данную задачку..
Вычисление выражений, связанных с применением оператора примитивной рекурсии
к примеру вот такие выражения 3x+2y и 2x-4y
как я понял что пользователь вводит значение x до какого делать рекурсию и вводить значение функции начальную т.е. f(0)=g
обычно пишут что g=0
как написать функцию что то затрудняюсь вообще тут
среда разработки VS 2010, частично на с++: знаком лишь библиотекой iostream, в большей степени на си.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2011, 19:57     Оператор примитивной рекурсии
Посмотрите здесь:

задание по рекурсии C++
По поводу рекурсии C++
Вопрос по рекурсии C++
рекурсии... C++
Вопрос по рекурсии C++
C++ Кэширование рекурсии
C++ Использование рекурсии
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
20.11.2011, 20:16     Оператор примитивной рекурсии #2
eddilou, по двум переменным? Даже при http://www.cyberforum.ru/cgi-bin/latex.cgi?x = y = 10^5, стеку потратите немерянно...
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
20.11.2011, 20:35  [ТС]     Оператор примитивной рекурсии #3
Цитата Сообщение от iama Посмотреть сообщение
eddilou, по двум переменным? Даже при http://www.cyberforum.ru/cgi-bin/latex.cgi?x = y = 10^5, стеку потратите немерянно...
что вы имеете в виду?
переменная одна вместо y результат предыдущей я так понял
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
20.11.2011, 20:53     Оператор примитивной рекурсии #4
eddilou, то есть, например, y = 5x - 2, рекурсивно найти y(x)?
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
20.11.2011, 21:23  [ТС]     Оператор примитивной рекурсии #5
Цитата Сообщение от iama Посмотреть сообщение
eddilou, то есть, например, y = 5x - 2, рекурсивно найти y(x)?
ну как бы да НО есть же как говорится ограничение к примеру x=5 т.е. x меняется от 0 до 5 включительно вот и надо лишь сам алгоритм или функцию а то что найти комп сам это сделает
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
20.11.2011, 21:29     Оператор примитивной рекурсии #6
C++
1
2
3
4
5
6
7
int y (int x)
{
  if (x == 0)
    return -2;
  
  return y(x-1) - 2;
}
Для той конкретной функции и неотрицательных х.
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
20.11.2011, 21:35  [ТС]     Оператор примитивной рекурсии #7
Цитата Сообщение от iama Посмотреть сообщение
C++
1
2
3
4
5
6
7
int y (int x)
{
  if (x == 0)
    return -2;
  
  return y(x-1) - 2;
}
Для той конкретной функции и неотрицательных х.
f(0)=0
f(1)=3*0+2*0=0
f(2)=3*1+2*0=3 уже не совпадет с алгоритмом который описан выще
f(3)=3*2+2*3=12 и тд

если интересно про примитивно рекурсивные функции то вот
http://ru.wikipedia.org/wiki/Рекурси...86.D0.B8.D1.8F
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
20.11.2011, 21:38     Оператор примитивной рекурсии #8
eddilou, если y = 5x - 2, то моя функция правильно находит y(x), если тебе нужно что-то другое - обьясни внятно.

Точней,
C++
1
2
3
4
5
6
7
int y (int x)
{
  if (x == 0)
    return -2;
  
  return 5*y(x-1) - 2;
}
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
20.11.2011, 21:38     Оператор примитивной рекурсии #9
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
double func(double x)
{
    return - ( 3.0 * x / 2.0 ); // 3x + 2y
}
 
void rek_print(double x, const int top)
{
    if (x < top)
    {
        printf("%lf\t", func(x));
        rek_print(x + 0.1, top);
    }
}
 
int main()
{
    double x;
    int max_lim = 10, min_lim = 0;
    rek_print( (x = ( double ) min_lim),  max_lim);
    return 0;
}
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
20.11.2011, 21:45  [ТС]     Оператор примитивной рекурсии #10
не совсем верно считает
т.к. там дробных не должно быть
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
20.11.2011, 21:47     Оператор примитивной рекурсии #11
Цитата Сообщение от eddilou Посмотреть сообщение
не совсем верно считает
т.к. там дробных не должно быть
а переписать на целые религия не позволяет?
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
20.11.2011, 21:50  [ТС]     Оператор примитивной рекурсии #12
Цитата Сообщение от iama Посмотреть сообщение
eddilou, если y = 5x - 2, то моя функция правильно находит y(x), если тебе нужно что-то другое - обьясни внятно.

Точней,
C++
1
2
3
4
5
6
7
int y (int x)
{
  if (x == 0)
    return -2;
  
  return 5*y(x-1) - 2;
}
мне нужно та функция которая делает такой расчсет который указал выше
формула f(n)=3n+2f(n-1)
это приблизительно такая формула
я написал примерный расчет и скинул ссылку на википедию
у тебя уже при x=0 отриц значение соотв функция при отриц не определена

Добавлено через 2 минуты
Цитата Сообщение от alkagolik Посмотреть сообщение
а переписать на целые религия не позволяет?
переписал на целые вместо х+0,1 наипсал х+1 только суть все равно осталась т.к. /2 дает дробь я выше описал как примерно выглядит решение в ручную
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
20.11.2011, 21:52     Оператор примитивной рекурсии #13
Цитата Сообщение от eddilou Посмотреть сообщение
формула f(n)=3n+2f(n-1)
так с этого и стоило начинать
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
20.11.2011, 21:53     Оператор примитивной рекурсии #14
Цитата Сообщение от eddilou Посмотреть сообщение
f(n)=3n+2f(n-1)
Цитата Сообщение от eddilou Посмотреть сообщение
f(0)=0
C++
1
2
3
4
5
6
7
int f (int n)
{
  if (n == 0)
    return 0;
 
  return 3*n + 2*f(n-1);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2011, 22:32     Оператор примитивной рекурсии
Еще ссылки по теме:

C++ Оператор break как оператор go to next
C++ нужен ли while в рекурсии?
C++ В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор?
Запутался в Рекурсии C++
Избавиться от рекурсии C++

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

Или воспользуйтесь поиском по форуму:
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
20.11.2011, 22:32  [ТС]     Оператор примитивной рекурсии #15
Цитата Сообщение от alkagolik Посмотреть сообщение
так с этого и стоило начинать
я же написал выше пример и написал ссылку на вики
если конкретно то вот ссылка на пдф книгу на 12 стр написано о примитивно рекурсивной функции
ftp://ftp.iao.ru/incoming/Y4e6a/U4eb...%20PDF/196.pdf

Добавлено через 35 минут
Цитата Сообщение от iama Посмотреть сообщение
C++
1
2
3
4
5
6
7
int f (int n)
{
  if (n == 0)
    return 0;
 
  return 3*n + 2*f(n-1);
}
спасибо, я тут немного переделал и все ок работает ))) спасибо еще раз ))
понял принцип работы
Yandex
Объявления
20.11.2011, 22:32     Оператор примитивной рекурсии
Ответ Создать тему
Опции темы

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