비상 수 OEIS 폴리 글 로트!


24

면책 조항 : 이것은 "OEIS 폴리 글롯!"에서 많은 영감을 얻었습니다 . 폐쇄로 이어지는 문제를 해결하고 (출력 섹션 참조) 응답을 무효화하지 않도록 다시 게시되었습니다.

소개

우리 모두 는 정수 시퀀스 ( OEIS ) 의 온라인 백과 사전을 알고 사랑합니다 . 우리가 만든 어떤 경우에 따라서 오프라인 흥미로운 시퀀스의 버전? 글쎄, 그것은 너무 쉬울 것입니다. 그렇지 않을 것이며 표준 인터페이스로 시퀀스를 어떻게 선택할 것입니까? 아닙니다. 더 쉬운 해결책이 필요합니다. 폴리 글롯!

입력

입력은 음이 아닌 정수 n입니다.

산출

당신의 출력은

  • nOEIS 시퀀스 의- 번째 항목 또는
  • nOEIS 시퀀스 의 첫 번째 항목입니다.

원하는대로 인덱스를 1 기반 또는 0 기반으로 할 수 있습니다.

이 질문을 복제하지 않기 위해 다목적 정수 프린터 상수 시퀀스는 금지됩니다. 또한 제출의 난이도를 높이고 "지루한"솔루션을 피해야합니다.)

동일하지 않은 두 개의 시퀀스 멤버가있는 경우 시퀀스가 ​​일정하지 않습니다.

음, 도전은 어디에 있습니까?

위의 기능을 폴리 글로 팅해야합니다. 언어 A, B 및 C를 지원하는 경우 모두 서로 다른 OEIS 시퀀스를 구현해야합니다. 순서 선택은 모든 언어에 대해 서로 다른 것을 필요로하는 것을 제외하고 제한되지 않습니다.

즉, 언어 A로 제공된 프로그램을 실행하면 시퀀스 X가 생성되고 언어 B로 제공된 프로그램을 실행하면 시퀀스 Y가 생성됩니다 (X! = Y로). 제공된 프로그램을 실행하면 언어 C에서, 시퀀스 Z가 생성된다 (X! = Z && Y! = Z).

누가 이겼어?

시퀀스 / 언어 쌍이 가장 많은 답이 이깁니다. 첫 번째 타이 브레이커는 코드 크기 (바이트)가 낮을수록 좋습니다. 두 번째 순위 결정은 제출 시간이 빠를수록 빠릅니다.

마지막 단어 / 규칙?

  • 어떤 언어가 어떤 시퀀스를 생성 할 것인지 선언해야합니다.
  • 표준 I / O 규칙이 적용됩니다.
  • 언어간에 다른 인코딩을 사용하는 경우 두 프로그램 모두 동일한 바이트 순서를 사용해야합니다.
  • 언어 (Python 2/3) 개정판 다른 언어로 계산됩니다. 서로 다른 언어 구현 (예 : Browser JS vs Node.js)도 다른 언어로 계산됩니다.
  • 표준 허점이 적용됩니다.

4
이 게시물은 이 메타 Q & A 에 따라 수행되었습니다 .
SEJPM

언어마다 색인이 다를 수 있습니까?
Stephen

2
@StepHen 그렇습니다.
SEJPM

답변:


16

3 개 언어 (1 바이트) -Pyth ( A001477 ), MATL ( A000027 ), Braingolf ( A000217 )

Q

방법?

Q 다음을 수행합니다.

  • MATL에서는을 의미 + 1하므로 기본적으로로 평가됩니다 input + 1.

  • Pyth에서는 입력을 의미하므로 입력 만 출력합니다.

  • Braingolf에서는 삼각 숫자에 내장되어 있습니다.

미니 폴리 글롯

Pyth GolfScript , Pyke , Brachylog 또는 Brain-Flak 언어 중 하나로 대체 될 수 있습니다.


1
잘 당신은 확실히이 하나에 대한 올바른 언어를 선택 +1 : P
HyperNeutrino

1
@HyperNeutrino 방금 거기에서 내 대답을 이식했지만 그때는 아주 좋은 언어를 선택 했으므로 yeah : P-Thanks!
Mr. Xcoder

이것은 코드 골프가 아닌 많은 언어라는 것을 기억하십시오. : P
Stephen

@StepHen 3이 합리적이라고 생각합니다.
Mr. Xcoder

14

10 개 언어, 122 바이트

#|A=1:0;~@}{\,[.,];oi
#coding:utf-8
print (0 and gets.to_i-1 or int(input())**(2+(1/2>0)));quit()#⎚I±N»
# x
#x%:+.

나는 분명히 더 많은 것을 추가 할 수 있습니다. 달리 명시되지 않는 한 1- 색인.

새로운 변경 사항이 이전 프로그램에 영향을 미치지 않는다고 확신 할 때 TIO 링크가 최신 상태가 아닐 수 있습니다. 원할 경우 테스트 할 수 있지만 변경할 때마다 10 개 이상의 새 TIO 링크를 복사 할 수 있습니다. 조금 후에 피곤해집니다. 5 번 정도 업데이트 할 때마다 새 항목을 복사하겠습니다.

cQuents v0, A000007

관련 코드 : #|A=1:0;

#|A입력을 포착하고 파이썬 주석이 있습니다. =1첫 번째 항목이되는 수단 1, :0나머지를 의미는 0상기 출력 n입력 소정 번째 용어 n. cQuents v0에는 이상한 버그 / 기능이 있습니다.와 같이 예기치 않은 유효한 토큰을 ;읽을 때 구문 분석이 종료됩니다.

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

탁구 , A001478

관련 코드 : #|A=1:0;~@

종료 코드를 통해 출력합니다. 인덱스가 0입니다.

#다음 문자를 건너 뜁니다. =여기서 아무것도하지 않습니다. 1푸시 1:인쇄 1STDOUT에. 0푸시 0합니다. )아무것도하지 않습니다. ;입력 푸시, ~팝 및 푸시 -n-1. @종료합니다. 종료 코드는 스택의 최상위입니다.

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

액소, A001477

관련 코드 : }{\

인덱스가 0입니다. }STDIN에서 정수를 읽고 푸시합니다 (어떤 이유로 후행 줄 바꿈이 필요함). {스택 맨 위를 인쇄 한 \후 프로그램을 종료합니다. 앞의 문자가 무엇인지 잘 모르겠지만이 경우 중요한 것은 없습니다.

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

brainfuck, A000027

관련 코드 : ,[.,]

esolangs.org의 간단한 고양이 프로그램. 입력을 출력합니다.

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

> <>, A000030

관련 코드 : #...;oi

#오른쪽으로 미러링하고 줄 바꿈하여 read를 지시 io;하고 입력의 첫 문자를 출력합니다. 인덱스가 0입니다.

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

루비, A023443

관련 코드 : print (0 and gets.to_i-1...)

인덱스가 0입니다. 0루비에서는 입력에서 1을 뺀 값을 인쇄 하지만 파이썬에서는 거짓입니다.

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

파이썬 3, A000578

관련 코드 : print (0 and gets.to_i-1 or int(input())**(2+(1/2>0)));quit()

HyperNeutrino의 원래 게시물에서 제외되었지만 꽤 잘 알려진 폴리 글롯입니다. quit()프로그램을 종료합니다.

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

파이썬 2, A000290

관련 코드 :

#coding:utf-8
print (0 and gets.to_i-1 or int(input())**(2+(1/2>0)));quit()

#coding:utf-8숯이 작동하려면 필요합니다. HyperNeutrino의 원래 게시물도 찢어졌습니다. quit()프로그램을 종료합니다.

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

숯, A001489

관련 코드 : ⎚I±N»

인덱스가 0입니다. 콘솔을 지우고 (Charcoal은 ASCII를있는 그대로 I±N인쇄 ) 입력의 음수를 인쇄합니다. »구문 분석 오류이며 프로그램을 종료합니다.

채팅에 도움을 준 ASCII 전용 덕분입니다.

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

추기경, A020725

관련 코드 :

 x
x%:+.

입력에 1을 더하고 다른 모든 포인터를 스쿼시합니다.

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


PingPong의 종료 코드가 ToS 인 것처럼 보이며 64 비트 부호있는 정수가 예상 되는대로 2 ^ 32줄 바꿈됩니다 .
Jonathan Allan

@JonathanAllan 감사합니다.
Stephen

차콜 코드가 이미 프로그램 끝에있는 경우 구문 분석 오류로 종료해야합니까?
MD XF

@MDXF 아니오, 저는 마지막에 더 추가 할 계획이었습니다
Stephen

10

5 개 언어 ( 05AB1E , 실제로 , CJam , Jelly , MATL ), 7 바이트

UD>li)+

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

  • 05AB1E : 시퀀스 A000027 (양의 정수 : a ( n ) = n ; 1 기반)
  • 실제로 : 순서 A023443 (1을 포함하는 음이 아닌 정수 : a ( n ) = n -1; 0 기반)
  • Cjam : 시퀀스 A020725 (1을 제외한 양의 정수 : a ( n ) = n +1; 1 기반)
  • 젤리 : 시퀀스 A005843 (음이 아닌 짝수 : a ( n ) = 2 * n ; 0 기반)
  • MATL : 시퀀스 A000290 (사각형 :( N ) = N 1부터 시작). 출력을 생성 한 후 오류와 함께 종료됩니다.

7

3 개 언어 : Proton, A000583 ; 파이썬 3, A000578 ; 파이썬 2, A000290

양성자 , 49 바이트

print(int(input())**(2+(1/2>0)+((''',''')!=',')))

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

파이썬 3 , 49 바이트

print(int(input())**(2+(1/2>0)+((''',''')!=',')))

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

파이썬 2 , 49 바이트

print(int(input())**(2+(1/2>0)+((''',''')!=',')))

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

설명

양성자는 없습니다 '''...'''때문에, 문자열을 (''',''')하게 ('' ',' '')어떻게 든 문제가 발생하지 않는다. 에 평가 ''하고에 (''',''')!=','평가합니다 True.

파이썬에는 이러한 문자열 (''',''')','있으므로로 (''',''')!=','평가됩니다 False.

파이썬 2는 정수에 층 나누기를 사용하므로 파이썬 2에서는 1/2>0거짓이고 파이썬 3에서는 참입니다.


파이썬 라인으로 바꾸고 1//1;print(int(input())**(2+(1/2>0)+((''',''')!=',')));quit()나중에 JavaScript와 같은 언어를 추가 하면 더 많은 언어를 추가 할 수 있습니다.
Stephen

@StepHen 물론, 그것은 효과가있을 것입니다. 감사합니다. 내가 할거야 그 나는 추가 자바 스크립트 주위 일단 : P
HyperNeutrino

6

5 개 언어, 107 바이트

s=1/2;1//2;q=int(input())*([2,3][s>0]);"""/.__id__;'
alert(+prompt()+1);`"""#=;#';q=gets
print(q)#)|<>%2)#`

펄 : A000035

=구분 기호로 사용하면 s///원하지 않는 코드를 쉽게 제외 할 수 있고 다른 모든 언어 를 사용한 후에 )는 구분 기호로 사용 하면 걱정없이 직접 작업 할 수 있습니다 .q{}printq<>

s/1...q/i...#/;
print(<>%2)

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

루비 : A001477

루비에서는 //실제로 /(나누기) /.../(정규 일치)이므로 정규 표현식이 종료되고 숫자로 변환되는 한 안전하게 나눌 수 있습니다. __id__보다 짧은 .to_s.ord우리는 단지 우리가 원하지 않는 코드의 나머지 포함, 'S, 세트 qgetsprint모든 다른 사람과.

s=1/2;1//2..."/.__id__;'...';q=gets
print(q)

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

파이썬 2 : A005843

표준 트릭을 사용하여 2를 3과 구별하고 원하지 않는 것들 """과 의견을 묶습니다.

s=1/2;1//2;q=int(input())*([2,3][s>0]);"""/...`"""
print(q)

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

파이썬 3 : A008585

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

자바 스크립트 (ES6 브라우저) : A000027

JS는 매우 간단 print하지만 기존을 재사용하지 않고 SpiderMonkey를 사용하는 것이 더 쉬워 졌지만 가능할 수도 있습니다.

s=1/2;1//2;q=int(input())*([2,3][s>0]);"""/.__id__;'
alert(+prompt()+1);`"""#=;#';q=gets
print(q)#)|<>%2)#`


3

6 개 언어 : 입방체 5/6/7/8/9/10, 44 40 32 바이트

44가 여전히 똑같습니다. 44; (

DDR'DDR$:_0?{R'DDRDDB'%0}!{+00%}

인쇄합니다 :

설명:

DDR'DDR$:_0?{R'DDRDDB'%0}!{+00%}
DDR'DDR                            get top face sum to 2 (all versions)
       $:                          read input and set notepad to it
         _0                        set notepad to input modulo 2
           ?{...........}          if truthy
             R'DDRDD                reset cube
                    B'              set top face to Cubically version number
                      %0            print top face
                         !{....}   if falsy
                           +00      add 2 to notepad twice
                              %     print

온라인으로 사용해보십시오! (입방 적으로 6x6x6)

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