최소 입력에서 출력 최대화


16

분명히 코드 골프는 코드를 최대한 활용하는 것입니다. 실제 출력이 무엇인지 누가 정말로 신경 쓰는가?

우리는 가장 높은 입력 대 출력 비율에 대한 도전을 겪었 지만 주어진 코드 길이 로 가장 유한하고 결정적인 출력을 요구합니다. 아이러니하게도이 도전은 아닙니다 .

규칙 :

  1. 세 개의 독립적 인 스 니펫 (전체 프로그램 / 기능이 아님)을 작성하십시오.

  2. 스 니펫은 동일한 언어로되어 있어야합니다.

  3. 점수는 총 출력 바이트 수입니다.

  4. 결과는 결과, STDOUT 등의 형태 일 수 있습니다.

  5. 스 니펫은 오류를 발생시키지 않을 수 있습니다.

  6. 스 니펫은 다른 형식의 출력을 유발할 수 있습니다.

  7. 후행 줄 바꿈 문자는 계산되지 않습니다.

  8. 첫 번째 스 니펫은 1 바이트이거나 최소 1 바이트의 출력을 생성하는 최소 길이 여야합니다.

  9. 두 번째 스 니펫은 그것보다 1 바이트 길어야합니다.

  10. 세 번째 스 니펫은 첫 번째 스 니펫보다 2 바이트 더 길어야합니다.


5
네, 출력은 이론적으로 유한 한 것으로 제한되어야한다고 생각합니다. 오해와 임의성이 실제로 원하는 것이 아니라면 결정 론적이어야한다고 지정해야합니다.
FryAmTheEggman

각 스 니펫이 새로운 REPL 인스턴스에서 실행된다고 가정 할 수 있습니까?
SuperJedi224

@ SuperJedi224 예.
Adám

"다른 형태 의 출력" 에서 "형태"는 무엇입니까 ?
Luis Mendo

@LuisMendo 예 : 하나의 스 니펫이 메시지 상자를 표시하고 다른 코드는 STDOUT에 인쇄 될 수 있습니다.
Adám

답변:


26

GS2, 412 + 5.37 * 10 902 + 10 10 903.1 바이트

  1. f- 바이트 문자열 1\n2\nFizz\n4\nBuzz\n...\nFizzBuzz로 푸시 412합니다.

  2. 412! * 412문자의 모든 순열을 인쇄합니다 .

  3. fôô412! 요소 목록의 모든 순열을 인쇄합니다. 여기서 각 요소의 길이는 412 자이므로 412 * (412!)!바이트입니다.

편집 : 사물을 원근감있게 넣으려면 적어도 이것은

101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

바이트, 지금까지 다른 모든 답변을 왜소하게합니다.


9

Pyth, 26 + 1140850688 + (> 4.37 × 10 20201781 )

세 번째 프로그램의 정확한 출력 길이를 계산할 수 있는지 모르겠습니다. 경계 만 줄 수 있습니다. 문자 4.37 × 10^202017811.25 × 10^20201790문자 사이에 무언가를 인쇄 합니다.

G
yG
yyG

인쇄합니다 :

abcdefghijklmnopqrstuvwxyz
['', 'a', 'b', ..., 'abcdefghijklmnopqrstuvwxyz']
[[], [''], ['a'], ['b'], ['c'], ..., ['', 'a', 'b', ..., 'abcdefghijklmnopqrstuvwxyz']]

첫 번째는 알파벳을 인쇄하고, 두 번째는 알파벳의 모든 하위 집합을, 세 번째는 알파벳의 하위 집합을 인쇄합니다. 이는 길이 목록입니다 2^(2^26) ~= 1.09 × 10^20201781.

분명히 어떤 컴퓨터도이 큰 목록을 계산하여 출력 할 수 없습니다.


1
내 계산이 정확하면 2 ^ (2 ^ 26-1) * (2 ^ 25 * 26 + 2 ^ 26 * 4) + 2 ^ (2 ^ 26) * 2 = 6.239 * 10 ^ 20201789 자 여야합니다. 각 문자열은 같은 횟수로 나타나므로 상한의 절반에 불과합니다.
jimmy23013

1
@ jimmy23013과 내 계산이 모두 올 바르면 숫자 의 연결은 번째 프로그램의 출력 길이와 같아야합니다.
LegionMammal978

6

CJam, 17 + 34 + 72987060245299200000 = 72987060245299200051 바이트의 출력

보다 쉬운 비교를 위해 대략 7.3 * 10 19 입니다.

P
PP
Ke!

인쇄물:

3.141592653589793
3.1415926535897933.141592653589793
012345678910111213141516171819012345678910111213141516171918012...

마지막 [0 1 2 ... 19]은 숫자 가 모두 뭉쳐진 모든 순열로 구성 됩니다. 나는 그것을 시도하지 않는 것이 좋습니다 ... ( 4e!맛을 얻는 것처럼 보십시오 .)

여기에서 테스트하십시오 : 프로그램 1 , 프로그램 2 , Sane 버전의 프로그램 3 .


4

젤리 , 1.2 × 10 2568 바이트의 출력

ȷ
ȷ*
ȷ*!

1000 , 1000 10001000 1000을 계산합니다 ! .

온라인 시도 : 첫 번째 프로그램 | 두 번째 프로그램 | 세 번째 프로그램 (수정)

바이트 카운팅을 위해 Jelly의 현재 버전ȷ 에서 바이트 0xa0으로 인코딩 할 수 있습니다 .

작동 원리

Jelly에서는 ȷ숫자 리터럴 내부에서 Python e(과학 표기법) 으로 사용할 수 있습니다 . 예를 들어, 30000을3ȷ4 반환합니다 . 젤리의 과학적 표기법에서의 계수 기본값 1 과에 지수 기본적으로 3 , 그래서 , 그리고 모두 같은 수를 반환.ȷ1ȷ31000

ȷ      Return 1000.
ȷ      Return 1000.
       Parse the remaining code as a program with input 1000.
 *     Hook; compute 1000 ** 1000.
ȷ      Return 1000.
       Parse the remaining code as a program with input 1000.
  !    Return 1000!.
 *     Fork; compute 1000 ** 1000!.

APL과 동등한 제품이 있습니까?
Adám

@NBZ 예. APL과 동등한 ı것은 R(범위)입니다. 젤리 ıȷ는 전혀 무관 한 일을합니다 몇 분 안에 설명을 추가하겠습니다.
Dennis

젤리에서의 나의 첫 번째 시도 : 얼마나 많은 결과가 ȷRR발생합니까?
Adám

@NBZ 대략 2.4MB.
Dennis

나는 ȷRR입니다 ⍳¨⍳1000. 나는 원했다 ⍳⍳1000. Dyalog에서 ⍳⍳7점수 91244, ⍳⍳8점수 803487, ⍳⍳9점수 7904816은 1x2x3x4x ... 배열의 모든 인덱스를 나열하기 때문입니다. 따라서 ⍳⍳1000이론적 (WS FULL!)의 어레이를 생성 할 것이다! 1,000 요소 각각 1000 개리스트!
Adám

4

Hexagony , 1 + 3 + 6 = 10 바이트 출력

글쎄 ... 매우 인상적인 점수는 아니지만 적어도 나는 그것이 최적이라고 주장 할 수 있습니다. 단일 바이트로는 무언가를 인쇄 하고 종료 할 수 없으므로 2 바이트로 시작합니다.

!@

펼쳐진 코드는

 ! @
. . .
 . .

바이트를 인쇄하고 종료합니다.

3 바이트 코드의 경우 3 바이트 출력을 인쇄 할 수 있습니다. 예를 들어 :

o!@

또는 펼쳐진 :

 o !
@ . .
 . .

인쇄합니다 111. 에서 소문자 dz작동하고 문자 코드를 인쇄합니다. 이것들은 3 바이트의 코드로 3 바이트를 인쇄하는 유일한 23 가지 방법입니다.

마지막으로 4 바이트의 경우 6 바이트를 인쇄하는 169 가지 방법이 있습니다. 그들 중 누구도 간단한 솔루션보다 더 흥미로운 것을 수행하지 않기 때문에 (홀수 제어 흐름 제외) 다음과 같이 제시합니다.

o!!@

펼쳐진 :

 o !
! @ .
 . .

당신은 그것을 추측했다. 인쇄합니다 111111.

이것이 최적인지 어떻게 알 수 있습니까? 나는 7000주기에서 최대 유한 출력을 찾기 위해 진리 머신 카탈로그대해 쓴 무차별 대변자를 조정했습니다 (4 바이트로 바쁜 비버를 작성할 수는 없다고 생각합니다.


그래서 ... 무차별 대변인이 공개적으로 이용 가능한가요? 나는 출력 12345하고 멈추는 무차별 강제 프로그램에 관심이있다 . . 당신이 이해하는 호기심을 위해서.
quintopia

@quintopia 그것은 GitHub 저장소에 있지만 8 바이트 프로그램을 찾는 행운을 빕니다. ;)
Martin Ender

글쎄, 그 중 7 개만 알 수 없으며 이미 진실-기계 구현을 찾는 데 7 바이트 솔루션을 검색하는 능력을 보여주었습니다 ...
quintopia

4

정말 2025409 바이트

1 바이트 :

N

(11,756 바이트의 출력 생성)

2 바이트 :

153,717 바이트의 출력을 생성합니다

3 바이트 :

9!!

1,859,936 바이트의 출력 생성

아직 "모든 부분 집합"또는 "모든 조합"과 같은 기능은 아직 심각하지 않으므로 상대적으로 낮은 점수입니다.


1
N그렇게 많은 출력을 만들어내는 것은 무엇입니까 ?
geokavel

3
가사 의미 : 99 맥주 병
퀸 토피아

3

파이썬 3, 1 + 22 + 23 = 56

9
id
abs

산출

9
<built-in function id>
<built-in function abs>

인쇄 9에 대한 다음의 정의 idabs.


3

미로 , 1 + 2 + 4 = 7 바이트

언어에 가장 적합한 것으로 입증 되었기 때문에 주로 게시하는 또 다른 낮은 점수입니다.

Hexagony와 마찬가지로 Labyrinth는 단일 바이트로 인쇄 및 종료 할 수 없으므로 2 바이트로 시작합니다.

!@

0을 인쇄하고 종료합니다.

3 바이트의 경우 순진한 솔루션을 이길 수 없습니다.

!!@

종료하기 전에 2 바이트를 인쇄합니다. 인쇄와 같은 몇 가지 다른 옵션이 있습니다 -1(!@~!@또는 ,!@. 소스 코드 회전을 사용하는 멋진 솔루션이 하나 있습니다.

!>@

이렇게하면 0이 인쇄되고 소스가로 바뀝니다 @!>. 그 시점에서 그것은 막 다른 골목에 부딪 치고 돌아 서서 !다시 돌아 가기 전에 다시 실행합니다 .

4 바이트의 경우 4 문자를 인쇄 하는 유일한 방법은 위의 트릭을 사용하는 것이므로 약간 더 재미 있습니다.

!!>@

두 개의 0을 인쇄하고로 이동하여 @!!>다른 두 개의 0을 인쇄하십시오.

이 모든 경우에 나는 당신이 또한으로 바이트를 인쇄 할 수 무시하고있어 \또는 .사람들은 항상 정확히 하나의 바이트를 인쇄 할 수 있기 때문에 반면에, !적어도 하나의 잠재적 몇 가지를 인쇄합니다.


3

배쉬, 1726 바이트

(지금 고쳤습니다. 투표를 고려하십시오.)

1 바이트 :"

출력 :

>

307 바이트 : id

출력 :

uid=501(geokavel) gid=20(staff) groups=20(staff),701(com.apple.sharepoint.group.1),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)

1418 바이트 : zip (STDOUT으로 인쇄)

저작권 (c) 1990-2008 Info-ZIP-소프트웨어 라이센스의 경우 'zip "-L"을 입력하십시오.
Zip 3.0 (2008 년 7 월 5 일). 용법:
zip [-옵션] [-b 경로] [-t mmddyyyy] [-n 접미사] [zip 파일 목록] [-xi 목록]
  기본 조치는 목록에서 zip 파일 항목을 추가하거나 바꾸는 것입니다.
  표준 입력을 압축하기 위해 특수 이름을 포함 할 수 있습니다.
  zip 파일과 목록이 생략되면 zip은 stdin을 stdout으로 압축합니다.
  -f 새로 고침 : 변경된 파일 만 -u 업데이트 : 변경된 파일 또는 새 파일 만
  -d zipfile에서 항목 삭제 -m zip 파일로 이동 (OS 파일 삭제)
  -r 디렉토리로 재귀 -j 정크 (기록하지 않음) 디렉토리 이름
  -0 저장 전용 -l LF를 CR LF로 변환 (-ll CR LF를 LF로)
  -1 압축 빠름 -9 압축 빠름
  -q 조용한 작동 -v 상세 작동 / 인쇄 버전 정보
  -c 한줄 주석 추가 -z zip 파일 주석 추가
  -@ stdin에서 이름 읽기 -o zipfile을 최신 항목만큼 오래 만듭니다.
  -x 다음 이름을 제외합니다. -i 다음 이름 만 포함합니다.
  -F zip 파일 수정 (-FF 더 열심히 시도) -D 디렉토리 항목을 추가하지 않습니다
  -A 자동 압축 풀림 EXE 조정 -J 정크 zipfile 접두사 (unzipsfx)
  -T zip 파일 무결성 테스트 -X eXclude eXtra 파일 속성
  -y 심볼릭 링크를 참조 된 파일 대신 링크로 저장합니다.
  -e 암호화 -n이 접미사를 압축하지 않습니다
  -h2 더 많은 도움말 표시

당신이 잘못 생각하는 것을 알려주세요. 너무 오래 기다리지 않는 한 실제로는 항상 같은 것을 인쇄합니다. 마지막에 킬로바이트 수가이를 증명합니다.
geokavel

이에 대한 두 가지 문제점이 있습니다. 1. STDERR이 허용되는 출력 방법이 아니므로 첫 번째 명령은 전혀 출력을 생성하지 않습니다. du의 출력은 현재 폴더에있는 파일 / 디렉토리에 따라 달라 지므로 자체 포함되거나 재생 가능한 것은 아닙니다.
Dennis

@Dennis 사용법을 인쇄하는 경우 첫 번째가 STDERR인지 어떻게 알 수 있습니까? 자, 이제 두 번째 규칙이 규칙을 어기는 방법을 봅니다
geokavel

2
우편 번호가 필요합니다. bash에는 Zip이 포함되어 있지 않습니다.
noɥʇʎԀʎzɐɹƆ

1
@CrazyPython 필요한 경우 제목을 변경하여 Mac OS X에서 일반 유틸리티 또는 기본 bash로 bash를 만들 수 있습니다.
geokavel

2

MATL , 313

이 문제보다 빠른 언어의 현재 버전 ( 3.1.0 )이 사용됩니다.

  1. 코드 (사전 정의 된 리터럴 : 숫자 2를 생성하며 암시 적으로 인쇄 됨) :

    H
    

    출력 (1 바이트) :

    2
    
  2. 코드 (숫자 pi는 15 자리로 암시 적으로 인쇄 됨)를 생성합니다.

    YP
    

    출력 (17 바이트) :

    3.141592653589793
    
  3. 코드 (숫자 1 ~ 99, 공백은 기본적으로 인쇄 됨) :

     99:
    

    출력 (295 바이트) :

    1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
    

2

처리 중, 39 바이트

결정론

1 바이트 :

print(X);

출력 0.

9 바이트 :

print(PI);

출력 3.1415927

29 바이트 :

print(P3D);

출력 processing.opengl.PGraphics3D

비 결정적,> = 129 바이트

> = 32 바이트 :

print(g);

출력 processing.awt.PGraphicsJava2D@ + [mem-address]

> = 32 바이트 :

print( g);

출력 processing.awt.PGraphicsJava2D@ + [mem-address]

> = 65 바이트 : (이 제안에 대해 @anOKsquirrel에 감사합니다.)

print(g,g);

출력

processing.awt.PGraphicsJava2D@ + [mem-address]
processing.awt.PGraphicsJava2D@ + [mem-address]

두 번째 섹션에서 1, g 또는 g, g와 같은 것을 사용할 수 있습니까? 또는 심지어 g + g?
anOKsquirrel

2

자바 스크립트, 1 + 3 + 18 = 18 22

매우 흥미로운 답변은 아니지만 아마도 최고의 JavaScript가 가능할 것입니다.

alert(1)
alert(.1)
alert(1/9)

@UndefinedFunction 덕분에 4 점을 추가 했습니다 !

텍스트로 출력 :

1
0.1
0.1111111111111111

alert()을 쓰면 undefined(적어도 Safari에서) 출력 됩니다.
geokavel

@geokavel 아 진짜? Chrome에서는 빈 알림 만 표시합니다. Firefox를 확인하지 않았습니다. Safari에서는 점수가 훨씬 낮습니다. : s
user81655

alert(.1)제공 하 0.1alert(1/9)제공0.1111111111111111
jrich

@UndefinedFunction 멋진 팁, 감사합니다!
user81655

글쓰기alertfunction alert() { [native code] }
ev3commander

2

사랑, 2 + 4 + 6 = 12

.@
..@
...@

길이 2보다 짧은 스 니펫은 출력 할 수 없거나 출력을 종료 할 수 없습니다.

Befunge .에서 스택의 최상위 값을 정수로 출력 한 다음 공백을 출력합니다. 공백은 개행 문자가 아니므로 카운트에 포함됩니다. 또한 스택은 "무한대로"0으로 채워 지므로 프로그램은 (각각) 출력됩니다.

0 
0 0 
0 0 0 

1
..<@8 바이트를 인쇄합니다.
jimmy23013 2016 년

2

SmileBASIC, 1 + 4 + 10 = 15 바이트

프로그램 1 :

무언가를 인쇄하는 가장 짧은 방법은? (인쇄) 및 단일 문자. 이것은 숫자 또는 변수 이름 일 수 있으며 모두 길이가 같기 때문에 중요하지 않습니다.

?1
1

프로그램 2 :

이제 몇 가지 더 접근 할 수 있습니다. 만들어 질 수있는 가장 긴 표현은 각각 상수 128, 256 및 512를 갖는 상수 #Y, #L 또는 #R 중 하나입니다. 그러나 그 대신 쉼표를 사용하여 (이 경우) 3 개의 추가 공백이 인쇄됩니다.

?1,
1   

프로그램 3 :

3 자리 문자를 사용하면 E- 표기 번호를 쓸 수 있습니다.

?1E9
1000000000

2

HQ9 +, 71304

9

"99 병의 맥주"11,884 자 가사 인쇄

99

"맥주 99 병"을 두 번 인쇄

999

"맥주 99 병"을 3 번 인쇄합니다


2

Japt -Q출력 1.0123378918474279e+150바이트

전체 번호는

1,012,337,891,847,427,807,734,770,805,740,683,255,348,979,141,331,502,541,182,800,555,980,960,810,784,280,906,237,433,006,787,771,597,919,201,659,212,694,207,520,340,705,280,000,000,000,000,000,000,568

바이트.

# 1

M

출력

{"P":3.141592653589793,"Q":1.618033988749895,"T":6.283185307179586}

67 바이트 (Shaggy의 크레딧)

# 2

출력

[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]

501 바이트입니다.

(@Shaggy의 크레딧)

# 삼

;Eá

형식으로 95 개 인쇄 가능한 ASCII 문자의 모든 순열 출력 ["...","...","..."...]하고,

1,012,337,891,847,427,807,734,770,805,740,683,255,348,979,141,331,502,541,182,800,555,980,960,810,784,280,906,237,433,006,787,771,597,919,201,659,212,694,207,520,340,705,280,000,000,000,000,000,000,001


-FJapt 에서 플래그 를 사용하면 무한한 양의 출력 바이트를 얻을 수 있습니다 . 프로그램의 마지막 표현식이 false로 평가되면 대신 플래그에 지정된 값이 출력됩니다. Japt의 점수 -F"Insert Super Long String Here"는 무한대 라고 생각합니다 .


두 번째 바이트 에서 501 바이트 를 얻을 수 있습니다 .
얽히고 설킨 Shaggy

그리고 첫 바이트 중 4 바이트 또는 위험한 8 입니다.
Shaggy

아하! 내가 알고 얻을 수있는 방법이 있었다 undefined1 바이트가 : $.
얽히고 설킨 Shaggy

@Shaggy 아니면 K26 바이트의 출력을 사용 하고 얻을 수 있지만 501 바이트는 천재입니다.
무지의 구현

출력이 결정론적일 필요는 없습니까?
얽히고 설킨 Shaggy

2

Malbolge , 1 + 2 + 3 = 6 바이트

(=aN
(&a`M
(=a`_L

온라인으로 시도하십시오 : 첫째 , 둘째 , 셋째

출력 :

r
ll
xxx

무차별 강요. \0유효한 출력 문자가 아니라고 가정

\0:

cP
cbO
cbaN

출력 :

\0
\0\0
\0\0\0

1

scg , 1 + 27 + 188 = 216

첫 번째:

1

프로그램 끝에서 스택이 출력되므로 1 만 인쇄합니다.

둘째:

.d

다음과 같이 디버그 정보를 인쇄합니다.

Stack: []
Array Markers: []

제삼:

99r

스택에 99를 더한 다음 range 함수를 사용합니다. 출력 01234567891011 .... (이것은 내가 계승 함수를 구현하기를 원하는 시간 중 하나입니다.


1

놀라운 1 + 1 + 2 = 4 바이트 출력

Marbelous는 2 바이트 명령을 통해 여기에 갇혀 있습니다. 홀수 바이트 수를 얻는 유일한 방법은 무의미한 설명이나 불필요한 공백입니다.

"A"를 인쇄하고 종료하십시오.

`A

빈 EOL 주석으로 "B"를 인쇄하고 종료

`B#

"CD"를 인쇄하고 종료하십시오.

`C`D

1

Mathematica, 6 + 461 + 763 = 1230 1225 618 163 바이트 출력

%  (* -> Out[0] *)

?D  (* ->

D[f, x] gives the partial derivative ∂ f/∂ x. 
                                              n        n
D[f, {x, n}] gives the multiple derivative ∂  f/∂ x . 
D[f, x, y, …] differentiates f successively with respect to x, y, ….
D[f, {{x , x , …}}] for a scalar f
        1   2
     gives the vector derivative (∂ f/∂ x , ∂ f/∂ x , …). 
                                             1             2
D[f, {array}] gives a tensor derivative.

*)

?Do (* ->

Do[expr, {i   }] evaluates expr i    times. 
           max                   max
Do[expr, {i, i   }] evaluates expr with the variable i successively taking on the values 1 through i    (in steps of 1). 
              max                                                                                   max
Do[expr, {i, i   , i   }] starts with i = i   . 
              min   max                    min
Do[expr, {i, i   , i   , di}] uses steps di. 
              min   max
Do[expr, {i, {i , i , …}}] uses the successive values i , i , ….
               1   2                                     1   2
Do[expr, {i, i   , i   }, {j, j   , j   }, …] evaluates expr looping over different values of j, etc. for each i. 
              min   max        min   max

*)

현재 마지막 두 개는 Information많은 바이트를 출력 할 수있는 기호에 대한 문서를 얻는 데 사용 됩니다. 이것은 10.1 명령 줄에서 실행되었습니다 MathKernel.


1

자바 스크립트, 72 바이트

이것은 Mozilla JSShell Javascript 명령 행 인터프리터 에서 작동합니다 .

1 바이트 : 1

출력 1

35 바이트 : gc

출력

function gc() {
    [native code]
}

36 바이트 : run

출력

function run() {
    [native code]
}

So.Node.js? ..
CalculatorFeline

@CalculatorFeline Node.js에 익숙하지 않지만 js명령 줄에 입력하면 Mac 에서 JavaScript 셸을 얻습니다.
geokavel

-bash: js: command not found더 지정하십시오.
CalculatorFeline

@CalculatorFeline 같은 메시지가 나타납니다. 아마도 js최신 버전의 Bash에서 나왔을 것 입니다.
geokavel

gcTIO 노드에 존재하지 않는 것 같습니다. 구현을 찾거나이 답변을 삭제하십시오.
CalculatorFeline

1

옥타브, 2818417 바이트

e

14 바이트 ans = 2.7183\n

pi

14 바이트 ans = 3.1416\n

doc

전체 문서를 표시하십시오. dd 온라인 으로 사용해보십시오! evalc작동하지 않았기 때문 입니다.


1

SmileBASIC 4, 1 + 13 + 15 = 29 바이트

이것은 몇 가지 조정을 통해 12Me21의 SmileBASIC 3 답변과 유사합니다.

1

이전과 같이 일부 출력을 생성하는 가장 짧은 코드 양은 2 바이트 : ?( PRINT) 및 단일 바이트 표현식입니다. 합의는 텍스트 화면이 작동하는 방식으로 인해 다음 줄로 넘어갈 때 줄 바꿈을 생성 PRINT하지 않는다는 것입니다. 따라서 1 바이트의 출력이 발생합니다.

?1
1

2

3 바이트를 사용하면 다른 작업을 수행 할 수 있습니다. SB4는 INSPECT로 별명을 지정 ??하여 단일 값에 대한 정보를 인쇄합니다. 예를 들어 빈 문자열을 주면 SB3보다 훨씬 많은 출력을 생성 할 수 있습니다. 이것은 우리에게 13 바이트를 얻는다.

??"
STRING: (0)""

작업 할 4 바이트가 있으므로 출력을 최대화하기 위해해야 ​​할 일을 결정해야합니다. 가는 것은 ??안전한 내기입니다. 표현식에 2 바이트 만 사용할 수 있지만 추가 출력 INSPECT은 기본적으로 무료입니다. 레이블 문자열을 인쇄하는 데 사용합니다. 이것은 15 바이트입니다.

??@A
STRING: (2)"@A"

총계는 29 바이트입니다.


0

마이크로 스크립트 II, 23 + 47 + 71 = 141 바이트

1: C

연속의 문자열 화는 스펙에 의해 엄격하게 정의되지 않지만 참조 구현에서 자체적으로 실행되어 23 바이트 문자열을 생성합니다.

<Continuation @t=\d\d\dus>( \d자릿수를 나타내는 숫자를 나타냅니다).

내 컴퓨터에서는 적어도 실제로는 실행하는 데 항상 약 180 ~ 400 마이크로 초가 걸립니다.

내가 실제로이 지시에 사용했던 첫 번째 사용.

2 : CP

47 바이트의 출력-첫 줄에서 두 번 줄 바꿈하여 출력.

삼: CPP

매우 간단합니다. 71 바이트의 출력-첫 줄에서 3 번 출력되며 그 사이에 줄 바꿈이 있습니다.


이것이 결정 론적입니까? 내가 당신을 올바르게 이해한다면, 그것은 다양한 숫자를 포함합니다 ...
Adám

@NBZ 매번 정확히 동일한 문자열을 생성하지는 않지만 지금까지 테스트 할 때마다 동일한 길이의 문자열을 생성했습니다.
SuperJedi224

어쩌면 그대로 두는 것이지만 실제로 결정적인 대체 답변을 제공 할 수 있습니까?
Adám

0

PowerShell, ~ 4300 바이트

시스템이 실행되는 경우 대략적인 출력 길이입니다. 아래의 모든 스 니펫은 결정적입니다. 컴퓨터의 동일한 초기 상태가 주어지면 동일한 텍스트가 출력되고 실제로 출력이 실행에서 실행으로 변경 될 수 있다는 것입니다.

길이 1, 107 바이트

?

의 별칭입니다 Where-Object. 추가 정보를 요청하는 사용자 프롬프트가 출력됩니다.

cmdlet Where-Object at command pipeline position 1
Supply values for the following parameters:
Property: 

길이 2, 113 바이트

rp

의 별칭입니다 Remove-ItemProperty. 추가 정보를 요청하는 사용자 프롬프트가 출력됩니다.

cmdlet Remove-ItemProperty at command pipeline position 1
Supply values for the following parameters:
Path[0]: 

길이 1 스 니펫보다 약간 길다.

길이 3, ~ 4100 바이트

gps

이것은 Get-Process시스템에서 실행중인 모든 프로세스의 형식화 된 테이블을 출력 하는 별명입니다 .

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName                                                                                          
-------  ------    -----      ----- -----   ------     -- -----------                                                                                
     85       8     1232       4452    46     0.14    544 armsvc                                                                                               
    151      10     6800       9888    39     0.58   5116 audiodg                                                                                              
    480      25     6060      17200   124     0.84   4536 AuthManSvr            
...

"출력이 바뀔 수있다"-그것은 과소 평가이다. 실제로는 기계를 동일한 상태로 재설정 할 수 없습니다. 아마도 세 번째보다 더 결정적인 대안일까요?
Adám

1
실용성이 결정론을 배제하지는 않습니다 ... 당신이 "결정 론적"이라는 다른 정의를 의미하지 않는 한, 도전에서 명시 적으로 언급해야합니다.
AdmBorkBork

당신에 따르면, 거의 동일한 프로그램 상태를 고려할 때 거의 모든 프로그램이 결정적입니다. 마이크 노이즈 나 카메라 입력 등을 기반으로 실제 RNG가있는 장비는 예외입니다.
Adám

1
@NBZ True. 나는 거의 모든 프로그램이 결정 론적이라고 희망한다. 아마도 "불변"을 의도하고 있습니까?
AdmBorkBork

0

자바 스크립트, 312 + 318 + 624 = 1254 바이트의 출력

$
$$
$+$

두 기능 $$$단축키로, 모든 주요 브라우저의 콘솔에서 사용할 수 있습니다 document.querySelectordocument.querySelectorAll각각. 다른 브라우저는 네이티브 코드가 문자열과 약간 다르게 강제되어 있으며 IE는 각 함수에서 일반 JS를 사용하여 훨씬 더 긴 표현을합니다.

바이트 수의 경우 때때로 수정되는 콘솔 디스플레이가 아닌 각각의 문자열 표현 길이를 취하므로 총 바이트 수는 다음 브라우저 각각에 해당합니다.

  • 크롬 : 56 + 57 + 112 = 225 바이트
  • IE : 312 + 318 + 624 = 1254
  • Firefox : 33 + 33 + 66 = 132

(IE 결과가 가장 길기 때문에 "공식적인"카운트라고 생각합니다.)

콘솔 이외의 브라우저 환경의 경우 최대 출력은 다음과 같습니다.

1
!1 // Or '{}' if being fed to a function instead of beginning a statement
Map

브라우저 별 결과 길이 :

  • 크롬 : 1 + 5 (또는 {}사용 가능한 경우 15 ) + 32 = 38 (또는 48) 바이트
  • IE : 1 + 5 (또는 {}사용 가능한 경우 15 ) + 38 = 44 (또는 54)
  • Firefox : 1 + 5 (또는 {}사용 가능한 경우 15 ) + 36 = 42 (또는 52)

이 두 세트의 입력은 이러한 모든 브라우저와 콘솔에서 가능한 최대 출력을 생성합니다. 이를 증명하기 위해 모든 대안을 확인하십시오.

  • 기존 변수 :을 사용하여 최대 3 자의 사용 가능한 모든 기본 변수를 Object.getOwnPropertyNames(window).filter(x=>x.length<=3)찾은 다음 map문자열 출력에서 ​​더 큰 변수 를 확인할 수 있습니다. Firefox와 같은 일부 브라우저에서는 특정 특수 콘솔 변수가 창의 속성이 아니므로 이런 방식으로 액세스 할 수 없습니다.
  • JS에는 문자 수가 적어 생성 할 수있는 리터럴 유형이 제한되어 있습니다.
    • 사양에 따라 10 진수는 1234567890선택적 으로 10 진수 ( ) .와 그 이상의 10 진수 및 / 또는 지수 부분이어야하며, .1 개 이상의 10 진수 및 선택적으로 지수 부분 이어야합니다 . 숫자의 다른 종류이어야합니다 0o, 0x또는 0b(또는 양식 대문자), 하나 개 이상의 숫자 하였다. 우리의 목적을 위해 다음을 추론 할 수 있습니다.
      • 10 자리의 단일 문자 숫자는 0에서 9까지의 정수입니다. 두 개의 문자 숫자는 정수 0-99 (10 진수를 추가하여 0-9)이고 초기 0을 생략하여 숫자 0.1에서 0.9입니다. . 0x0-0xf, 0o0-0o7, ​​0b0 및 0b1, 지수 1e1-9e9 (10 자) 및 숫자 0.1-9.9 및 .01-.99를 포함하여 유일한 3 자 숫자는 0-999입니다. 기술적으로 숫자 리터럴은 아니지만 NaN은 세 문자로도 참조 할 수 있습니다.
    • 문자열, 배열 및 정규 표현식 (각각 최대 한 문자 만 사용할 수 있음) 배열은 $, 쉼표 또는 한 자리 숫자로 채워질 수 있습니다 . 하나의 요소 만있는 배열은 요소 자체로서 문자열로 강제 변환됩니다. 빈 배열은 빈 문자열이됩니다.
    • 환경에 따라 세 개의 문자로 간단한 객체를 만들 수도 있고 그렇지 않을 수도 있습니다. 일반적으로 {}스크립트 시작 부분만으로 개체를 생성하지 않고 인클로저로 취급합니다. eval({})undefined를 eval({$})반환하고 $함수를 반환합니다 . 서라운드 부족 문자가 있습니다 {}에서가 ().
  • 사용하기에 충분히 짧은 키워드가 없습니다. 키워드는 if, in, do, new, for, try, var, 및 let모든 제한을 초과 사용하는 두 개의 다른 문자의 최소 필요합니다.
  • 사용 가능한 단항 연산자로는 ~, +, -, !, ++,와 --. 두 문자 연산자는 하나의 문자 변수에만 사용할 수 있으며 그 중 하나만 ( $) 만 NaN있습니다. 다른 네 개의 연산자는 하나 또는 두 개의 문자 값과 함께 사용할 수 있습니다.
    • 여러 변수. (일부 콘솔에서 $, $_, $0, $1, $2, $3, $4, $, $$, $x). 이러한 연산자와 함께 사용하면, 결과가 제한됩니다 -1, true, false,와 NaN.
    • 109 개 결과 : 정수 -100 ~ 99, -0.9 ~ -0.1 true,, false.
    • 빈 문자열. 결과 : -1, 0( -0하게 0toString에) true.
    • 1 문자 단항 연산자와 연관된 위의 1 문자 값 중 하나의 결과. 새로운 결과 : 없음.
  • 있습니다 (두 피연산자로 떠났다 공간이 할 수있는 단일 문자 여야합니다) 사용 가능 이항 연산자 +, -, *, /, %, <, >, &, |, ^. 각면에 단일 문자 값만 사용할 수 있습니다. 값에 대한 옵션은 $정수 0-9를 포함합니다. 이들의 모든 조합의 결과에는 Infinity위에서 언급 한, 일부 숫자 및 이진 값 및 19 자 이하의 문자열로 강제 변환되는 수많은 분수 ( 위에서 제안한 1/7것과는 달리 19 1/9자임)와 $앞에 또는 한자리 정수 또는 그 자체가 뒤 따릅니다.
  • 마지막으로 나머지 모든 연산자와 표현식 : 멤버 연산자 .에는 기존 변수와 속성을 나타내는 식별자가 필요합니다. 여기에서 이것을 모두 사용하면 결과는 다음과 같습니다 undefined. 에 값을 ( )묶으면 값을 지정하는 것처럼 값을 반환합니다 =. ()또는``를 사용 하여 값을 함수로 호출하면 사용 가능한 모든 값에 정의되지 않았거나 오류가 발생합니다.

이 모든 것을 추가하면 Chrome 콘솔을 사용할 때 총 1651 개의 가능한 출력이 있습니다. 하나, 둘, 3 문자 최장 출력 출신 $, $$$+$각각.


0

dc , 2 + 5 + 18 = 25 바이트

1 : Ff수확량 ( 온라인으로 사용해보십시오! ) :

15

2 : Fdf수확량 ( 온라인으로 사용해보십시오! ) :

15
15

3 : Fd^f수확량 ( 온라인 시도! )

437893890380859375

그중 어느 것도 특히 흥미롭지 dc는 않지만 실제로 많은 양의 출력물을 뱉어내는 데는 좋지 않습니다. 나는 각각의 대답이 이전에 빌드되는 것을 좋아합니다. 어쨌든, F단지 숫자 15입니다; f전체 스택을 인쇄합니다. d스택 상단을 복제합니다. ^스택의 다음 스택을 스택의 위력으로 올립니다 (이 경우 15 ^ 15). 나는 이것이 꼭대기에 올 수 있다고 생각하지 않는다 dc.


0

루비, 3 + 14 + 28 = 45 바이트

내가 왜 그랬어?

p

인쇄 nil합니다.

$>

인쇄 #<IO:<STDOUT>>합니다.

dup

의 라인을 따라 무언가를 인쇄합니다 #<Object:0x0000000003610988>.

irb

대화 형 Ruby 인스턴스를 시작합니다. 종료시 반환 된 객체는 #<IRB::Irb: @context=#<IRB::Context:0x0000000003643040>, @signal_status=:IN_EVAL, @scanner=#<RubyLex:0x00000000038900a0>>121이지만, ^D실제로 irb 인스턴스를 종료하기 위해 또는 무언가 를 눌러야 하므로 실제로 "3 바이트"의 솔루션으로 계산되는지 확실하지 않으므로 실제로 점수를 얻지 않는 한 점수에 포함시키는 것입니다.


0

Perl 6, 53 (17 + 18 + 18) 바이트

e
-e
e*e
  1. ee소수점 이하 15 자리까지 를 합니다.
  2. -ee
  3. e*ee2

0

룬 마법, 4,000,000 바이트의 출력

첫 번째 프로그램은 다음과 같습니다

a@

2 바이트를 가져옵니다. 값을 스택으로 푸시하고 스택에서 값을 인쇄 한 후 종료합니다. 이 경우 인쇄합니다 10(0에서 16까지의 정수 값도 유효합니다)

3 바이트의 경우 :

aY@

10000다시 한번 Prints 는 a1에서 16까지 포함 할 수 있습니다 (원래 프로그램보다 더 많은 출력을 생성하기 위해 0은 다른 연산자에서 유효 할 수 있음). 단일 입력을 가져 와서 출력을 생성하는 연산자는 많지 않습니다. 훨씬 더 출력. XCYZ:E유일한 옵션입니다. 가장 많은aY@ 결과를 얻는 것입니다 .

P$!;

언어 사양에 따르면 이것은 무한정 실행됩니다. 인터프리터가 내장되어 그러나로 "좋아, 충분이"최대 실행 제한,이 같은 (128kib를 초과위한 ~ 130,000 바이트 후 실행 오프와 TIO 인하) 4 자에서 가장 출력 달성이며 인터프리터 언어를 정의하는 이, 공장. 그리고 한 번 (10k 단계에서 1 백만으로) 한도를 올렸지 만 조만간 엉망으로 만들 계획은 없습니다.

더 큰가?

내가 여기서 세 가지 가정을 한다면 확실하다.

`AA@

어떤에게 작동 Ack(65,Ack(65,64))정말 처음 에커 함수로 밀어가는 큰 값되지 않는, - 이전 포스트에서 255보다 확실히 작은 -하지만 확인, 우리는 4 개 지시에 두 번 된 승인을 호출 할 수 있습니다.

그리고 신만이 인쇄 할 내용을 알고 있습니다.

참고 : 그 A이후에 명령은 Math메타 명령 으로 만들어졌으며 스택에서 3 개의 객체를 사용합니다. 수행 할 명령에 대한 문자와 x 및 y의 두 입력. 따라서이 프로그램은 수학 함수에 매핑 A되거나 @매핑 되지 않으며 두 번의 호출로 인해 스택 언더 플로가 발생 하기 때문에 실제로 아무것도하지 않습니다 .

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