С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 59

Как это задание сделать через рекурсию?

24.10.2012, 20:36. Показов 1066. Ответов 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
#include<iostream>
#include<math.h>
using namespace std;
int n, k;
double rez,bin1,bin2;
int factorial(int a)
{   int fact=1;
    for(int i=1; i<=a;i++) fact*=i;
    return fact;
}
int main()
{
    
    cout<<"enter n and k"<<endl;
    cin>>n>>k;
    if(k>n) rez==0;
    if(k==0 || k==n) rez=1;
    if(k>0 && k<n)
    { 
        bin1= factorial(n-1)/(factorial(k)*factorial(n-1-k));
        bin2= factorial(n-1)/(factorial(k-1)*factorial(n-k));
        rez= bin1+bin2;
    }
    cout<<rez<<endl;
 
 
    system("pause");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.10.2012, 20:36
Ответы с готовыми решениями:

Как сделать это задание?
Определить номер первого из чисел sin x, sin(sin x), sin(sin(sin x)),.., меньшего по модулю 10^-3.

Как сделать это задание?
329 задание. Подскажите пожалуйста подробно, как это задание выполнить?

Как это сделать через рекурсию?
using System; class Program { public int a = new int; public int n; public int k; public int rec(int i, int...

5
 Аватар для doctor_lecter
284 / 157 / 30
Регистрация: 22.09.2012
Сообщений: 283
24.10.2012, 21:11
C++
1
2
3
4
5
6
7
8
unsigned int func(unsigned int n, unsigned int k) {
    if (n < k)
        return 0;
    else if ((k == 0) || (n == 0))
        return 1;
    else
        return func(n-1, k) + func(n-1, k-1);
}
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
24.10.2012, 21:19
doctor_lecter, маленькая опечатка во втором случае.
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
24.10.2012, 21:22
C++
1
2
3
4
int C(int n, int k)
{
   return (k == n || k == 0) ? 1 : (k < n ? C(n-1, k) + C(n-1, k-1) : 0);
}
0
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 59
24.10.2012, 21:45  [ТС]
Цитата Сообщение от doctor_lecter Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
unsigned int func(unsigned int n, unsigned int k) {
    if (n < k)
        return 0;
    else if ((k == 0) || (n == 0))
        return 1;
    else
        return func(n-1, k) + func(n-1, k-1);
}
Я не совсем понимаю рекурсию, но в вашем коде я не вижу ни операции факториала, ни операции умножения или деления, которые нужны для вычисления биномиальных коэфициентов. Обьясните, пожалуйста, почему
0
 Аватар для doctor_lecter
284 / 157 / 30
Регистрация: 22.09.2012
Сообщений: 283
24.10.2012, 23:07
litwisha, так при вычислении через рекурсию не нужны факториал и т.д. В моем коде написано то определении, которое у вас в 1 посту во вложении.

Например можно посчитать рекурсивно C13
0 < 1 < 3 Это 3 случай
C13 = C12 + C01 = ({3 случай} C11 + C01) + ({2 случай} 1) = [ ({2} 1) + ({2} 1) ] + 1 = 1 + 1 + 1 = 3
Это совпадает, если посчитать по определению 3!/(2!*1!) = 6/2 = 3
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2012, 23:07
Помогаю со студенческими работами здесь

Как сделать это задание?
Требуется доработать систему возможности получения дополнительных данных из внешних файлов и сохранение их в базе. 1c

Как сделать это задание?
Исполнитель Универсальная машина состоит из программной памяти и памяти данных. В программной памяти хранятся программы, по которым...

Как сделать это задание?
Дано целое число N (&gt; 1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 2 + . . . + K будет больше или равна N, и саму эту...

Как сделать это задание?
Делаю эту задачу: http://www.itmathrepetitor.ru/zadachi-po-php-vychisleniya/, раздел &quot;Работа с формой&quot;, 6-ое задание. Ну кнопки...

Как сделать это задание без RL-C контуров
Здравствуйте. Прошу помочь разобраться в scilab. Как оказалось в scilab не работают RL-С контуры, в связи с этим возникли большие...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru