배경
대부분의 사람들은 피보나치 수에 익숙 합니다F(n)
.
0, 1, 1, 2, 3, 5, 8, 13, 21 ...
이러한 재귀 함수에 의해 형성되고 F(n) = F(n-1) + F(n-2)
함께 F(0)=0
와 F(1)=1
. A000045
밀접하게 관련된 순서는 Lucas 번호입니다 L(m)
.
2, 1, 3, 4, 7, 11, 18, 29 ...
이러한 재귀 함수에 의해 형성되고 L(m) = L(m-1) + L(m-2)
함께 L(0)=2
와 L(1)=1
. A000032
우리는 짝수 / 홀수 인덱스를 기반으로 두 시퀀스를 번갈아 가며
A(x) = F(x)
if x mod 2 = 0
와 A(x) = L(x)
그렇지 않으면 구성을 사용할 수 있습니다. 예를 들어 since와 A(4)
같습니다 . 우리는이 순서를 부를 것이다 루카스 - nacci 숫자 , :F(4)
4 mod 2 = 0
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
, 및 A(3)=4
. A005013
도전
입력이 주어지면 위에서 설명한대로 숫자 n
시퀀스를 출력하십시오 . 가장 적은 바이트 (또는 메타에서 개별적으로 결정된 LabVIEW 와 같은 바이트 등가 )가 이깁니다.n+1
A(n)
입력
하나의 음이 아닌 정수입니다 n
.
산출
번호 목록과는 루카스 - nacci 수의 서브 순서에 해당 A(0)
하는 A(n)
. 목록은 위에서 설명한 순서대로 정렬되어야합니다.
규칙
- 표준 코드 골프 규칙 및 허점 제한이 적용됩니다.
- 표준 입 / 출력 규칙이 적용됩니다.
- 입력 번호는 단항 또는 10 진수, 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