มีคำถามที่รู้จักกันดีที่นี่ซึ่งขอเครื่องกำเนิดลำดับลำดับฟีโบนักชีสั้น ๆ
ฉันต้องการที่จะรู้ว่าใครบางคนสามารถสร้างองค์ประกอบ N แรกเท่านั้นจากลำดับฟีโบนักชีในพื้นที่ที่สั้นมาก ฉันพยายามทำมันด้วยไพ ธ อน แต่ฉันสนใจคำตอบสั้น ๆ ในภาษาใด ๆ ฟังก์ชั่น F (N) สร้างองค์ประกอบ N แรกของลำดับทั้งส่งคืนพวกเขาเป็นการกลับมาของฟังก์ชั่นหรือพิมพ์พวกเขา
ที่น่าสนใจมันก็ดูเหมือนว่าคำตอบรหัสกอล์ฟเริ่มต้นด้วยแทน1 1 2
0 1 1 2
นั่นคือการประชุมในการเขียนโปรแกรมกอล์ฟหรือการเขียนโปรแกรมทั่วไป? (วิกิพีเดียบอกว่าลำดับฟีโบนักชีเริ่มต้นด้วยศูนย์)
ตัวอย่าง Python (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}]]