2016 Time Capsule String : 정수 사다리 오르기


28

2016 타임 캡슐 문자열 에서 74 자 사용

H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%

다음과 같은 언어로 N 코드 스 니펫을 작성하십시오.

  • 첫 번째 스 니펫 출력 1.
  • 두 번째 스 니펫 출력 2.
  • 세 번째 스 니펫 출력 3.
  • ... 등 ...
  • N 번째 스 니펫 출력 N(리터럴 문자가 아닌 숫자).

"코드 스 니펫"은 다음 중 하나로 정의됩니다.

  • 숫자를 정상적으로 출력하는 필수 입력이없는 전체 프로그램 .
  • 숫자를 정상적으로 출력 / 반환하는 필수 인수가없는 함수입니다 .
  • REPL의 수에 대한 표현은 평가한다.

(N 스 니펫에서이 세 가지 변형을 혼합하여 사용할 수 있습니다.)

당신이 N 조각의 결합 된 세트에서 사용할 수있는 문자는 정확하게 타임 캡슐의 74 개 문자, 플러스 floor(N/2) 추가 "와일드 카드"는 바이트 어디서든 사용할 수있다.

예를 들어, 타임 캡슐에는 3이 포함되어 @있으므로 N 스 니펫 전체에 와일드 카드 바이트 @일부 floor(N/2)를 추가 로 사용하기로 결정하지 않는 한 최대 3 개의 스 니펫이 존재할 수 있습니다 @.

따라서 와일드 카드를 계산하지 않고 N 스 니펫의 결합 된 문자 세트는 74 개의 타임 캡슐 문자의 서브 세트 여야합니다. 결합 된 길이는 74를 초과 할 수 없습니다 . 스 니펫간에 시간 캡슐 문자 또는 와일드 카드 바이트를 재사용 할 수 없습니다.

노트

  • 스 니펫 길이나 스니 펫당 사용할 수있는 와일드 카드 수에 대한 다른 제한은 없습니다.

  • 1에서 N까지의 모든 스 니펫을 작성해야합니다 . k에서 N + k-1이 아니라 0에서 N-1이 아닙니다.

  • 스 니펫은 목록을 출력하는 스 니펫이 아닌 개별이어야합니다 1, 2, 3, ..., N.

  • 출력이 3.0대신 플로트가 될 수 있으며 3, 언어의 자연 기반 인 경우 10이 아닌 다른 기본을 사용할 수 있습니다 . 모든 스 니펫에 동일한 기준을 사용해야합니다.

  • 와일드 카드는 언어 인코딩 에서 바이트로 계산됩니다 . 이것은 아마도 ASCII 일 것입니다. 예를 들어 인코딩에서 1 바이트로 계산 되면 단일 와일드 카드 바이트로 사용할 수 있습니다.

  • 멀티 바이트 문자에 와일드 카드 바이트를 사용할 수 있습니다. 예를 들면 이다 일반적으로 당신이 코드에서 사용할 수 있지만이 세 가지 비용 때문에 3 바이트 floor(N/2)와일드 카드 바이트.

  • 같은 줄 바꿈\r\n 은 1 바이트로 간주 될 수 있습니다.

파이썬에서는 REPL을 사용하여 N = 4가 가능합니다. 있습니다 floor(4/2) = 2와일드 카드.

  1. 1시간 캡슐에서 ~로 바뀐 표현입니다 1.

  2. 2단일 와일드 카드, 즉로 구성됩니다 2. 에 평가 2.

  3. 3또한 단일 와일드 카드로 구성됩니다. 에 평가 3. 더 이상 와일드 카드가 없습니다.

  4. 4운 좋게 시간 캡슐에 있고 그것은 사라진다 4.

이 스 니펫은 짧고 사소합니다. 실제 답변은 훨씬 더 복잡 할 것입니다.

(파이썬에서 5 번 이상은 가능하지만 전문가에게 맡기겠습니다.)

채점

N이 가장 높은 답이 이깁니다. 즉, 정수 사다리를 가장 높이 올라가는 것.

동점 일 경우 가장 적은 와일드 카드 바이트를 사용한 답이 이깁니다.
여전히 동점이 있다면, 가장 적은 누적 문자를 사용한 답이 이깁니다. 여전히 동점
이 있다면 , 이전 답변이 우선합니다.


1
프로그래밍 언어에 REPL이없는 경우 적절한 값으로 평가되는 경우 해당 언어로 표현식을 제출할 수 있습니까? (예를 들어 4REPL이없는 이전 버전의 Perl에서 4를 반환하는 유효한 스 니펫입니까?)

1
아, 또 다른 질문 : ASCII가 아닌 호환 인코딩 을 사용하는 언어에서 타임 캡슐 문자를 문자 (언어의 인코딩으로 변환) 또는 바이트 (프로그램을 ASCII로 보는 프로그램 작성 ) 로 취급합니까? 완전히 캡슐 문자로 포함 된 것처럼 보입니까?) 이상한 문자 집합을 가진 일부 언어에서는 대부분의 시간 캡슐 문자가 문자 집합에 포함되어 있지 않으므로 그대로 사용하기가 어렵습니다.

1
선행 0은 어떻습니까? 가 07 은 동일 7?
Emigna

1
정말 문자열이 둘 다 포함하지 않는 저를 귀찮게한다 -n...
devRicher

1
스택 기반 언어의 "스 니펫"이 값을 스택에 남겨 둘 수 있습니까?
FlipTack

답변:


10

CJam , 스 니펫 25 개, 와일드 카드 12 개, 64 바이트

1
Q!)
Z
4
5
6
L``(*$)#
8
9
T!T
B
C
D
E
F
G
H
I
J
K
O`e`~~!!
B`:)
Q``$e`~~@~@=~+
Q!)4
Amf

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

와일드 카드 :

568BBCDEFGJK

데니스가 나보다 앞서 나가기 전에 빨리 게시해야한다고 생각합니다.


어떤 와일드 카드를 사용 했습니까?
Rɪᴋᴇʀ

@EasterlyIrk 편집. Dennis의 답변에서 와일드 카드 카운터를 사용할 수도 있습니다 .
jimmy23013



5

자바 스크립트, 숫자 10 개, 와일드 카드 5 개

남은 캐릭터 : !!#$$%&())))*...:=@@@HILOQQQTTZ\^```eefmpy{|||~~~~~~~~~

5/5 보너스 캐릭터 사용 : 37680

프로그램 :

  1. 1
  2. !``+!``
  3. 3
  4. 4
  5. 4|!``
  6. 6
  7. 7
  8. 8
  9. 9
  10. 0xA

나는 내가 사용할 수있는 문자열 중 하나가 \xAB숫자 일 것이라고 희망 했지만 불행히도 내가 시도한 조합 중 어느 것도 아무 것도 산출하지 않을 것입니다. ^(XOR) 문자는 사용하는 재미있을 것입니다,하지만 난 현재이 큰만큼 숫자를 만드는 데 사용 할 수있는 모든 기회를 볼 수 없습니다.

다른 가능한 조합이 있으면 의견에 알려주십시오.

편집 : Arnauld 덕분에 # 10 추가


1
나는 당신이 추가 할 수 있다고 생각 10. 0xA(와 0새로운 와일드 카드가 10에 도달하기 위해 부여)
Arnauld

어딘가에 (Q=!``)|Q여분을 얻으려면 1을 할 수 있습니다 1. 그래도 도움이 될지 확실하지 않습니다
ETHproductions

4

Pyth, 12 개의 스 니펫, 20 바이트 (6 개의 와일드 카드)

f@

1부터 시작하여 root (n, n)이 정확한 첫 번째 숫자를 찾으십시오. 출력 : 1

y!H

하지 않습니다 {}. 출력 : 2

3

와일드 카드 # 1. 출력 : 3

4

출력 : 4.

5

와일드 카드 # 2. 출력 : 5

6

와일드 카드 # 3. 출력 : 6

7

와일드 카드 # 4. 출력 : 7

8

와일드 카드 # 5. 출력 : 8

9

출력 : 9

T

사전 초기화 된 변수 출력 : 10

+T!Z

0이 아닌 10 더하기. 출력 : 11

12

와일드 카드 # 6 ( 2). 출력 : 12


4

옥타브, 숫자 6 개, 와일드 카드 3 개

1: ~~I          % not(not(sqrt(-1))) evaluates to true (or 1)
2: 2            % Wildcard
3: 3            % Wildcard
4: 4
5: (T=4)+~~T    % Create a variable T=4, then add not(not(T)) which evaluates to 1.
6: 6            % Wildcard

나는 아직도이 1, 9그리고 *왼쪽하지만 내게 많은 도움이 될 것입니다 나도 몰라. 내가 할 수있는 일을 볼 수 있습니다 :)

Esolang을 사용하지 않을 때 많은 숫자를 얻는 것이 쉽지 않습니다. 하나 또는 두 개 이상을 얻을 수 있기를 희망하지만 어려울 것이라고 생각합니다.


2

Pushy , 10 숫자 (와일드 카드 4 개)

이들은 모두 스 니펫이며 결과는 스택에 남습니다. 당신은이를 테스트 할 수 있습니다 온라인 번역기 추가하여 #각 조각에 (숫자를 인쇄합니다)

A(      \ 1:  Get alphabet and check that 'Z' >= 'Y'. Results in 1 (True)
x&+     \ 2:  Check stack equality (True - both are empty) then duplicate and sum.
3       \ 3:  Push 3 (1 wildcard)
4       \ 4:  Push 4
1 4+    \ 5:  1 + 4 in postfix, leaves 5 on the stack (1 wildcard)
`L`T%   \ 6:  Get character code of 'L' and modulo by T (ten) - leaves 6 on the stack
7       \ 7:  Push 7 (1 wildcard)
8       \ 8:  Push 8 (1 wildcard)
9       \ 9:  Push 9
T       \ 10: Push 10

이 답변은 아직 완전하지 않습니다. 비록 더 나아질 것 같지는 않습니다.


1

05AB1E, 숫자 12 개, 와일드 카드 6 개

 1:    1                                   -> 1
 2:    )O!x                                -> sum([])!*2
 3:    4L`\                                -> 2nd_last(range(1...4))
 4:    4                                   -> 4
 5:    5        # wildcard 1 = 5           -> 5
 6:    6        # wildcard 2 = 6           -> 6
 7:    Tf`~                                -> or(last2(prime_factors(10)))
 8:    8        # wildcard 3 = 8           -> 8
 9:    9                                   -> 9
10:    T                                   -> 10
11:    A`Q!T+   # wildcard 4 = T           -> (y==z)!+10
12:    TÌ       # wildcard 5,6 = T,Ì       -> 10+2

1

Hexagony , 6 자리 , 와일드 카드 3 개, 23 바이트

1!@
))!@
)|\@$!
4!%
4)!:
6!@

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

전체 여섯 번째 프로그램은 와일드 카드로 만들어집니다.

정말 흥미로운 유일한 것은입니다 3. 내가 그렇게 할 수는 있지만 쉽게 생성 4(!@하지 않고 나를 떠날 수 있으므로 대신 다음과 같이 진행했습니다.45

 ) |
\ @ $
 ! .

때문에에 |)는 IP가 오른쪽 모서리에 랩 전에 첫 번째 라인은 두 번 실행됩니다. $오버 스킵 @하고 \리디렉션 통해 IP )세번째. IP 허용, 왼쪽 하단에 랩 !를 출력 3하고 @프로그램을 종료합니다.

!!!!!프로그램을 종료하는 데 사용할 수있는 5 개의 인쇄 명령 ( )과 5 개의 명령 만 있기 때문에 6 개 이상의 스 니펫이 가능하다고 생각하지 않습니다 @@@%:. 따라서 다섯 번째 스 니펫 후에는 스니 펫당 최소 두 개의 와일드 카드가 필요합니다. 따라서 6와일드 카드를 사용하지 않고 얻을 수 있지만 스 니펫 7로 이동할 수있는 와일드 카드가 충분하지 않습니다.


1

자바 스크립트, 숫자 8 개, 와일드 카드 4 개

 1: 1
 2: -~!``
 3: 4+~!$
 4: ~!``*~!``
 5: 4|!$
 6: 0xf^9
 7: 7
 8: 8

나중에 다시 시도 할 수도 있습니다. 2와 6에 문자를 낭비하고 있습니다.


0

Befunge-98, 4 개의 스 니펫, 18 바이트, 2 개의 와일드 카드

!.@
!:+.@
41-.@    wildcard 1 = -
4.#A9H   wildcard 2 = .

남은 문자 : !!!$$%&())))*=ILOQQQTTZ\^`````````eefmpxy{||||~~~~~~~~~

모든 추가 프로그램에는 출력 형식이 필요하고 모두 .,이미 사용되었으므로 더 많은 가능성이 의심 됩니다. 와일드 카드없이 3과 5를 만드는 방법을 알아낼 수 있다면 가능합니다.

마지막 프로그램은 스택이 가득 차서 결국 종료됩니다. AH반영됩니다로드 된 지문, 프로그램과 9 개의 밀어 유지합니다.


나는 마지막 것이 유효하다고 생각하지 않습니다. 문제가 달리 명시하지 않는 한 프로그램을 종료해야합니다.
마틴 엔더

%그래도 간단하게 종료 할 수 있습니다 .
Martin Ender

@MartinEnder 00%는 Befunge-98에서 유효하며 결과는 0입니다 (또는 사용자에게 Befunge-93의 결과를 요청합니다)
PurkkaKoodari

@MartinEnder 또한 마지막 프로그램 유한 메모리를 가정하여 종료됩니다. Funge-98 스펙 {은 메모리가 부족하면 되돌릴 수 있다고 언급합니다 . 정상적인 푸시에 대해서는 아무 것도 말하지 않고 모든 통역사는 OOM에서 실패하는 것처럼 보이지만 언어 사양에서는 메모리 제한이 명확하게 고려됩니다.
PurkkaKoodari

p캐릭터 의 존재로 인해 잠재적으로 개선 될 수 있다고 생각 하지만 약간의 작업이 필요합니다. 당신은 e%95를 얻을 수 있지만, 당신은 그것을 인쇄하고 프로그램을 종료하는 방법이 필요합니다. 그래서 나는 그것을 의심합니다
MildlyMilquetoast

0

SmileBASIC, 12 개의 스 니펫, 5 개의 와일드 카드, 31 바이트

!.     '. is parsed as the number 0.0; taking the logical not gives 1
!.+!.  'Previous value added to itself
@Q||Q  '@Q is a label string and Q is a variable. For some reason, certain comparison/logical operations between strings and numbers return 3 rather than 1 or 0. 
4      '4
#TLIme 'Constant for the text color lime green, value is 5.
6      '6 (wildcard)
7      '7 (wildcard)
8      '8 (wildcard)
9      '9
&HA    'Hexadecimal A
11     '11 (one of them is a wildcard)
4*3    '4 multiplied by 3 (3 is wildcard)

또한 .(변수는 0에서 시작) 대신 변수를 사용하고 대신 문자열 변수 (예 Q$:)를 사용할 수 있습니다.@Q

사용 된 문자 : !!!#&*+...1449@AHILQQTem||

사용 된 와일드 카드 : 67813

미사용 문자 : !!$$%()))):=@@OQTZ\\^`````````efpxy{||~~~~~~~~~

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