음이 아닌 정수는 항상 동일한 두 * 이웃을 갖는 것에 지루하므로 물건을 조금 섞기로 결정합니다. 그러나 그들은 또한 게으 르며 가능한 한 원래 위치에 가깝게 머물기를 원합니다.
그들은 다음 알고리즘을 생각해냅니다.
- 첫 번째 요소는 0입니다.
- 요소가 아직 시퀀스에 존재하지 않는 가장 작은 개수의 인접하지 않다 요소.
다음과 같은 무한 시퀀스가 생성됩니다.
0,2,4,1,3,5,7,9,6,8,10,12,14,11,13,15,17,19,16,18,20,22,24,21,23,25,27,29,26,28 ...
0
첫 번째 요소입니다. 1
는 시퀀스에서 아직 가장 작은 수이지만의 이웃입니다 0
. 다음으로 가장 작은 숫자는 2
이므로 시퀀스의 두 번째 요소입니다. 이제 나머지 수는 1,3,4,5,6,...
있지만, 모두 같은 1
그리고 3
의 이웃 2
, 4
시퀀스의 제 3 부재이다. 으로 1
의 이웃 아닌 4
, 마침내 네 번째 요소로 자리를 취할 수 있습니다.
작업
함수 또는 프로그램을 가능한 한 적은 바이트로 작성하여 위의 순서를 생성하십시오.
당신은 할 수있다
- 시퀀스를 무한대로 출력하고
- 입력 가져 와서 시퀀스 의 요소를 반환 하거나
- 입력 취하여 시퀀스 의 처음 요소를 반환합니다 .
후자의 두 옵션 중 하나를 선택하는 경우 0 또는 1 인덱싱이 좋습니다.
위에 주어진 알고리즘을 따를 필요는 없습니다. 동일한 시퀀스를 생성하는 모든 방법이 좋습니다.
영감을받은 코드 골프 최고의 순열 . 이것이 A277618 입니다.
* Zero는 말 그대로 이웃이 하나 뿐이며 실제로 신경 쓰지 않습니다.