코드를 바꾸고 OEIS를 바꾸십시오


12

여기서 과제는 자연수 을 취하고 OEIS 시퀀스 의 번째 항을 생성 하는 프로그램을 작성하는 것 입니다. 이 순서에는 6 자리 숫자 형식의 식별자가 있어야합니다 . 이제 소스 코드를 가져와 바이트 순서를 반대로하여 새 프로그램을 만들면 해당 프로그램도 OEIS 시퀀스를 구현해야합니다. 새 시퀀스는 마지막 시간과 동일한 6 자리 숫자로 표시되지만 역순으로 시작해야합니다 (앞의 0 포함).nnAA

사소한 일이 없도록하기 위해 OEIS 식별자 번호 나 프로그램이 회문이 될 수 없습니다. 즉 시퀀스와 프로그램이 달라야합니다. 반대로 존재하지 않거나 비어있는 시퀀스는 선택할 수 없습니다.

각 시퀀스마다 0 또는 1 인덱싱을 사용하도록 선택할 수 있습니다. 동일한 인덱싱을 사용할 필요는 없습니다. 일부 OEIS 서열은 도메인이 제한되어 있기 때문에 서열의 도메인에 대해 올바른 숫자 만 출력하면됩니다. 도메인 외부에서 필요한 동작이 정의되어 있지 않습니다 (출력 0, 충돌, 피자 주문 등).

이것은 이므로 바이트 수가 적을수록 답이 바이트로 표시됩니다.


시퀀스 번호 반전에 선행 0이 포함됩니까?
pppery

1
@pppery OEIS 숫자는 정확히 6 자리 숫자이므로 반드시 입력해야합니다. (또한 질문에 명시 적으로 나와 있습니다)
Jo King

입력 (인덱스)을 문자열로 취할 수 있습니까?
TFeld

답변:



4

Perl 6 , 55 바이트 (A055642 및 A246550)

+*.comb#}]1-_$[)4+_$^**X]_$^[)*..2,emirp-si&(perg(tros{

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

이것은 OEIS 시퀀스 A055642 ( 의 10 진수 표현 길이 )를 0으로 색인화 한 익명의 Whatever Lambda 입니다.n

{sort(grep(&is-prime,2..*)[^$_]X**^$_+4)[$_-1]}#bmoc.*+

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

반대의 순서 인 A246550 (의 순서리스트 소수이고 1 인덱스).xexe4

이 도전의 대부분은 너무 복잡하지 않은 좋은 순서를 찾는 것이 었습니다.

업데이트 : torcado의 답변을 사용하면 19 바이트 (A010851 및 A158010) 일 수 있습니다

{256*$_**2-$_}#{21}

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


2

\ / \ /> , 15 14 바이트 ( A010851A158010 )

cn;n*-1*"Ā":j

효과적으로 cn, 출력 12

j:"Ā"*1-*n;nc

효과적으로 j:"Ā"*1-*n, n (256n-1)

믿을 수 없을만큼 간단한 시퀀스를 찾은 친구에게 감사합니다!


1

Haskell, 47 바이트 ( A000010A010000 )

두 시퀀스는 비교적 간단합니다.

p n=sum[1|x<-[1..n],gcd x n<2]--2+n*n=n p;1=0 p

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

p n = n의 오일러 관능 함수 (A000010) (1 인덱스)

역전 :

p 0=1;p n=n*n+2--]2<n x dcg,]n..1[-<x|1[mus=n p

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

p n n = 0이면 = 1, 그렇지 않으면 n ^ 2 + 2

주석을 사용하지 않는 답변을 보는 것이 흥미로울 것입니다 ...


1

파이썬 2 , 59 바이트 (A030000 및 A000030)

f=lambda n,k=0:k if`n`in`2**k`else f(n,k+1)#]0[`n`:n adbmal

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

0으로 인덱스 된 fn 번째 항 A030000 ( 의 소수점 확장이 문자열 포함하도록 가장 작은 음수가 아닌 숫자 )을 반환 하는 함수를 정의합니다.k2kn

lambda n:`n`[0]#)1+k,n(f esle`k**2`ni`n`fi k:0=k,n adbmal=f

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

0- 인덱싱 된 A000030 (초기 숫자 ) 의 번째 항을 반환하는 익명 함수n


더 짧은 버전은 문자열을 입력으로 사용하고 (두 시퀀스 모두) 여전히 인덱스가 0입니다.

파이썬 2 , 56 바이트

f=lambda n,k=0:`k`*(n in`2**k`)or f(n,k+1)#]0[n:n adbmal

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

lambda n:n[0]#)1+k,n(f ro)`k**2`ni n(*`k`:0=k,n adbmal=f

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

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