코드와 길이가 같은 출력


97

이 문제에서는 입력을받지 않고 프로그램 자체와 동일한 바이트 수의 문자열을 인쇄하거나 반환하는 프로그램이나 함수를 작성해야합니다. 몇 가지 규칙이 있습니다.

  • 인쇄 가능한 ASCII 범위 (0x20 ~ 0x7E 포함) 또는 줄 바꿈 (0x0A 또는 0x0D)의 바이트 만 출력 할 수 있습니다.
  • 코드는 quine이 아니어야하며 코드와 출력은 1 바이트 이상 달라야합니다.
  • 코드는 1 바이트 이상이어야합니다.
  • 출력에 후행 줄 바꿈이 있으면 바이트 수의 일부입니다.
  • 코드에 비표준 명령 줄 플래그가 필요한 경우 평소와 같이 계산합니다 (예 : 언어 구현의 표준 호출에 대한 차이를 바이트 수에 추가하여). 출력 길이는 솔루션의 점수와 일치해야합니다. 예를 들어 프로그램이 ab비표준 플래그를 필요로하는 경우 -n(표준 플래그와 결합 할 수 없다고 가정하므로 3 바이트 임) 총 5 바이트를 출력해야합니다.
  • 가능한 모든 출력이 위의 요구 사항을 충족한다는 것을 보여줄 수 있다면 출력이 항상 같을 필요는 없습니다.
  • 일반적인 퀴니 규칙 적용 되지 않습니다 . 소스 코드 나 크기를 읽을 수 있지만 대부분의 언어로 하드 코딩하는 것보다 짧을 것입니다.

당신은 쓸 수 있습니다 프로그램이나 기능 과의 사용 표준 방법 출력을 제공합니다. 결과를 인쇄하는 경우 표준 출력 또는 표준 오류 스트림으로 인쇄하도록 선택할 수 있지만 그 중 하나만 계산됩니다.

모든 프로그래밍 언어를 사용할 수 있지만 이러한 허점 은 기본적으로 금지되어 있습니다.

이것은 이므로 바이트 단위로 측정 된 가장 짧은 유효한 답변이 이깁니다.

리더 보드



18
...하지만 "당신의 코드가 quine 안됩니다"하지만 ... 그것은 태그 것 quine을
Okx

4
@Okx 일반화 된 quine이므로 필요한 출력은 소스 코드에 따라 다릅니다.
마틴 엔더

4
@MartinEnder 종료 코드 (기본값)로 출력을 허용하지 않을 수 있습니다. 거의 모든 언어의 거의 모든 1 바이트 프로그램이 허용되면 허용됩니다. 한 사용자는 이미 수행 한
Sriotchilism O'Zaic을

2
종료 코드에 의한 @WheatWizard 출력은 문자열이 아니므로 여기에 적용되지 않습니다.
마틴 엔더

답변:


204

C (현대 리눅스), 19 바이트

main(){puts('s');}

컴파일하고 실행하면 다음이 인쇄됩니다.

Segmentation fault

20
훌륭합니다 : D
Beta Decay

4
이 더 같다 "C + 영어 유닉스 / POSIX의 OS)"
플로리안 카스텔란

5
"C"보다 "C, modern Linux"를 작성하는 것이 낫다고 생각합니다. Windows에서는 오류 메시지가 다르고 옛날에는 Linux 프로그램이 주소 0x73 ( 's')을 읽을 수있는 방식으로 컴파일되기까지했습니다. 예외가 발생하지 않았습니다.
Martin Rosenau

9
이 답변을 찬성하기 위해 사이트에 가입했습니다.
Nitish

7
이것이 인상적이지만 실제로 출력을 인쇄하는 것은 C 프로그램이 아니라 실행중인 쉘입니다.
Dennis

80

엑셀, 11 바이트

노르웨이어 버전 :

=SMÅ(13^9)

영어 버전 (12 바이트) :

=LOWER(17^9)

n 자리 숫자를 생성하고 소문자로 변환하여 텍스트로 변환합니다.


106
이것은 "작업에 적합한 언어를 고르는"이라는 완전히 새로운 의미를 부여합니다.
마틴 엔더

4
이것은 좋은 생각입니다. =9^7&""어느 언어로든 7 자리 숫자를 생성하는 것은 더 짧 으며 7 바이트에 불과합니다.
OpiesDad

@OpiesDad 좋은 해결책, 당신은 답변으로 게시해야한다고 생각합니다.
pajonk

4
@MartinEnder 여러분의 추측 / 잠재적 농담이이 답변보다 더 많이지지되는 방식이 놀랍습니다.
HyperNeutrino

55

미로 , 4 바이트

!!>@

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

인쇄물 0000

설명

!   Print an implicit 0 from the stack.
!   Print an implicit 0 from the stack.
>   Rotate the source code right by one cell, so the code now becomes

    @!!>

    The IP is moved along, so it's now at the end of the line, which is 
    a dead end. So the IP turns around and starts moving left.
!   Print an implicit 0 from the stack.
!   Print an implicit 0 from the stack.
@   Terminate the program.

6
너무 영리 해요 집에 +1하세요!
caird coinheringaahing


40

망막 , 2 바이트

no

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

인쇄 0및 줄 바꿈.

2 바이트 솔루션이 많이 있지만 이것이 최적이라고 생각합니다. Retina는 기본적으로 항상 후행 줄 바꿈을 인쇄하고 제거하는 데 너무 많은 바이트가 필요합니다. 따라서 빈 입력을 변경하지 않은 1 바이트 프로그램을 찾아야합니다. 이 작업을 수행하는 유일한 프로그램은 단일 줄 바꿈을 포함하는 프로그램이므로 출력과 같으므로 챌린지에서 허용하지 않습니다.

다음으로해야 할 가장 간단한 일은 Retina를 사용하여 단일 숫자 (빈 입력에 대한 일부 정규 표현식의 일치 수)를 출력하는 것이며, 많은 실패 (또는 일치) 2 바이트 패턴으로이를 수행 할 수 있습니다.


27
+1 코드를 실행하지 말라고 지시하십시오 : P
Christopher

33

수학, 2 바이트

4!

계승

24


1
가! 너무 영리합니다.
tuskiomi

2
나를 이길! +1. ( 이것은 Mathematica의 REPL 버전에 있다는 것을 언급해야한다고 생각합니다 .)
Greg Martin

이것이 합리적인 대답이라면, 대답 "1"도 합리적인 대답이 아닐까요? (Mathematica의 REPL에 '1'을 넣으면 '1'도 반환됩니다 ...)
Mark Segal

3
@MarkSegal 그것은 무 규칙을 위반하는 것입니다.
AlexR

6
규칙 : ... "... 코드와 출력은 1 바이트 이상
달라야합니다

29

C, 20 바이트

f(){printf("%20d");}

공백으로 채워진 20의 길이로 일부 숫자를 출력합니다. (어떤 숫자? 메모리에서 다음에 오는 것은 무엇입니까?)

일부 샘플은 내 시스템에서 실행됩니다.

llama@llama:...code/c/ppcg121056samelen$ ./a.out 
           -666605944
llama@llama:...code/c/ppcg121056samelen$ ./a.out 
          -1391039592
llama@llama:...code/c/ppcg121056samelen$ ./a.out 
           1727404696
llama@llama:...code/c/ppcg121056samelen$ ./a.out 
             10717352
llama@llama:...code/c/ppcg121056samelen$ ./a.out 
           1485936232

이 19 바이트 솔루션을 허용했기 때문에 출력이 임의의 바이트가 될 수 없다는 것은 부끄러운 일입니다.

f(){write(1,f,19);}

f주소 에서 시작하여 19 바이트의 정크를 출력 합니다.


가변 출력 규칙을 사용하는 답변을 보게되어 기쁩니다. :)
Martin Ender

이 segfault 수 없습니다?
Daniel

TIO 링크는 어디에 있습니까?
CalculatorFeline

@Daniel 아니오, 인쇄 된 번호는 %esi레지스터 의 이전 내용에서 나옵니다 .
Doorknob

8
@Doorknob 그러나 여전히 정의되지 않은 동작이므로 더 가학적인 컴파일러는 여기서 완전히 다른 것을 할 수 있습니다
Sarge Borsch

29

리눅스에서의 배쉬, 6

uname

(줄 바꿈)

출력 Linux다음에 개행 문자가옵니다.


2
기술적 uname으로 bash 내장은 아닙니다-별도의 실행 파일입니다
Jason Musgrove


@GammaFunction unamebash 내장으로 어디에서 볼 수 있습니까 ? 내가 지금 손에 넣을 수있는 모든 배포판은 TIO를 포함한 별도의 바이너리 입니다. 반대로, 링크 된 답변에서 볼 수 있듯이 umask대부분 / 모든 껍질에 내장되어 있습니다.
디지털 외상

나는 하지 않습니다uname내장 명령한다. "-1, 실제로는 내장"이라고 말했을 때 "이 답변은 umask-1 바이트에 사용 umask되며 실제로는 내장"입니다.
GammaFunction

@GammaFunction 죄송합니다-귀하의 의견에 "-1"의 의미가 잘못 이해되었습니다.
디지털 외상

27

자바 스크립트 ES6, 9 바이트

템플릿 문자열 사용

_=>`${_}`

f=

_=>`${_}`

console.log(f());
console.log(typeof f());


되어 undefined문자열로 간주?
Shaggy

3
@Shaggy 편집 내용을 참조하십시오. 나는 문자열 보간을 사용하고 있습니다
Weedoze

와우이 PPCG에 대한 두 번째 게시물과 14 upvotes입니다! 감사
Weedoze

1
왜 간단한 유청이 어려울 수 있습니까? (_=>_+'').
GOTO 0

1
@ GOTO0 오 괄호를 유지하십시오. 이것은 또 다른 옵션입니다. 나는 개인적으로 내 hehe를 선호합니다
Weedoze

24

피라미드 체계 , 74 43 42 바이트

Khuldraeseth na'Barya 덕분에 31 바이트를 절약했습니다! JoKing의 재 설계된 솔루션 덕분에 1 바이트가 절약되었습니다!

  ^
 /^\
^---^
-^ ^-
 -^-
 /2\
/ 8 \
-----

온라인으로 사용해보십시오! 41 자리 숫자를 출력 28^28 = 33145523113253374862572728253364605812736한 후 후행 줄 바꿈을 출력합니다 .


구 버전

  ^
 / \
/out\
-----^
    /^\
   ^---^
  /1\ /9\
 /606\---
/51015\
-------

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

출력 71277303925397560663333806233294794013421332605135474842607729452115234375= 160651015 ** 9또는 약 10 74 .


6
이봐, 당신은 당신의 언어를 판매하려고합니까? 그렇다면 체포 된 것입니다. -경찰
아무도 없음 여기

2
@NoOneIsHere 용서?
코너 오브라이언

3
죄송합니다. Pyramid Scheme이라고도하며 사기 유형의 이름이기도합니다.
NoOneIs 여기

1
ohhhhhhhhhhhh rofl
코너 오브라이언

1
암시 적 출력은 43 바이트로 줄 입니다.
Khuldraeseth na'Barya



18

brainfuck , 25 바이트

--[-->+<]+++++[->-.....<]

온라인으로 사용해보십시오! 참고 : 8 비트 부호없는 셀로 구현해야합니다.

산출:

~~~~~}}}}}|||||{{{{{zzzzz

설명

--[         254
 -->+<]      /2 = 127 into the second cell
+++++[      Five times
 ->-.....<]  Print the second cell - 1 five times

4
8 비트 셀, 인피 트 테이프와 같은 많은 BF 변형이 있습니다. 또는 제한된 테이프 및 무한 셀. 나는 당신이 서명되지 않은 8 비트 셀 모델이라고 확신하지만 대답에 포함하면 좋을 것이라고 생각합니다.
Roman Gräf

@ RomanGräf 좋은 지적입니다! 비표준 구현이 필요한 경우 일반적으로 해당 정보를 포함시킵니다. 이 답변은 모든 표준 구현 (8 비트 부호없는 셀, 모든 테이프)에서 작동해야하지만 명확히하기 위해 메모를 추가 할 것입니다.
잭 C.

.인쇄 할 수없는 NULL문자 를 인쇄 하는 1 바이트 프로그램 이 없습니까?
Graviton

@Graviton 그것은이 도전의 첫 번째 규칙을 위반할 것입니다. 그러나 이것이 인쇄 가능한 값으로 기본 설정되는 BF 파생 상품의 유효한 솔루션입니다 ( my brainbool answer 참조 ).
잭 C.


16

C (아이디어), 14 바이트

f(){warn(0);}

실행 파일의 이름을 지정하는 Ideone 에서는 prog후행 줄 바꿈으로 다음을 출력합니다.

prog: Success

C (GCC), 15 바이트

f(){warn(00);}

GCC는 a.out기본적으로 이름이 지정된 실행 파일 (바이트가 필요한 추가 플래그가없는 경우)을 작성하므로 후행 줄 바꿈과 함께 다음을 출력합니다.

a.out: Success

7
@MDXF 스펙에 프로그램 또는 함수가 표시되므로 함수 제출이 완벽하게 유효합니다. 여기서 파일 이름은 사용자가 선택하지 않았기 때문에 (Ideone 및 gcc 모두 기본값이 있음) 이것이 개인적이라고 생각합니다.
Dennis

15

C (gcc) , 18 17 바이트

f(){puts('@C');}

와 사이에 STX 바이트 ( 0x02 )가 있습니다.@C

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

이식성

이것은 Fedora 25의 gcc 6.3.1 및 clang 3.9.1, Ubuntu 14.04.4의 gcc 4.8.4 및 openSUSE 13.2의 gcc 4.8.3에서 테스트되었으며 다음 출력을 인쇄합니다.

inux-x86-64.so.2

다음 유형의 실행 파일로 컴파일하는 한 모든 버전의 gcc에서 동일한 출력을 생성 할 것으로 기대합니다.

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2

플랫폼마다 다른 메모리 주소와 다중 문자 문자 상수의 바이트에 대해 다른 순서가 필요할 수 있습니다.

예를 들어, 교체 @\2C@\2\4인쇄 exec/ld-elf.so.1하고 연타 3.8.0와 FreeBSD의 11 개행.

오프라인 확인

$ printf "%b\n" "f(){puts('@\2C');}main(){f();}" > quine.c
$ gcc -w -o quine quine.c
$ ./quine
inux-x86-64.so.2
$ ./quine | wc -c
17

작동 원리

기본적으로 ld는 0x400000 을 텍스트 세그먼트의 기본 주소로 사용하므로 메모리 주소 0x400000 에서 시작하는 ELF의 내용을 찾을 수 있습니다 .

ELF의 처음 640 바이트는 실제 소스 코드와 크게 독립적입니다. 예를 들어, f 선언 다음에 main(){f();}아무 것도 표시되지 않으면 다음과 같이 보입니다.

00000000: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  .ELF............
00000010: 02 00 3e 00 01 00 00 00 00 04 40 00 00 00 00 00  ..>.......@.....
00000020: 40 00 00 00 00 00 00 00 e8 19 00 00 00 00 00 00  @...............
00000030: 00 00 00 00 40 00 38 00 09 00 40 00 1e 00 1b 00  ....@.8...@.....
00000040: 06 00 00 00 05 00 00 00 40 00 00 00 00 00 00 00  ........@.......
00000050: 40 00 40 00 00 00 00 00 40 00 40 00 00 00 00 00  @.@.....@.@.....
00000060: f8 01 00 00 00 00 00 00 f8 01 00 00 00 00 00 00  ................
00000070: 08 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00  ................
00000080: 38 02 00 00 00 00 00 00 38 02 40 00 00 00 00 00  8.......8.@.....
00000090: 38 02 40 00 00 00 00 00 1c 00 00 00 00 00 00 00  8.@.............
000000a0: 1c 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00  ................
000000b0: 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00  ................
000000c0: 00 00 40 00 00 00 00 00 00 00 40 00 00 00 00 00  ..@.......@.....
000000d0: 04 07 00 00 00 00 00 00 04 07 00 00 00 00 00 00  ................
000000e0: 00 00 20 00 00 00 00 00 01 00 00 00 06 00 00 00  .. .............
000000f0: 08 0e 00 00 00 00 00 00 08 0e 60 00 00 00 00 00  ..........`.....
00000100: 08 0e 60 00 00 00 00 00 1c 02 00 00 00 00 00 00  ..`.............
00000110: 20 02 00 00 00 00 00 00 00 00 20 00 00 00 00 00   ......... .....
00000120: 02 00 00 00 06 00 00 00 20 0e 00 00 00 00 00 00  ........ .......
00000130: 20 0e 60 00 00 00 00 00 20 0e 60 00 00 00 00 00   .`..... .`.....
00000140: d0 01 00 00 00 00 00 00 d0 01 00 00 00 00 00 00  ................
00000150: 08 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00  ................
00000160: 54 02 00 00 00 00 00 00 54 02 40 00 00 00 00 00  T.......T.@.....
00000170: 54 02 40 00 00 00 00 00 44 00 00 00 00 00 00 00  T.@.....D.......
00000180: 44 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00  D...............
00000190: 50 e5 74 64 04 00 00 00 b0 05 00 00 00 00 00 00  P.td............
000001a0: b0 05 40 00 00 00 00 00 b0 05 40 00 00 00 00 00  ..@.......@.....
000001b0: 3c 00 00 00 00 00 00 00 3c 00 00 00 00 00 00 00  <.......<.......
000001c0: 04 00 00 00 00 00 00 00 51 e5 74 64 06 00 00 00  ........Q.td....
000001d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000001e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000001f0: 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00  ................
00000200: 52 e5 74 64 04 00 00 00 08 0e 00 00 00 00 00 00  R.td............
00000210: 08 0e 60 00 00 00 00 00 08 0e 60 00 00 00 00 00  ..`.......`.....
00000220: f8 01 00 00 00 00 00 00 f8 01 00 00 00 00 00 00  ................
00000230: 01 00 00 00 00 00 00 00 2f 6c 69 62 36 34 2f 6c  ......../lib64/l
00000240: 64 2d 6c 69 6e 75 78 2d 78 38 36 2d 36 34 2e 73  d-linux-x86-64.s
00000250: 6f 2e 32 00 04 00 00 00 10 00 00 00 01 00 00 00  o.2.............
00000260: 47 4e 55 00 00 00 00 00 02 00 00 00 06 00 00 00  GNU.............
00000270: 20 00 00 00 04 00 00 00 14 00 00 00 03 00 00 00   ...............

예를 들어, main(int c, char**v){f();}대신에 일부 바이트는 변경하지만 /lib64/ld-linux-x86-64.so.2출력을 생성하는 데 사용할 문자열의 오프셋은 변경하지 않습니다 .

해당 문자열의 오프셋은 0x238 이며 길이는 27 바이트입니다. 우리는 17 바이트 (우리가 사용하는 경우 마지막 하나는 줄 바꿈 될 것입니다 인쇄 할 puts), 그래서 우리는 추가 (11)를 얻을 수있는 오프셋 (offset)에 0x243을 의 오프셋 inux-x86-64.so.2. 추가 0x4000000x243은 제공 0x400243 의 메모리 위치 inux-x86-64.so.2.

이 메모리 주소를 얻기 위해 구현 정의 동작을 나타내는 다중 문자 문자 상수를 사용할 수 있습니다. 0x400243 은 기본 256에서 (64) (2) (67) 이며 gcc의 다중 문자 문자 상수는 빅 엔디안 바이트 순서를 사용하므로 '@\2C'원하는 문자열의 메모리 주소를 생성합니다.

마지막으로, puts해당 메모리 위치에 널 (null- 종료) 찌르기와 후행 줄 바꿈을 인쇄하여 17 바이트의 출력을 생성합니다.


이것은 마법사입니다 ... 컴파일 된 어셈블리 또는 다른 바이트 순서를 가정합니까?
패트릭 로버츠

내 시스템에서 출력 (리눅스 GCC 6.3.1) U로 컴파일 할 때 -Df=main. U때 컴파일 main(){f();}.
MD XF

@PatrickRoberts이 시점에서 나는 가정이 무엇인지 잘 모르겠습니다. 이 파일은 어셈블 된 ELF 파일에서 찌르기 때문에 실제 코드 전에 컴파일러가 작성하는 모든 것에 거의 의존합니다.
Dennis

@MDXF 적절한 메모리 주소를 얻는 더 짧은 방법을 찾았습니다. 현재 우분투 14.04 VPS에서 작동하지만 ymmv입니다.
Dennis

@Dennis는 이제 잘 작동합니다. 주말에 아무도 더 짧은 해결책을 찾지 못하면 바운티는 당신의 것입니다.
MD XF

13

자체 수정 Brainfuck , 5 바이트

<[.<]

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

산출:

]<.[<

설명:

정말 간단합니다. 소스를 반대로 인쇄합니다. SMBF에서 프로그램 내용은 포인터의 초기 위치 왼쪽에 테이프에 저장됩니다. 왼쪽으로 활공하고 인쇄하면 소스 코드가 거꾸로 출력됩니다.

이 과제에서는 읽기 소스가 허용되므로 규칙 내에 있어야합니다.


13

기본 산술 계산기 , 2 바이트

1=

인쇄 1.또는

    |
    |
    |  .

바보 같은 7 세그먼트 디스플레이에서

재생산하려면 임의 계산기를 선택하십시오. 그들은 모두이 프로그래밍 언어를 어떻게 든 설치했습니다.


1
이것은 모든 계산기에 해당됩니까? 나는 그들이 지속적으로 소수점을 보여 확신합니다
Beta Decay

그렇지 않아 1.대신 1x? 또한 이것은 규칙에 의해 허용되지 않는 quine입니다.
아웃 골퍼 Erik 14

아니, 1=난 엉망 이야 나는 1x암시 적 인 것보다 의미 가 있지만 =버튼 이라는 것을 잊었습니다 .
OldBunny2800

1TI-36 및 TI-84 CE 에서만 출력 됩니다. 이것들이 "기본"계산기로 계산되지 않습니까?
벤자민 Urquhart

TI 84는 산술 계산기가 아니라 그래프 계산기입니다. 나는 36에 대해 모르지만 과학적인 계산기라고 확신합니다. 이 답변은 4 기능 계산기입니다.
OldBunny2800

13

푸리에, 26 22 20 바이트

5^(`na`&i)` Batman!`

FourIDE에서 사용해보십시오!

출력 :

nananananana Batman!

적절한 대문자를 사용하려면 4 바이트가 추가됩니다.

`N`7^(`an`i^~i)`a Batman!`

FourIDE에서 사용해보십시오!

Nanananananananana Batman!

RIP 아담 웨스트


1
NC를 포함 할 필요는 없습니다 (이 도전에 대해 문자열 인쇄를 한 경우에만 가능합니다)
Christopher

@Christopher Huh, 나는 몰랐다
Beta Decay

12

Brachylog , 1 바이트

w

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

설명

w내장 "쓰기"입니다. 여기에 입력을 씁니다. 입력은 자유 변수이므로 w인쇄하기 전에 정수로 레이블을 붙입니다. 시도하는 첫 번째 정수는입니다 0.


Here, it will write the Input.'입력'이 프로그램 자체입니까? 이 소스를 읽는 것으로 간주되지 않습니까?
MD XF

4
@MDXF "보통 퀴닝 규칙은 적용되지 않습니다"
Rob Watts

3
@MDXF 입력은 Brachylog 프로그램을 호출 할 때 설정할 수있는 특수 Brachylog 변수입니다. TryItOnline의 입력 부분으로갑니다. 여기서는 입력에 아무것도 설정하지 않았으므로 사실상 변수입니다. 프로그램이 아닙니다.
페이탈 라이즈

10

자바 (OpenJDK 8) , 11 바이트

o->1e8-1+""

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

산출:

9.9999999E7

명백한 대답보다 조금 더 정교합니다 ()->"".format("%23s",0).

저장

  • 18-> 16 바이트 : PunPun1000 덕분에 더 유리한 반올림과 10의 거듭 제곱 조합
  • 16-> 13 바이트 : JollyJoker 덕분에 더 나은 공식
  • 13-> 11 바이트 : Kevin Cruijssen 덕분에 개선 된 공식

2
()->1E10-1+"", "9.999999999E9" (13)3 바이트 더 절약
JollyJoker

1
넌 변화 1 바이트를 저장할 수 1e101e9이용하여, 2 바이트 빈 입력하는 대신() 이 같은 o->1e8-1+""(출력 9.9999999E7; 길이 및 바이트 카운트 (11) ).
Kevin Cruijssen

9

05AB1E , 1 바이트

õ

단일 줄 바꿈을 출력합니다. õ빈 문자열을 푸시하고 암시 적으로 줄 바꿈으로 출력됩니다.

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

보는 즐거움을위한 다른 2 바이트 솔루션 (출력은 대괄호 안에 있으며 모든 출력에는 줄 바꿈 문자가 있음) :

X, (1)
Y, (2)
¾, (0)
¼, (1)
¶, (newline)
ð, (space)
Î, (0)

그래도 더 많은 2 바이트 솔루션이 있습니다.


"해당되는 출력 방법"은 전체 프로그램이 아닌 기능 솔루션에만 해당됩니다.
마틴 엔더

@MartinEnder이 솔루션이 함수로 계산됩니까? 나는 종종 여기에서 함수를 사용하지 않기 때문에 확실하지 않습니다.
Okx

나는 05AB1E에 대해 충분히 알지 못하지만 실제로 함수 객체로 평가되는 표현식 인 경우에만 함수로 간주됩니다 (이를 사용하면 즉시 명령이 실행되므로 의심 스럽습니다).
마틴 엔더

9

V / vim, 1 바이트

o

이것은 단일 줄 바꿈을 인쇄합니다.

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

이것에도 작동하는 많은 변형이 있습니다. 예를 들어

O

vim에서

Ä
ä
ï
Ï

V.에서

많은 3 바이트 솔루션도 많이 있습니다. 예를 들면 다음과 같습니다.

3ii
i³i
¬ac

이들은 모두 V에만 해당됩니다.


3ii는 escape를 누를 때까지 확장되지 않으므로 3 또는 4 바이트 (또는 키 입력)가되어야합니까?
algmyr

@algmyr vim에서는 맞습니다. 그것은 할 것이다 4ii<ESC>그러나 V가 암시 적으로 프로그램의 끝에서 탈출 채 웁니다.
DJMcMayhem

8

배치, 12 바이트

@echo %OS%

바이트 수에는 스크립트와 출력 모두에 대한 마지막 줄 바꿈이 포함됩니다.

Windows_NT

12 바이트가 아닌 11 바이트 인 것 같습니다.
Outgolfer Erik Erik 's

@EriktheOutgolfer cmd.exe는 물론 Windows_NT12 바이트 후에 CRLF를 에코 합니다.
Neil

그럼 당신은 명확히해야합니까?
아웃 골퍼 Erik 14






7

젤리 , 1 바이트

V

꽤 많은 젤리 1 바이트-이것은 하나입니다-입력으로 아무것도 제공되지 않을 때 기본적으로 0으로 설정되고 결과적으로 0으로 평가되고 결과가 암시 적으로 인쇄되는 왼쪽 인수를 평가합니다 0.

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

실제로, 코드 페이지의 256 바이트 중 전체 프로그램으로 실행될 때 지정된 범위 내에서 현재 다른 1 바이트 출력을 생성 하지 않는 95 개만 있습니다. 다음은 바이트 순서의 코드 페이지 문자입니다.

¡¢£¦©½¿€ÇÑÞßçıȷñ÷þ"#&',-./0123456789:;?@IMRTVZ\`dmpstxyz{}~°³⁴⁵⁹ƓƈɠḶỌṬḊĖİĿṄȮṖṘẆẊṃọṣṭḃḟḣŀṁṗṡẋż’“

노트:

  • 1 바이트 프로그램의 대부분은 인쇄하지 0의 (a를 출력에서 하나의 제로와 목록, 산출 / 노 작전을 0대부분의 사람들은 인쇄) 1( 0=0등을)

  • 한 프로그램 않는 다른 바이트 수율, 하지만 사양에 따라, 범위를 벗어나는 일 - 그것은 널 바이트 (캐스트 생성하는 0캐릭터)를

  • 공백을 생성합니다 (리터럴)

  • 줄 바꿈 (리터럴)을 생성합니다

  • 현재 작동하는 일부 바이트는 미래에 그렇게하지 않을 수 있습니다-할당 된 경우 거의 확실하게 1 바이트 출력을 생성하지 않는 나일 값에 대해 상당히 많은 바이트가 예약되어 있습니다 (믿습니다).


1
데드 링크byte
Weedoze

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