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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.97
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
#1

Числа Каталана - C++

30.01.2010, 13:43. Просмотров 3853. Ответов 8
Метки нет (Все метки)

Числами Каталана Сn(n=0,1,2,...) называються числа 1,1,2,5,14,42,132,429,...
Числа Каталана являються решением рекуррентного уравнения
Co=1,Cn=CoCn-1+C1Cn-2+C2Cn-3+...+Cn-1Co при n>0
( -1,-2,-3, - это n-1,n-2,n-3)
Написать на языке С рекурсивную функцию вычисления чисел Каталана
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2010, 13:43     Числа Каталана
Посмотрите здесь:

Числа Каталана,можно ли проще? - C++
Задание :Числа Каталана Cn, которые играют большую роль в комбинаторике (например, Cn равно числу полных бинарных деревьев с n+1 листьями),...

Для заданного числа n составить последовательность Каталана - C++
Для заданного числа n составить последовательность Каталана, каждое число которого начиная с третьего вычисляется по формуле...

Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел? - C++
Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?

Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми - C++
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. ...

Числа Каталана - Delphi
В общем и целом, нужно delphi, потому что Console Appliccation моя версия не понимает. С паскаля не получится)

Скобковые последовательности. Числа Каталана. - Дискретная математика
Извесно что числа каталана показывают количество правильных скобковых последовательностей. n-количество скобок, а если есть несколько...

Числа Каталана, самое эффективное решение - Java SE
Здравствуйте. Есть типичная задача по числам каталана, пользователь вводит число н, нужно вывести число правильных возможных скобочных...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
30.01.2010, 14:50     Числа Каталана #2
Можно так.
И без всякой рекурсии получилось
Даже лучше без нее
Код
#include <stdio.h>
#define N 10
void main()
{ long kt[N]; int i, j;
 kt[0] = 1;
 for(i=1; i<N; i++) {
   kt[i] = 0;
   for(j=0; j<i; j++) {
     kt[i] += kt[j]*kt[i-j];
   }
 }
}
/*****************/
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
30.01.2010, 16:39  [ТС]     Числа Каталана #3
желательно рекурсия а то препод злой
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
30.01.2010, 21:16     Числа Каталана #4
Вот пусть он сам рекурсией эту херню и делает.
Глядишь, может и подобрее станет
Потом было бы любопытно сравнить его предложения с нашими по
1) Внятности кода
2) Эффективности
3) просто по кол-ву строк
4) по возможности переполнения стека
......................
Остальное - на его усмотрение - может какая польза в рекурсии и есть.
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
30.01.2010, 21:26  [ТС]     Числа Каталана #5
Day, вопросик а что такое #define N 10
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.01.2010, 21:39     Числа Каталана #6
Цитата Сообщение от [CN
Defender;515073]вопросик а что такое #define N 10
Директива #define
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
30.01.2010, 21:41  [ТС]     Числа Каталана #7
fasked, что она делает ? и как сделать что бы прога принимала от меня кол-во эл
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.01.2010, 21:51     Числа Каталана #8
Цитата Сообщение от [CN
Defender;515108]что она делает ? и как сделать что бы прога принимала от меня кол-во эл
Грубо говоря, все штуки объявленные дефайнами вставляются в код.
Чтобы прога принимала от тебя значения придется динамический массив делать

Добавлено через 6 минут
Например так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
    int N;
    printf("Введите N: ");
    scanf("%d", &N);
 
    long * kt = (long*)malloc(N*sizeof(long)); 
    int i, j;
    
    kt[0] = 1;
    for(i=1; i<N; i++) 
    {
        kt[i] = 0;
        for(j=0; j<i; j++) 
        {
            kt[i] += kt[j]*kt[i-j];
        }
    }
    
    free(kt);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2010, 18:57     Числа Каталана
Еще ссылки по теме:

Для заданного числа n составить последовательность Каталана - Pascal ABC
Для заданного числа n составить последовательность Каталана, каждое число которого начиная с третьего вычисляется по формуле, k1=k2=1

Написать программу вычисление чисел Каталана - Visual Basic .NET
Помогите пожалуйста написать программу с помощью рекурсии ибо итерации вот формула вычисление Cn = (2n)!/ (n+1)! * n!

Заполнить множество цифрами чисел Каталана - Turbo Pascal
Помогите с программой в паскале. Пожалуйста. Заполнить множество цифрами чисел Каталана &lt; 256. Числа Каталана определяются формулами...

В 2 поля ввести 2 числа и вывести все непарные числа больше первого числа и меньше второго - JavaScript
Нужно в 2 поля ввести 2 числа и вывести все непарные числа больше первого числа и меньше второго;

Получить из цифр числа четырехзначные числа, у которых цифры исходного числа идут в том же порядке - Pascal
Задано натуральное трехзначное число. Получить из его цифр четырехзначные числа, у которых цифры исходного числа идут в том же порядке, но...


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

Или воспользуйтесь поиском по форуму:
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
31.01.2010, 18:57     Числа Каталана #9
Написать на языке С рекурсивную функцию вычисления чисел Каталана
Все весьма тривиально.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
int Catalan( int n ) {
 
int i, sum;
 
if ( n<=0 ) { return 1; }
 
sum= 0;
for ( i= 0; i<n; i++ ) {
   sum+= Catalan( i )*Catalan( (n-1)-i );
}
return sum;
 
}
Yandex
Объявления
31.01.2010, 18:57     Числа Каталана
Ответ Создать тему
Опции темы

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