พื้นหลัง
ทุกคนส่วนใหญ่คุ้นเคยกับตัวเลขฟีโบนักชี F(n)
:
0, 1, 1, 2, 3, 5, 8, 13, 21 ...
เหล่านี้จะเกิดขึ้นจากฟังก์ชั่นเรียกซ้ำตัวเองF(n) = F(n-1) + F(n-2)
ด้วยและF(0)=0
A000045F(1)=1
ลำดับที่เกี่ยวข้องอย่างใกล้ชิดคือหมายเลข Lucas L(m)
:
2, 1, 3, 4, 7, 11, 18, 29 ...
เหล่านี้จะเกิดขึ้นจากฟังก์ชั่นเรียกซ้ำตัวเองL(m) = L(m-1) + L(m-2)
ด้วยและL(0)=2
A000032L(1)=1
เราสามารถสลับระหว่างสองลำดับขึ้นอยู่กับดัชนีคู่ / คี่กับการก่อสร้าง
A(x) = F(x)
ถ้าx mod 2 = 0
และเป็นA(x) = L(x)
อย่างอื่น ตัวอย่างเช่นA(4)
มีค่าเท่ากับตั้งแต่F(4)
4 mod 2 = 0
เราจะเรียกลำดับนี้เบอร์ Lucas-nacci , A(x)
:
0, 1, 1, 4, 3, 11, 8, 29, 21, 76 ...
นี้สามารถเกิดขึ้นจากฟังก์ชั่นเรียกซ้ำตัวเองA(x) = 3*A(x-2) - A(x-4)
ด้วยA(0)=0
, A(1)=1
, และA(2)=1
A005013A(3)=4
ท้าทาย
รับอินพุตn
ส่งออกลำดับของn+1
ตัวเลขถึงและรวมถึงA(n)
ตามที่อธิบายไว้ข้างต้น ไบต์น้อยที่สุด (หรือไบต์เทียบเท่าเช่นLabVIEWตามที่กำหนดเป็นรายบุคคลใน Meta) ชนะ
อินพุต
n
จำนวนเต็มไม่เป็นลบเดียว
เอาท์พุต
รายการของตัวเลขที่สอดคล้องกับ subsequence ของตัวเลข Lucas-nacci จากไปA(0)
A(n)
รายการจะต้องอยู่ในลำดับตามที่อธิบายไว้ข้างต้น
กฎระเบียบ
- กฎของรหัสกอล์ฟมาตรฐานและข้อ จำกัด ทางหนีใช้
- ใช้กฎอินพุต / เอาต์พุตมาตรฐาน
- หมายเลขอินพุตสามารถอยู่ในรูปแบบที่เหมาะสม: unary หรือทศนิยมอ่านจาก STDIN ฟังก์ชันหรืออาร์กิวเมนต์บรรทัดคำสั่ง ฯลฯ - ตัวเลือกของคุณ
- เอาต์พุตสามารถพิมพ์ไปที่ STDOUT หรือส่งคืนเป็นผลมาจากการเรียกใช้ฟังก์ชัน หากพิมพ์ตัวคั่นที่เหมาะสมเพื่อแยกความแตกต่างจะต้องรวมอยู่ด้วย (คั่นด้วยช่องว่างคั่นด้วยเครื่องหมายจุลภาค ฯลฯ )
- นอกจากนี้หากเอาต์พุตไปยัง STDOUT, ช่องว่างโดยรอบ, การขึ้นบรรทัดใหม่, ฯลฯ จะเป็นตัวเลือกทั้งหมด
- หากอินพุตเป็นจำนวนเต็มที่ไม่ใช่หรือจำนวนเต็มลบโปรแกรมสามารถทำอะไรก็ได้หรืออะไรก็ได้เนื่องจากพฤติกรรมไม่ได้กำหนดไว้
ตัวอย่าง
Input -> Output
0 -> 0
5 -> 0, 1, 1, 4, 3, 11
18 -> 0, 1, 1, 4, 3, 11, 8, 29, 21, 76, 55, 199, 144, 521, 377, 1364, 987, 3571, 2584