새로운 이웃 시퀀스 번째 요소입니다. 1는

음이 아닌 정수는 항상 동일한 두 * 이웃을 갖는 것에 지루하므로 물건을 조금 섞기로 결정합니다. 그러나 그들은 또한 게으 르며 가능한 한 원래 위치에 가깝게 머물기를 원합니다.

그들은 다음 알고리즘을 생각해냅니다.

  • 첫 번째 요소는 0입니다.

  • h

    요소가 아직 시퀀스에 존재하지 않는 가장 작은 개수의 인접하지 않다

    (1)h

    요소.

다음과 같은 무한 시퀀스가 ​​생성됩니다.

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, 마침내 네 번째 요소로 자리를 취할 수 있습니다.

작업

함수 또는 프로그램을 가능한 한 적은 바이트로 작성하여 위의 순서를 생성하십시오.

당신은 할 수있다

  • 시퀀스를 무한대로 출력하고
  • 입력

    가져 와서 시퀀스 의

    h

    요소를 반환 하거나

  • 입력

    취하여 시퀀스 의 처음

    요소를 반환합니다 .

후자의 두 옵션 중 하나를 선택하는 경우 0 또는 1 인덱싱이 좋습니다.

위에 주어진 알고리즘을 따를 필요는 없습니다. 동일한 시퀀스를 생성하는 모든 방법이 좋습니다.


영감을받은 코드 골프 최고의 순열 . 이것이 A277618 입니다.
* Zero는 말 그대로 이웃이 하나 뿐이며 실제로 신경 쓰지 않습니다.



답변

자바 스크립트 (ES6), 13 바이트

시퀀스 의

번째 항을 반환합니다 .

n=>n-2-~++n%5

온라인으로 사용해보십시오!

방법?

이것은 다음을 계산합니다.

2+((+2)모드5)

           n |  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 ...
-------------+--------------------------------------------------
       n - 2 | -2 -1  0  1  2  3  4  5  6  7  8  9 10 11 12 ...
 (n+2) mod 5 |  2  3  4  0  1  2  3  4  0  1  2  3  4  0  1 ...
-------------+--------------------------------------------------
         sum |  0  2  4  1  3  5  7  9  6  8 10 12 14 11 13 ...


답변

파이썬 2 , 20 바이트

lambda n:2*n%5+n/5*5

온라인으로 사용해보십시오!


답변

MathGolf , 5 바이트

⌠5%+⌡

온라인으로 사용해보십시오!

여기 좋은 대칭이 있습니다. nth시퀀스 의 요소를 반환합니다 .

설명:

⌠      Increment input by 2
 5%    Modulo by 5
   +   Add to copy of input
    ⌡  Decrement by 2


답변

젤리 , 5 바이트

æ%2.+

온라인으로 사용해보십시오!

가제트가 내장되어 모호합니다!

æ%2.      Symmetric modulo 5: map [0,1,2,3,4,5,6,7,8,9] to [0,1,2,-2,-1,0,1,2,-2,-1]
    +     Add to input


답변

Wolfram Language (Mathematica) , 14 바이트

#+Mod[#,5,-2]&

온라인으로 사용해보십시오!

순서대로 n 번째, 인덱스없는 정수를 인쇄합니다.


답변

R , 25 23 21 바이트

Jo King 덕분에 -2 바이트

n=scan();n-2+(n+2)%%5

온라인으로 사용해보십시오!

nth요소를 순서대로 출력 합니다.


답변

dzaima / APL , 9 바이트

2-⍨⊢+5|2+

Arnauld의 답변.

온라인으로 사용해보십시오!