배경
프랙탈 시퀀스 는 모든 정수의 첫 번째 발생을 제거하고 이전과 동일한 순서로 끝날 수있는 정수 시퀀스이다.
이러한 간단한 시퀀스를 Kimberling 's paraphrases 라고 합니다. 양수로 시작하십시오.
1, 2, 3, 4, 5, 6, 7, 8, 9, ...
그런 다음 몇 가지 빈칸으로 리플 링하십시오.
1, _, 2, _, 3, _, 4, _, 5, _, 6, _, 7, _, 8, _, 9, ...
그런 다음 시퀀스 자체 (공백 포함)로 빈칸을 반복적으로 채 웁니다.
1, 1, 2, _, 3, 2, 4, _, 5, 3, 6, _, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, _, 5, 3, 6, 2, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 2, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 2, 7, 4, 8, 1, 9, ...
이것이 우리의 프랙탈 시퀀스입니다! 이제 부분 합계를 보자.
1, 2, 4, 5, 8, 10, 14, 15, 20, 23, 29, 31, 38, 42, 50, 51, 60, ...
그러나이 과정을 반복하면 어떻게 될까요? 새 시퀀스를 "실용화"(즉, 위 단계에서 얻은 부분 합) :
1, _, 2, _, 4, _, 5, _, 8, _, 10, _, 14, _, 15, _, 20, _, 23, ...
1, 1, 2, _, 4, 2, 5, _, 8, 4, 10, _, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, _, 8, 4, 10, 2, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, 1, 8, 4, 10, 2, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, 1, 8, 4, 10, 2, 14, 5, 15, 1, 20, 8, 23, ...
그리고 부분 합계를 다시 가져옵니다.
1, 2, 4, 5, 9, 11, 16, 17, 25, 29, 39, 41, 55, 60, 75, 76, 96, ...
헹구고 반복하십시오. 이 과정이 수렴된다는 것이 밝혀졌습니다. 이 프로세스를 반복 할 때마다 시퀀스의 더 큰 접두사가 고정 된 상태로 유지됩니다. 무한 반복 후에는 OEIS A085765로 끝납니다 .
재미있는 사실 : 이 과정은 원래 시퀀스가로 시작하는 한 자연수에서 시작하지 않더라도 동일한 시퀀스로 수렴됩니다 1
. 원래 시퀀스가 다른로 시작 x
하면 x*A085765
대신에 얻을 수 있습니다.
도전
양의 정수가 주어지면 수렴 된 시퀀스 N
의 N
th 요소를 출력하십시오 .
STDIN (또는 가장 가까운 대안), 명령 행 인수 또는 함수 인수를 통해 입력을 받고 STDOUT (또는 가장 가까운 대안), 함수 리턴 값 또는 함수 (out) 매개 변수를 통해 결과를 출력하는 프로그램 또는 함수를 작성할 수 있습니다.
색인 N
이 0 또는 1을 기준으로 할지 선택할 수 있습니다 .
테스트 사례
순서는 다음과 같이 시작합니다.
1, 2, 4, 5, 9, 11, 16, 17, 26, 30, 41, 43, 59, 64, 81, 82, 108, 117, 147, 151, 192, 203, 246, 248, 307, 323, 387, 392, 473, 490, 572, 573, 681, 707, 824, 833, 980, 1010, 1161, 1165, 1357, 1398, 1601, 1612, 1858, 1901, 2149, 2151, 2458, 2517
따라서 input 5
은 output이어야합니다 9
.
다음은 첫 번째 N
숫자 를 생성 하는 순진한 CJam 참조 구현 입니다 ( N
STDIN에서 제공됨 ). 코드는 N
전체 접두사가 아니라 th 요소 만 반환해야 합니다.
N
용어를 출력하고 있습니까?