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

найти функцию Аккермана - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ряды (задача) http://www.cyberforum.ru/cpp-beginners/thread35618.html
Задан текст, в котором присутствующие скобки. Проанализировать его с целью выявления и локализации ошибок в использовании скобок. Возможны три типа ошибок : а) несоответствие скобок по количествам; б) закрывающая скобка расположена к открывающей; в) отсутствующий текст между скобками. Результатом работы программы должно быть сообщение о типах допущенных ошибок и их место в тексте...
C++ Массивы Добрый вечер,прошу помочь с задачей По квадратной матрице А построить матрицу B той же размерности. Элемент bij определяется таким способом: через aij проводятся диагонали, параллельные главной и побочной; Заранее благодарен за помощь... http://www.cyberforum.ru/cpp-beginners/thread35617.html
C++ (Вопрос) Базовые понятия. Реализация разветвленных вычислительных процессов.
Добрый вечер прошу помочь с задачей: Определить, можно ли построить треугольник по заданным длинам сторон a, b, c. Если построение возможно, то определить тип треугольника: прямоугольный, тупоугольный, остроугольный, равносторонний, равнобедренный и тому подобное Для равностороннего треугольника – вычислить его высоту, для равнобедренного - медиану к основе. Заранее благодарен за помощь
C++ Разложить функцию f (x) в ряд Тейлора
Добрый вечер,прошу помочь с двумя задачами... Для заданных n и m вычислить значение функции в, разложив функцию f(x) в ряд Тейлора. Аргумент функции f(x) изменяется от хn к хк с шагом D. Для вычисления факториала использовать рекурсивную функцию. Определить погрешность вычисления значения функции f(x). y=(1/((x^2)-1)^1/2);f(x)=x^(1/2);xn=-2;xk=2;delt=0.5;...
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread35573.html
такая задача... задать два вектора А и В , в вектор С поместить отрицательные элементы этих векторов, в вектор D положительные в возростающем порядке, а вектор Е - нулевые, найти минимальные по модулю элементы векторов А и В, в конце нужно заменить элементы вектора А - умножить на скаляр а - квадратный корень из индекса элемента...вот кое-что набросала..... #include <stdio.h> #include <conio.h>...
C++ Операторы принятия решения и операторы цикла. Пожалуйста, помогите. Нужно срочно сделать задания: 1)Ввести с клавиатуры три символа sym1, sym2, sym3. Поменять их значения таким образом, чтобы в sym3 оказалось значение, находящееся ближе всего к началу алфавита, в sym2 – следующее значение, в sym1 – значение, находящееся ближе всего к концу алфавита. 2)Ввести с клавиатуры 30 действительных чисел (положительных и отрицательных). Определить... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
20.02.2010, 13:54     найти функцию Аккермана
Цитата Сообщение от From_Tula Посмотреть сообщение
честно не понял что в твоей конкретно не так...
а эта работает только на маленькие числа, на большие stack overflow пишет...
А как от этого избавиться сам не знаю...
Функция Аккермана — простой пример вычислимой функции, которая не является примитивно рекурсивной. Она принимает два неотрицательных целых числа в качестве параметров и возвращает натуральное число, обозначается . Эта функция растёт очень быстро, например, число А(4, 4) настолько велико, что количество цифр в порядке этого числа многократно превосходит количество атомов в наблюдаемой части вселенной.
Подробней здесь
А вообще, когда у нас была тема "Рекурсия", для вычисления функции Аккермана предлагалось использовать вспомогательную функцию
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
int smacc(int n, int x)//Вспомогательная функция
{
    switch(n)
    {
    case 0: return (x+1);
    case 1: return x;
    case 2: return 0;
    case 3: return 1;
    default: return 2;
    }
}
 
int ackr(int n, int x, int y)//Рекурсивная функция
{
    int z;
    if(n==0||y==0)
        z=smacc(n, x);
    else
    {
        z=ackr(n, x, y-1);/*Рекурсивные   */
        z=ackr(n-1, z, x);/*вызовы функции*/
    }
    return z;
}
 
Текущее время: 17:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru