자기 평가 프로그램


15

우리는 도전이 출력 자신의 점수를 하지만 모두 같은 답이 바로 출력을 하드 코딩하고있어 보인다 지루한 일을 . 새로운 도전에 도전합시다. 여러분의 프로그램 출력해야 바이트에서 자신의 길이는 문자열 다음에 " bytes",하지만 우리는 제거하여 크기를 줄이면 하드 코딩 솔루션을 방지하기 위해 어느 한 바이트, 새로운 프로그램해야합니다 또한 출력은 여전히 다음에 새로운 바이트 수,이다 " bytes". 출력은 대소 문자를 구분하지 않아도됩니다. 후행 줄 바꿈을 출력하도록 선택할 수도 있습니다.

적은 바이트를 사용하면 답이 바이트 단위로 표시됩니다.


1 : 나는 실제로 거기에 대한 답변 중 일부를 좋아합니다.


어쩌면 도전의 이름을 "자체 채점 수정 프로그램"또는 이와 유사한 것으로 변경할 수 있습니다.
dylnan

호환되는 언어를 사용하거나 통역 만 사용할 수 있습니까?
로건

@Logern 어느 쪽이든 사용할 수 있습니다.
Post Rock Garf Hunter

2
아아 나는 Hexagony 솔루션을 만드는 데 30 분을 보냈지 만 테스트하려고했을 때 바이트를 제거하면 육각형이 축소되었습니다 ! :(
조 왕

1
@WW 의미하는 것은 " 1 bytes기술적으로 잘못된 문법이지만, 언어에 문자열"바이트 "를 <= 2 바이트로 출력 할 수있는 내장 언어가 없다고 가정하면 프로그램은 3 바이트보다 길어 지므로 그렇지 않습니다. 문제 "-어쨌든 중요하지 않습니다.
user202729

답변:


16

백핸드 , 40 36 29 바이트

vv""sseettyybb  ""jjHHOO]

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

의심스러운 경우 모든 것을 두 배로 늘리십시오. 이것은 백핸드의 기능을 사용하여 한 번에 여러 단계를 이동하여 중복성을 구현합니다. 인쇄 할 수없는 모든 바이트 값은 28입니다.

설명:

조사되지 않은 프로그램 :

v       Reduce step count to 2
  "    Start string literal
    s e t y b        Push the " bytes" part of the output
                  " Push 28 twice and end the string literal
                       j    Jump to the 28th position (0 indexed) 
                             ]   Increment the 28 to 29
                           O     Print the 29
                         H       Halt and output the entire stack

조사 된 프로그램 :

문자가 삭제되면 그 이후의 모든 문자가 아래로 이동합니다.

vv"sseettyybb
v " s e t y b     The same instructions are still executed

그러나로 건너 뛰는 ]대신 프로그램의 끝 부분을 반영하고 O대신에 착륙 합니다.

                             v  28th character (0 indexed)
vv""sseettyybb       ""jjHHOO]
v""sseettyybb       ""jjHHOO]OOHHjj"".....
                             ^ 28th character, reflecting off the end of the code

3

룬 마법 , 47 바이트

>>yyLL     @"setyb 64"/
"47 bytes"@"setyb 64"L\

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

어느 정도 내 가이거 카운터 답변 포트 이지만 다른 출력 (즉, 클라인 답변 포트)이 있습니다.

>>yyLLRunic이 (적어도) 하나의 IP를 생성하고, 두 개의 IPS를 병합하고, 왼쪽으로 다시 반영하려면 모든 변형이 단일 왼쪽 IP를 생성해야합니다. 대체 될 수 yy<<있지만 바이트를 저장하지 않습니다.

오른쪽의 리플렉터는 IP를 왼쪽 아래 줄로 강제합니다. 따라서 오른쪽 상단 줄을 제거하면 IP가 오른쪽 상단 줄로 들어갑니다. 상단 라인을 따라 다른 곳에서 바이트를 제거하면 상단 반사기가 L 위에 놓 이도록 조정됩니다 (프로그램이 오른쪽 하단에 있음). 하단을 따라 바이트를 제거하면 해당 반사기가 조정되어 (또는 제거하여) 마지막 문자가 공백으로 암시 적으로 채워 지므로 IP가 오른쪽 상단 반사기의 양쪽에서 오른쪽 상단 문자열로 바운스 될 수 있습니다.

그러나 초과 공간은 실망 스럽습니다. 그러나이를 줄이기위한 모든 시도는 더 큰 프로그램, 동일한 크기의 프로그램 또는 100 % 방사선 증거가 아닌 프로그램으로 이어졌습니다. 클라인과> <> 답변은 모두 Runic에서는 사용할 수없는 기능을 사용합니다.


2

> <> , 43 39 바이트

||vn-{"' bytes"-10/
 o>o<"38 bytes"[0/0

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

미 조사 프로그램에서, 우리는 추가 0받는 사람 '(39), 및 조사 프로그램에서 우리는 0을 생략하고 추가 -1대신에. 상단 행에서 무언가가 제거되면 대신 하단 행으로 이동하여 출력 38 bytes합니다.


2

헥사 고니 , 71 바이트

//.........||.>e;s;@..\;t;y;b<>}F"+!P0;/|/F!P0$@;<...t;ye;bs/.........)

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

나는 이것을 5 크기의 육각형으로 만들기 위해 너무 오래 보냈지 만 대신 6 이하의 크기로 정착해야했습니다 :(.

넓히는:

      / / . . . .
     . . . . . | |
    . > e ; s ; @ .
   . \ ; t ; y ; b <
  > } F " + ! P 0 ; /
 | / F ! P 0 $ @ ; < .
  . . t ; y e ; b s /
   . . . . . . . . .
    ) . . . . . . .
     . . . . . . .
      . . . . . .

처음에는 이것을 )한 줄 아래로 낮추었 지만 크기 5와 크기 6 육각형 사이의 구분이 정확히 있습니다. 이것은 바이트가 제거되면 크기가 모두 아래로 이동하여 경로를 망칠 것을 의미합니다. 크기 5가 가능하다고 확신합니다.


내가 이것을 올바르게 이해하고 있다면, 당신은 )행을 더 낮게 놓을 수 없으며 그다음에 no-op를 넣을 수 있습니다.
EdgyNerd

@EdgyNerd 프로그램에 영향을주지 않고 제거 할 수있는 것보다 이후에 no-op을 넣는 경우
Jo King

2

클라인 000, 41 바이트

<<@"setyb "$"4"+"0"/
..@"setyb 04"(....<1

온라인으로 사용해보십시오! 농심의 검증 자

이 답변은 JoKing의> <> answer 와 비슷하다고 생각 하지만> <>을 읽지 못하므로 확실하지 않습니다.

여기에는 4 가지 유형의 바이트 제거가 있습니다.

  1. 바이트는 이전의 첫 번째 행에서 제거됩니다 /. 이 경우 슬래시는 효과적으로 한 칸 왼쪽으로 이동하여 맨 아래 줄로 편향되어 수정 된 코드 부분이 실행되는 것을 방지합니다. 이것은 우리가 코드를 실행하도록하여 ("40 bytes"@출력 40 bytes합니다.

  2. 먼저 /첫 번째 행으로부터 제거된다. 이 경우에 우리는 코드를 실행하는데 "0"+"4"$" bytes"@, 이것은 복잡한 방식이거나 인쇄 40 bytes입니다.

  3. 줄 바꿈이 제거됩니다. 이것은 우리가 두 번째 줄의 끝에서 시작하게하고 결과 코드 (noops가 제거 된)는 1("40 bytes"@단지 인쇄 40 bytes됩니다.

  4. 마지막 줄에서 바이트가 제거됩니다. 이로 인해 1첫 번째 줄의 끝이 왼쪽으로 이동하고 뾰족한 부분이에 의해 변형 될 때 스택에 추가되지 않습니다 /. "0"+그 이유에 대한 코드 는 0대신에 푸시 1되고 나머지 코드는 0로 바뀝니다 40 bytes.

클라인 001, 41 바이트

\("40 bytes"@......1
..@"setyb "$"4"+"0"/

온라인으로 사용해보십시오! 농심의 검증 자

다음은 다른 토폴로지를 사용하는 답변입니다. 크기는 같지만 개선의 여지가 있다고 생각합니다.


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