Python Math: nth каталонский номер
Python Math: упражнение 25 с решением
Напишите программу на Python для n-го каталонского номера.
В комбинаторной математике каталонские числа образуют последовательность натуральных чисел, которые встречаются в различных задачах счета, часто с участием рекурсивно определенных объектов. Они названы в честь бельгийского математика Эжена Шарля Каталана (1814–1894).
Используя нумерацию с нуля, n-е каталонское число дается непосредственно в терминах биномиальных коэффициентов как
Первые каталонские числа для n = 0, 1, 2, 3,… являются
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, ....
Иллюстрированная презентация
C5 = 42 непересекающихся раздела из 5-элементного набора (ниже, остальные 10 из 52 разделов)
Кредиты изображений: Watchduck
Пример решения : -
Код Python:
def catalan_number(num):
if num <=1:
return 1
res_num = 0
for i in range(num):
res_num += catalan_number(i) * catalan_number(num-i-1)
return res_num
for n in range(10):
print(catalan_number(n))
Пример вывода:
1 1 2 5 14 42 132 429 1430 4862
Блок - схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу на Python для генерации всех перестановок списка в Python.
Далее: Написать программу на Python для вывода числа с запятыми в виде разделителей тысяч (с правой стороны)?
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования