베르누이의 삼각형에 대한 생성기를 만들고 싶다면 삼각형의 j
행의 숫자 i
은 j
파스칼 삼각형의 첫 번째 i
숫자의 부분 합계입니다.제네레이터 함수가 항상 같은 값을 반환하는 이유는 무엇입니까?
삼각형은 다음과 같이 보일 것이다 : 목록에서 파이썬으로 표현 될 것이다
:
이[[1], [1,2], [1,3,4], [1,4,7,8]
내 생성 기능이 올바른지 최초의 출력으로 [1]
를 반환 하지만 항상 []
을 반환합니다!
내 코드의 그 :
def next_row(row):
n = len(row)
new_row = [row[0]] + [row[i] + row[i+1] for i in range(n - 1)] + [row[-1]]
return new_row
def generate_pascal():
row =[1]
while True:
yield row
row=next_row(row)
def generate_bernoulli():
row=next(generate_pascal())
n=len(row)
while True:
yield row
row=[row[0]+sum(row[0:i]) for i in range(n-1)]
항상 정확하게 무엇을 의미합니까? – thefourtheye
'generate_bernoulli'에서'n'을 절대 업데이트하지 않습니다. – roippi
'generate_pascal'도 한 번만 호출합니다. 무엇을 성취하려고합니까? – jonrsharpe