시퀀스 스왑


9

귀하의 작업은 OEIS 시퀀스를 출력하고 코드에 시퀀스 이름을 포함하는 코드를 작성하는 것입니다 ( A______). 충분히 쉬운가요? 여기에 캐치가 있습니다. 코드의 시퀀스 이름이 두 번째 시퀀스의 이름으로 변경되면 코드에서 두 번째 별도 시퀀스를 출력해야합니다.

입출력

코드는 취하는 함수 또는 전체 프로그램 일 수 N 은 A 표준 입력 방식을 통해 출력하는 N OEIS 페이지의 인덱스에 의해 인덱스로서 서열 번째 용어.

해당 순서에 대해 OEIS b 파일에 제공된 모든 값을 지원해야하며 b 파일에없는 숫자는 지원할 필요가 없습니다.

채점

이것은 . 점수는 코드의 바이트 수이며 적은 바이트가 더 좋습니다.

다음은 A000217 및 A000290에서 작동하는 Haskell의 예입니다.

f x|last"A000217"=='0'=x^2|1>0=sum[1..x]

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


명확히하기 위해 : 코드의 해당 부분에 시퀀스 이름을 넣으면 해당 시퀀스의 번호가 출력되는 두 시퀀스에서 코드가 작동해야합니까?
HyperNeutrino

@HyperNeutrino 예. 시퀀스 이름이 대체 될 때 프로그램의 기능을 두 번째 시퀀스로 변경해야합니다.
Ad Hoc Garf Hunter 16

1
코드의 시퀀스에는 선행 0이 있어야합니다.
pppery

@ppperry 예, 그래야합니다.
Ad Hoc Garf Hunter

1
A필수?
Okx

답변:


8

자바 스크립트 (ES6), 16 15 바이트

n=>4&~0xA000004

A000004 (모두 0) 및 A010709 (모두 4)와 함께 작동합니다.

이전 17 바이트 솔루션은 A010850 ~ A010859와 함께 작동합니다.

n=>~-0xA010850%36

이전 25 바이트 솔루션은 A010850에서 A010871 (포함)과 함께 작동합니다.

n=>"A010850".slice(5)-39

이것은 단지 과시입니다 (이것이 얼마나 영리한지 OEIS를 잘 알지 못합니다 : P)
TheLethalCoder

이상-2 개의 답변이 25 바이트에서 시작하여 1 분에 17 바이트로 골프를
쳤다

@ ppperry Heh,하지만 귀하의 답변을 포팅 할 수 있으며 그것은 단지 15 바이트입니다 ...
Neil

Jelly 와 묶인 JS ?! 매우 훌륭하게 완료
Shaggy

@Shaggy Nope; 새로운 짧은 젤리 답변이 게시되었습니다.
pppery



3

cQuents , 16 바이트

=A000007//5#|A:0

온라인으로 사용해보십시오! , A000007 ,1,0,0,0,0...

=A000004//5#|A:0

온라인으로 사용해보십시오! , A000004 ,0,0,0,0,0...

설명

                    Implicit input A
=A000007            First item in the sequence equals A * 7
        //5                                                 intdiv 5 = 1
           #|A      n equals A
              :     Mode : (sequence): output nth item (1-based)
               0    Rest of the sequence is 0

                    Implicit input A
=A000004            First item in the sequence equals A * 4
        //5                                                 intdiv 5 = 0
           #|A      n equals A
              :     Mode : (sequence): output nth item (1-based)
               0    Rest of the sequence is 0

코너에 대한 오브라이언에게 감사 4//5 = 0하고 7//5 = 1.

사양이 좀 더 융통성이 있다면 O7A$and O4A$입니다.



2

dc , 13 바이트

편집 : 분명히 OEIS는 0th 에서 th까지 의 힘을 나열합니다. 30방금 이러한 시퀀스를 검색했으며 원래 13바이트 솔루션이 가장 골치 아픈 것으로 나타났습니다. 그러나 시퀀스에 1작동하는 더 많은 바이트에 대한 또 다른 솔루션을 찾았습니다 9.

A000012에 대한 솔루션 (일정한 시퀀스) :

?A000012 4%^p

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

A001477에 대한 솔루션 (음이 아닌 정수) :

?A001477 4%^p

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

A000290 솔루션 (완전한 제곱 시퀀스) :

?A000290 4%^p

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

언 골프 / 설명

이러한 솔루션은로 dc해석 A되는 사실을 이용 10하므로 A001477가치가 10001477됩니다. 또한, 그 시퀀스임을 활용 n^0, n^1그리고 n^2일치하는 10000012 % 4 == 0, 10001477 % 4 == 110000290 % 4 == 2.

따라서이 순서는 xyz(n) = n ^ (xyz % 4)입니다.

Command          Description          Example (3) 
?              # Push the input       [3]
 A000290       # Push sequence name   [3,10000290]
         4%    # Top %= 4             [3,2]
           ^   # Pop x,y & push y^x   [9]
            p  # Print the top        [9]

9 개의 시퀀스를위한 14 바이트 솔루션

아이디어는 여전히 똑같습니다. 이번에 우리 % 97는 올바른 힘을 얻기 위해 -A010801 , A010802 , A010803 , A010804 , A010805 , A010806 , A010807 , A010808A010809 시퀀스 n^13에서 작동합니다 (이들은 시퀀스입니다 ). ., n^21).

첫 번째는 다음과 같습니다.

?A010801 97%^p

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


1
두 개 이상의 시퀀스를 지원하는 +1!
Neil

1

파이썬 2, 25 17 바이트

print'A000012'[5]

A000004 및 A000012에서 작동합니다. (시퀀스가 모두 일정한 항이므로 입력이 무시됩니다).


1

Befunge 98, 10 바이트

#A000012$q

A000004에서도 작동합니다. 종료 코드로 출력합니다.


1

젤리 , 17 바이트

“A000578”OS%⁵ạ6*@

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

“A000578”OS%⁵ạ6*@  Main link
“A000578”          String
         O         Codepoints
          S        Sum (364 for A000290, 373 for A000578)
           %⁵      Modulo 10 (4 for A000290, 3 for A000578)
             ạ6    Absolute Difference with 6 (2 for A000290, 3 for A000578)
               *@  [left argument] ** [result of last link (right argument)]

A000290에서도 작동


일정하지 않은 시퀀스를 사용하는 것이 좋습니다.
AdmBorkBork

1

PowerShell , 23 바이트

+(0xA000012-eq160mb+18)

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

용도의 A000012 (모든 사람 순서)과 A000004 (모두 제로 순서).

몇 가지 깔끔한 트릭을 활용합니다. 우리 0x는 시퀀스에 16 진수 연산자를 사용합니다 167772178. 즉 해당하는지 비교있어 -eq연간에 160mb+18은 USING mb연산자 ( 160mb하다 167772160). 즉 부울 결과는 다음과 int로 캐스팅 된 +출력에 적절한 1또는 0. 참고 임의 A000012 이외의 부호의 시퀀스가 발생할 것이다 0출력되고.


1

Neim , 10 9 바이트

A000012ᛄ>

설명:

A            Push 42
 000012      Push 4
 or
 A007395     Push 7395
        ᛄ     Modulo 2
         >    Increment

A000012 (1 개) 및 A007395 (2 개)

스택 맨 위에 입력을 가져 와서 스택 맨 위에 출력을 남겨 두는 기능입니다.

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


0

가이아 , 9 바이트

A000012₉/

A000012A000004 와 함께 작동합니다 .

A000012를보십시오!

A000004를보십시오!

설명

A          Undefined (ignored)
 000012    Push 12
       ₉   Push 9
        /  Integer division, results in 1


A          Undefined (ignored)
 000004    Push 4
       ₉   Push 9
        /  Integer division, results in 0

왜 모두가 A00004와 A00012를 계속 게시합니까?
pppery

@ppperry A000004는 0 시퀀스이고 A000012는 1 시퀀스입니다. 간단히 숫자를 9로 나누고 결과를 영원히 출력하십시오.
엔지니어 토스트






0

껍질 , 20 바이트

이것은 조금 더 흥미로운 시퀀스를 반환하고 다시 솔루션은 1색인화됩니다.

이 작품 A000040 합니다 (소수) :

!!i→"A000040"e:0İfİp

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

그리고이 일 A000045 (피보나치 번호) :

!!i→"A000045"e:0İfİp

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

설명

시퀀스 이름의 마지막 숫자가 다른 패리티를 가지고 있다는 사실을 사용합니다.

                      -- implicit input N
             e        -- construct a list with:
              :0İf    --   list of Fibonacci numbers (prepend 0)
                  İp  --   list of the prime numbers
  i→"Axxxxx?"         -- get the last character and convert to number,
 !                    -- use it as modular index (0 -> primes, 5 -> Fibonacci)
!                     -- get the value at the Nth index

0

AHK , 40 바이트

a:=SubStr("A000004",6)//9
Loop
Send %a%,

산출: 0,0,0,0,0,0,0,0,0,0,0,0,...

a:=SubStr("A000012",6)//9
Loop
Send %a%,

산출: 1,1,1,1,1,1,1,1,1,1,1,1,...

이것은 가장 짧은 코드는 아니지만 찾을 수있는 가장 짧은 시퀀스 쌍입니다. A000004 는 0 시퀀스이고 A000012 는 1 시퀀스입니다. 간단히 숫자를 9로 나누고 결과를 영원히 출력하십시오.


0

QBIC , 28 바이트

p=!_s@A000035`,-1|!?:%2+5-p

시퀀스 A000034 (1, 2, 1, 2, 1 ...)와 A000035 (0, 1, 0, 1, 0, 1 ...) 사이를 전환합니다.

설명

p=                  Set p to 
  !            !    A numeric representation of
   _s         |     a substring of
     @A000035`      our sequence code (either A0035 or A0034)
     ,-1            taking just one character from the right.
?:%2                PRINT <n> MOD 2 (gives us a either 0 or 1)
    +5-p            Plus 1 for seq A24 (5-4), or plus 0 for A35

0

껍질 , 16 바이트

두 솔루션 모두 1색인화되어 있습니다.

이것은 A000351 (5의 거듭 제곱)에 적용됩니다.

!¡*i!6"A000351"1

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

그리고 이것은 A000007 (0의 거듭 제곱)에 대한 것입니다.

!¡*i!6"A000007"1

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

설명

이름 A000351 , A000007 은 위치 6에서 오른쪽 숫자 D를 포함하므로 순서는 D^0,D^1,D^2,...다음과 같습니다.

                  -- implicit input N
   i!6"AxxxxDx"   -- get the right digit D and convert to number,
 ¡*            1  -- iterate (D*) infinitely beginning with 1,
!                 -- extract the value at Nth position

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.