16일: 파스칼의 피라미드
5649 단어 100daysofcodepython
파스칼의 삼각형처럼 각 숫자는 그 위에 있는 숫자의 합입니다. 피라미드의 끝(0행)은 1입니다. 1행에서도 삼각형에서와 마찬가지로 세 숫자는 그 위에 있는 숫자의 합이기 때문에 1입니다. 다음 행의 각 숫자는 그 위에 있는 숫자의 합입니다.
from functools import lru_cache
@lru_cache(maxsize=None)
def trinomial_coefficient(l, n, k):
if l < 0 or n < 0 or k < 0:
return 0
head = (n == 0 and k == 0)
bottom_left = (n == l) and (k == 0)
bottom_right = (n == l) and (k == l)
if head or bottom_left or bottom_right:
return 1
return (trinomial_coefficient(l-1, n-1, k-1) +
trinomial_coefficient(l-1, n-1, k) +
trinomial_coefficient(l-1, n, k))
def pascal_pyramid(l):
rows = list()
for n in range(l+1):
coefficients = list()
for k in range(n+1):
coefficients.append(trinomial_coefficient(l, n, k))
rows.append(coefficients)
return rows
for row in pascal_pyramid(5-1):
print(row)
Reference
이 문제에 관하여(16일: 파스칼의 피라미드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mattryanmtl/day-16-pascal-s-pyramid-3a10텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)