Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 25.10.2020
Сообщений: 168

Найти число сочетаний из N элементов по K - с помощью рекуррентного соотношения

10.04.2021, 12:19. Показов 3928. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Описать рекурсивную функцию Combin1 (N, K) целого типа, находящую C (N, K) - число сочетаний из N элементов по K - с помощью рекуррентного соотношения: C (N, 0) = C (N, N) = 1, C (N, K) = C (N - 1, K) + C (N - 1, K - 1) при 0 <K <N. Параметры функции - целые числа; N> 0, 0 ≤ K ≤ N. Дано число N и пять различных значений K. Вывести числа C (N, K) вместе с количеством рекурсивных вызовов функции Combin1, необходимых для их нахождения.
Python
1
2
3
4
5
6
7
8
9
10
11
12
def Combin1 (N, K):
    num = 0
    if K == 0 or K == N:
        C = 1
    else:
        C = Combin1(N-1, K)+Combin1(N-1, K-1)
        num += 1
 
if __name__ == '__main__':
    N = int(input("N= "))
    K = int(input("K= "))
    print(Combin1 (N, K))
Здесь вроде всё правильно, но почему-то выбивает ошибку из-за + в функции.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2021, 12:19
Ответы с готовыми решениями:

Найти число сочетаний из N элементов по K с помощью рекуррентного соотношения
Описать рекурсивную функцию Combin2(N, K) целого типа, находящую C(N, K) — число сочетаний из N элементов по K — с помощью рекуррентного...

Описать рекурсивную функцию целого типа, находящую C(N, K) — число сочетаний из N элементов по K — с помощью рекуррентного соотношения:
Описать рекурсивную функцию целого типа, находящую C(N, K) — число сочетаний из N элементов по K — с помощью рекуррентного соотношения: ...

Описать рекурсивную функцию Combin2(N, K) целого типа, находящую C(N, K) — число сочетаний из N элементов по K — с помощью рекуррентного соотношения
Recur7. Описать рекурсивную функцию Combin2(N, K) целого типа, находящую C(N, K) — число сочетаний из N элементов по K — с помощью...

13
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
10.04.2021, 12:23
asdgF333, смысл то в чем? функция ничего не возвращает, чего ты там ее принтишь тогда?

Цитата Сообщение от asdgF333 Посмотреть сообщение
но почему-то выбивает ошибку из-за + в функции.
и ошибка конечно секретная?
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
10.04.2021, 12:28
Цитата Сообщение от asdgF333 Посмотреть сообщение
Здесь вроде всё правильно, но почему-то выбивает ошибку из-за + в функции.
Дай угадаю:

RuntimeError: maximum recursion depth exceeded.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
10.04.2021, 12:33
Arsegg, Вы не внул -ли той самой Ванги))?
0
0 / 0 / 0
Регистрация: 25.10.2020
Сообщений: 168
10.04.2021, 12:33  [ТС]
Вот такая ошибка
C = Combin1(N-1, K)+Combin1(N-1, K-1)
[Previous line repeated 1 more time]
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
10.04.2021, 12:41

Не по теме:

Цитата Сообщение от Dax Посмотреть сообщение
Вы не внул -ли той самой Ванги))?
Тогда уж реинкарнация, т. к. болгар в роду вроде не припомню))




Добавлено через 1 минуту
Цитата Сообщение от asdgF333 Посмотреть сообщение
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
Что будет None + None?
0
0 / 0 / 0
Регистрация: 25.10.2020
Сообщений: 168
10.04.2021, 12:49  [ТС]
None, как это исправить
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
10.04.2021, 12:50

Не по теме:


Миль пардон за дублирование, только что восстановился доступ к форуму из ошибки 502.


Цитата Сообщение от Arsegg Посмотреть сообщение
None + None?
Предсказываю , что None также вижу, что следует читать о глубине рекрусии в python
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
10.04.2021, 12:53
Цитата Сообщение от asdgF333 Посмотреть сообщение
None, как это исправить
Очевидно, что-то нужно возвращать из функции.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
10.04.2021, 12:56
https://neopythonic.blogspot.c... ation.html
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
10.04.2021, 13:02
Если я правильно понял условие задачи:
Python
1
2
3
4
5
6
7
def Combin1(n, k):
    calls = 0
    def inner(n, k):
        nonlocal calls
        calls += 1
        return 1 if k == 0 or n == k else inner(n - 1, k) + inner(n - 1, k - 1)
    return inner(n, k), calls
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38196 / 21129 / 4309
Регистрация: 12.02.2012
Сообщений: 34,737
Записей в блоге: 14
10.04.2021, 15:45
Arsegg, это неэффективный алгоритм. Гораздо лучше использовать рекуррентное соотношение, основанное на треугольнике Паскаля и считать сразу все коэфф. C(n,k) при k от 0 до n

Python
1
2
3
4
5
6
7
8
9
10
11
def comb(n):
    if n==0:
        return [1]
    else:
        tmp=comb(n-1)
        res=[]
        for i in range(1,len(tmp)):
            res.append(tmp[i-1]+tmp[i])
        return [1]+res+[1]
        
print(comb(100))

Результат:

Кликните здесь для просмотра всего текста

[1, 100, 4950, 161700, 3921225, 75287520, 1192052400, 16007560800, 186087894300, 1902231808400, 17310309456440, 141629804643600, 10504210511067
00, 7110542499799200, 44186942677323600, 253338471349988640, 1345860629046814650, 6650134872937201800, 30664510802988208300, 132341572939212267
400, 535983370403809682970, 2041841411062132125600, 7332066885177656269200, 24865270306254660391200, 79776075565900368755100, 24251926972033712
1015504, 699574816500972464467800, 1917353200780443050763600, 4998813702034726525205100, 12410847811948286545336800, 29372339821610944823963760
, 66324638306863423796047200, 143012501349174257560226775, 294692427022540894366527900, 580717429720889409486981450, 10950671531879628864611650
20, 1977204582144932989443770175, 3420029547493938143902737600, 5670048986634686922786117600, 9013924030034630492634340800, 1374623414580281150
1267369720, 20116440213369968050635175200, 28258808871162574166368460400, 38116532895986727945334202400, 49378235797073715747364762200, 6144847
1214136179596720592960, 73470998190814997343905056800, 84413487283064039501507937600, 93206558875049876949581681100, 98913082887808032681188722
800, 100891344545564193334812497256, 98913082887808032681188722800, 93206558875049876949581681100, 84413487283064039501507937600, 7347099819081
4997343905056800, 61448471214136179596720592960, 49378235797073715747364762200, 38116532895986727945334202400, 28258808871162574166368460400, 2
0116440213369968050635175200, 13746234145802811501267369720, 9013924030034630492634340800, 5670048986634686922786117600, 3420029547493938143902
737600, 1977204582144932989443770175, 1095067153187962886461165020, 580717429720889409486981450, 294692427022540894366527900, 14301250134917425
7560226775, 66324638306863423796047200, 29372339821610944823963760, 12410847811948286545336800, 4998813702034726525205100, 19173532007804430507
63600, 699574816500972464467800, 242519269720337121015504, 79776075565900368755100, 24865270306254660391200, 7332066885177656269200, 2041841411
062132125600, 535983370403809682970, 132341572939212267400, 30664510802988208300, 6650134872937201800, 1345860629046814650, 253338471349988640,
44186942677323600, 7110542499799200, 1050421051106700, 141629804643600, 17310309456440, 1902231808400, 186087894300, 16007560800, 1192052400,
75287520, 3921225, 161700, 4950, 100, 1]
1
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
10.04.2021, 15:48
Catstail, не подскажете, возможно ли здесь применить быстрое возведение в степень матрицы? По аналогии с задачей на вычисление n-го элемента последовательности Фибоначчи?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38196 / 21129 / 4309
Регистрация: 12.02.2012
Сообщений: 34,737
Записей в блоге: 14
10.04.2021, 17:05
Arsegg, надо подумать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2021, 17:05
Помогаю со студенческими работами здесь

Найти коэффициент рекуррентного соотношения
Помогите найти коэффициент рекуррентного соотношения.

Найти первые 5 членов рекуррентного соотношения.
выручайте плиз!

Найти общее решение рекуррентного соотношения 5-го порядка
И снова в бой. На этот раз рекуррентные соотношения. f(n+5)=(-4)*f(n+4)+3*f(n+3)+34*f(n+2)+52*f(n+1)+24*f(n) Вот так оно выглядит. ...

Найти общее решение рекуррентного соотношения пятого порядка
Найти общее решение рекуррентного соотношения пятого порядка. Как далее решать, в ответе должны получиться sin, cos?

Найти общее решение рекуррентного соотношения и сделать проверку
f(n+2)-4f(n+1)+13f(n)=0 f(n+2)=4f(n+1)-13f(n) {2}^{n+2}=4*{2}^{n+1}+13*{2}^{n} а дальше как?


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru