소개
물론 많은 시퀀스 문제가 있으므로 여기 또 다른 문제가 있습니다.
킴 벌링 시퀀스 ( A007063 )는 다음과 같습니다.
1, 3, 5, 4, 10, 7, 15, 8, 20, 9, 18, 24, 31, 14, 28, 22, ...
이것은 일반적인 반복을 섞어서 생성됩니다.
[1] 2 3 4 5 6 7 8
순서의 첫 번째 항은입니다 1
. 그런 다음 왼쪽의 모든 용어가 사용될 때까지 순서를 다시 섞습니다. 셔플 링 패턴이 right - left - right - left - ...
있습니다. 왼쪽에 용어 1
가 없으므로 셔플 링이 없습니다. 우리는 다음을 얻습니다.
2 [3] 4 5 6 7 8 9
i 번째 반복에서는 i 번째 항목을 버리고 시퀀스에 넣습니다. 이것은 두 번째 반복이므로 두 번째 항목을 버립니다 . 순서는 다음과 같습니다 1, 3
.. 다음 반복에서는 위의 패턴으로 현재 반복을 섞습니다. 첫 번째 미사용 품목을 i 번째 품목 의 오른쪽에 가져갑니다 . 이 발생합니다 4
. 우리는 이것을 새로운 반복에 추가 할 것입니다 :
4
이제 i 번째 항목 의 왼쪽에서 사용하지 않은 첫 번째 항목을 가져옵니다 . 이것은입니다 2
. 우리는 이것을 새로운 반복에 추가 할 것입니다 :
4 2
i 번째 항목 의 왼쪽에 남은 항목이 없으므로 나머지 시퀀스를 새 반복에 추가합니다.
4 2 [5] 6 7 8 9 10 11 ...
이것은 세 번째 반복이므로 세 번째 항목 인을 삭제합니다 5
. 이것은 우리 순서의 세 번째 항목입니다.
1, 3, 5
다음 반복을 얻으려면 프로세스를 반복하십시오. 명확하지 않은 경우 GIF를 만들었습니다.
GIF는 실제 게시물을 쓰는 것보다 시간이 더 걸렸습니다.
직무
- 음수가 아닌 정수 n이 주어지면 시퀀스 의 처음 n 항을 출력합니다
- 기능이나 프로그램을 제공 할 수 있습니다
- 이것은 code-golf 이므로 바이트 수가 가장 적은 제출이 승리합니다!
테스트 사례 :
Input: 4
Output: 1, 3, 5, 4
Input: 8
Output: 1, 3, 5, 4, 10, 7, 15, 8
Input: 15
Output: 1, 3, 5, 4, 10, 7, 15, 8, 20, 9, 18, 24, 31, 14, 28
참고 : 출력에 쉼표가 필요하지 않습니다. 예를 들어 개행을 사용하거나 목록 등을 출력 할 수 있습니다.