짧은 (최소 문자) 피보나치 시퀀스 생성기를 요청 하는 잘 알려진 질문이 있습니다 .
누군가가 매우 짧은 공간에서 피보나치 시퀀스의 첫 번째 N 요소 만 생성 할 수 있는지 알고 싶습니다. 나는 파이썬으로 그것을하려고 노력하고 있지만, 어떤 언어로든 짧은 대답에 관심이 있습니다. 함수 F (N)은 시퀀스의 첫 번째 N 요소를 생성하여 함수의 리턴으로 리턴하거나 인쇄합니다.
흥미롭게도 코드 골프 응답 1 1 2
은 대신으로 시작하는 것 같습니다 0 1 1 2
. 이것이 코드 골프 또는 일반 프로그래밍의 관례입니까? (Wikipedia에 따르면 피보나치 수열은 0으로 시작합니다.)
파이썬 샘플 (처음 5 가지 요소) :
def f(i,j,n):
if n>0:
print i;
f(j,i+j,n-1)
f(1,1,5)
F_0 = 0, F_1 = 1
또는 동등하게 정의됩니다 F_1 = 1, F_2 = 1
. 차이점은 인덱스 0 (프로그래밍에서 더 일반적) 또는 1 (수학에서 더 일반적)에서 시퀀스를 시작할지 여부입니다.
F_0 = 0, F_1 = 1
는 행렬 표현과 함께 단순하게 확실한 이점이 [[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]]
있습니다.