당신의 점수를 출력!


54

도전:

개념은 충분히 간단합니다. 자체 코드 골프 점수를 출력하는 전체 프로그램을 작성하십시오!

출력은 프로그램의 바이트 수와 후행이어야합니다 bytes.

그러나 WAIT ..... 한 가지 제한이 있습니다.

  • 소스 코드는 바이트 수의 숫자를 포함 할 수 없습니다
  • 점수 인 경우 그래서 186 bytes, 당신의 프로그램이 문자를 포함 할 수 없습니다 1, 6또는8

출력 예 :

315 bytes
27 Bytes
49 BYTES

추가 규칙 :

  • 불필요한 문자, 공백 및 개행은 소스 코드에서 금지되지만 후행 공백과 개행은 출력에서 ​​완벽하게 허용됩니다.
  • 숫자와 bytes출력 사이에 공백이 하나 있어야합니다
  • 문자는 대소 문자를 구분하지 않습니다
  • 자체 검사 또는 소스 코드를 읽을 필요 없음
  • 표준 허점 은 허용되지 않습니다

  • 이것은 이므로

바이트 단위의 최단 코드가 승리합니다!


6
이것은 quine 태그 가 필요합니까 , 아니면 코드 자체 검사가 가능합니까?
Adám

3
@Dat, 단어의 형식을 고려할 때 bytes텍스트를 인쇄하는 데 필요한 바이트 수에 카운트가 포함되어야합니다.bytes
Jeff Schaller

2
출력의 선행 공백이 허용됩니까?
rafa11111

3
내 코드는해야 I 출력, 1 바이트 긴 경우 1 bytes1 byte? (나는 영향을받지 않는다고 생각하지만 이미 41 개의 답변이 있음을 명심하십시오)
Erik the Outgolfer

1
@ JoKing 잘 나는 규칙에서 케이싱을 다루지 않았지만 어떻게 든 대문자를 사용하면 점수가 낮아지면 반드시 당신이 생각해 낸 것을보고 싶습니다. 가서 말해봐!
X1M4L

답변:


41

자바 스크립트, 19 바이트

Octal은 두 가지 목적을 위해 고안되었습니다.

  • Linux에서 파일 권한 설정
  • 이 도전에 응답

alert(023+' bytes')

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


이것이 전체 프로그램으로 간주됩니까?
ericw31415

1
@ ericw31415 이것은이다 브라우저 프로그램 , 이 메타 대답에 정의 된대로 .
Arnauld

5
+1이 왜 8 진법이 완전히 쓸모가 없는지 분명히 밝히기 때문입니다.
sergiol

34

펄 5 , 16 바이트

얻을 수있는 다른 많은 방법이 16있지만이 방법 은 내 방법입니다

say afpbytes^PPP

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


1
어떻게 작동합니까?
caird coinheringaahing

9
그들은 문자 그대로의 모양 및 키워드와 충돌하지 않는 경우이 문자열에 따옴표를 생략 할 수 있습니다 (매우 많이 사용되지 않습니다하지만 우리는 골프에 상관하지 않습니다) 펄에서 이진 연산자를 @cairdcoinheringaahing & | ^~도 적용 할 수 있습니다 ASCII 값 목록에서와 같이 문자열을 사용하여 작업하십시오 ( 양쪽이 모두 문자열 인 경우에만 ). for |^shorte 문자열이으로 확장 된 것처럼 작동합니다 \0. 그 후 원하는 출력으로 분류되는 문자 조합을 찾기위한 간단한 연습입니다.
Ton Hospel

25

7 , 23 자, 9 바이트

54340045141332401057403

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

이것은 완전히 숫자로 구성된 언어에서 상당히 어려운 문제이지만 관리했습니다.

이것은 7 인코딩에서 단지 9 바이트입니다. (엄밀하게 말하면, 마지막 2 개의 후행 1 비트를 생략 할 수 있기 때문에 8⅜ 바이트 (23 × ⅜ − ¼)이지만 처음으로 PPCG가 전체 바이트 수로 반올림해야한다는 것은 실제로 이점이됩니다. 여분의 후행 1 비트가 필요하므로 질문에 의해 금지되지 않습니다.) 가역적 16 진수 덤프 :

00000000: b1c0 2530 b6a0 22f8 1f                   ..%0.."..

7에서이 프로그램을 작성의 주요 과제는 (사용하지 않고 7을 쓰기로 (10)에 따라 바이트에 골프 된 0또는 1매우 어렵다.)이 "안녕하세요 세계"프로그램을 표준으로 동일한 구조를 사용합니다 :

5434004514133240105 7 403
5434004514133240105 명령 0-5는 데이터 공간에 리터럴을 추가합니다
                   7      데이터 공간의 새로운 섹션을 시작
                    403 데이터 공간에 추가 된 또 다른 리터럴
                         {암시 적 : 마지막 섹션을 명령으로 평가}
                    4 6     사이에 빈 섹션이있는 첫 번째와 두 번째 섹션을 바꾸면 첫
                         번째 섹션 3   출력을 생성하는 명령을 재구성합니다
                       (+ 우리가 신경 쓰지 않는 다른 효과)

다시 말해, 데이터 공간의 두 섹션을 만드는 것으로 시작합니다. 우리는 두 개의 리터럴을 가지고 있으며, 각각은 일련의 명령을 푸시합니다. 두 번째 섹션은 스택 스타일로 푸시되었으므로 첫 번째 푸시 = 마지막 팝은 상당히 임의의 명령 시퀀스이지만 명령 시퀀스를 사용하여 푸시됩니다 5434004514133240105(따라서 데이터 시퀀스 생성 5434664574733246765; 텍스트에서 7을 논의 할 때 일반적으로 일반 글꼴을 사용합니다) 리터럴을 푸시하고 해당 결과 리터럴에 굵게 표시하는 명령). 첫 번째 섹션은 명령 시퀀스를 사용하여 403생성되어 생성 463됩니다. 그런 다음 첫 번째 섹션이 프로그램에 다시 복사됩니다 (암시 적 동작 7).

463이제 (비 굵게) 단지 리터럴을 밀어 것을 명령하기보다는 즉시 뭔가를 (굵게) 명령으로 구성되어있다. 4"문자열 리터럴"을 첫 번째 섹션으로 가져 오도록 섹션을 재정렬합니다. 그런 다음 07이 가장 잘 알려진 작업을 수행합니다. 데이터 공간의 일부를 가져 와서이를 생성했을 가능성이 가장 높은 명령 시퀀스를 재구성합니다. 원래 명령 순서가 모두 0- 5였다면, 이것은 100 % 정확합니다 (의심 할 여지없이, 명령이 데이터를 순수하게 푸시하여 수행 한 작업에 대한 명백한 증거를 남기므로), 원래의 순서를 5434004514133240105다시 얻 습니다. 마지막으로 3인쇄합니다.

따라서 여기서 볼 나머지 것은 문자열의 인코딩입니다. 고유 한 도메인 별 언어가 있습니다.

5434004514133240105
5                    change encoding: 6 bits per character
 43                  select character set: digits and common symbols
   40                '9'
     04              space
       51            select character set: uppercase letters
         4133240105  'B' 'Y' 'T' 'E' 'S'

( "숫자 및 공통 기호"문자 세트에는 "문자 세트 선택 : 소문자"가 없습니다. 먼저 다른 문자 세트를 거쳐야합니다. 따라서 유효 문자 아래에 맞도록 충분히 짧게 골프를 칠 때는 대문자를 사용해야했습니다. 바이트 제한)






6

R , 16 바이트

cat(4*4,"bytes")

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


공간이 없어서 17 시가 아닙니까?
PmanAce

@PmanAce "출력은 프로그램의 바이트 수와 후행이어야합니다 bytes". 프로그램은 16 바이트입니다.
Giuseppe

cat기본적으로 입력 사이에 공백이 추가됩니다.
Giuseppe

object.size올바른 형식으로 출력합니다 ( bytes기본적 으로 포함). 짜증나게, 내가 찾을 수있는 가장 짧은 것은 17 : object.size(0)-39입니다. TIO
Robin Ryder

1
분명히 Hadley 버전에서 1- 길이 벡터의 길이는 48이므로이 16 바이트 코드가 작동하는 R 버전이 있어야합니다 object.size(0)/3.
로빈 라이더

5

Stax , 5 바이트

╗↑╞ô╝

실행 및 디버깅

포장을 풀면 다음과 같습니다. 묶음 소스 모드는 이런 종류의 사소하고 흥미롭지 않습니다.

5p     print 5 with no line break
`5l@   print the compressed string " bytes"

묶음 소스 모드를 사용하지 않으려면 6^p`5l@7 바이트 에서 작동합니다.


1
나는 바이트를 절약하는 영리한 방법 인 압축 모드를 사용하는 것이 최악의 경우 부정 행위처럼 느껴지고 창의적이지 않다고 생각하기 때문에이 대답을 하향 조정했습니다. 모든 Stax 제한 소스 답변 에 대한 하향 투표를하기보다는 이와 같은 모든 답변을 다루기 위해이 하향 투표를 남겨 두겠습니다.
caird coinheringaahing

1
나는 그것이 창조적이지 않다는 것에 동의한다. 그러나 나는 결점 restricted-source이 언어가 아니라 개념에 있다고 생각한다 . 이것은 실제로 "5 bytes"Stax를 사용하여 생산하는 가장 직접적인 방법입니다 .
재귀

나는 도전에 문제가 있다는 것에 동의하지만 (그래서 내가 그것을 하향 투표 한 이유는 있음 ) 여전히이 대답을 싫어합니다. 하지만 (단지 선제주의)을 삭제하지 마십시오, 거기에 아무것도 잘못 이와 함께.
caird coinheringaahing





5

PHP + HTML, 16 바이트

16 bytes

예, 이것은 허점 남용에 가까워지고 있지만 게시해야한다고 느꼈습니다. 그리고 PHP의 사용이 대답은 기술적으로한다는 것을 의미 한다 튜링 완전한 프로그래밍 언어로 작성. 물론 다른 유사한 HTML 템플릿 언어도 잘 작동합니다.

라이브 데모 (PHP 제외) :

16 bytes


날 이길! 그리고 ; 일반적으로 생략 할 수 있습니다!
wedstrom

아아 그러나 그것은 14/15 바이트 일 것이다
wedstrom




4

옥타브 , 23 바이트

printf('%i bytes',9+14)

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

이:

disp(['','67$f}xiw'-4])

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


첫 번째 대답은 괜찮아 보이지만 두 번째 대답은 어떻게 작동합니까? oO
rafa11111

2
@ rafa11111 4(ASCII 코드)에서 빼면 의 ASCII 코드가 '67$f}xiw'제공 '23 bytes'됩니다. 그런 다음 빈 문자열과 연결하면 '' ASCII 코드가 문자로 변환됩니다.
Luis Mendo

2
@Luis Mendo 매우 영리합니다! 설명해 주셔서 감사합니다!
rafa11111

4

쁘띠 컴퓨터 기본, 11 바이트

?9+2,"bytes

인쇄 문에 쉼표를 사용하면 커서를 현재 탭 크기의 다음 배수로 이동합니다. SmileBASIC에서는 기본적으로 4이므로 출력은 11 bytes2 칸이지만 PTC BASIC은 3을 대신 사용하므로 출력의 간격이 정확합니다.


4

APL (Dyalog Unicode) , 12 바이트

암시 적으로 STDOUT에 인쇄하는 전체 프로그램.

'bytes',⍨3×4

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

,⍨ 은 곱셈 결과에 문자열을 추가합니다. 혼합 유형 데이터의 APL의 기본 표시는 숫자와 후속 텍스트 사이에 공백을 둡니다.


내가 틀렸을 수도 있지만 바이트 수와 프로그램에 2가 없습니까? 그래도 3 * 4는 괜찮을 것입니다
fyrepenguin

@fyrepenguin Heh, 물론입니다. 어리석은 짓
Adám

4

브레인 플락 , 100 바이트

((((((<>))))))(((()[[]]((((()()((((([][]){}){}())[()]))[[][]])()){})()[][]))[()()[]])[]){({}<>)<>}<>

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

bytes모든 캡에 부품을 출력합니다 . Brain-Flak에 익숙한 사람 ((<>))은 처음에 모든 것과 혼동 될 수 있지만 안심하십시오. 스택 높이 nilad ( []) 를 남용 0할 수 있으며 생성 된 파일은 인쇄 되지 않습니다 .



4

공백 , 112 바이트

아직 아무도하지 않았기 때문에 :

   			    
	
 	   
   	 	  		
   	   	 	
   	 	 	  
   	 		  	
   	    	 
   	     

  
	
   
 
	  

 


   




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

대문자는 이진 ASCII 코드가 더 짧기 때문에 "BYTES"를 대문자로 인쇄합니다. 내가 만든 고유 한 표기법으로 프로그램의 명령은 다음과 같습니다.

Push 112
PrintNum
Push 0
Push 0x53
Push 0x45
Push 0x54
Push 0x59
Push 0x42
Push 0x20
Label _
PrintChr
Dup
JumpZ S
Jump _
Label S
End

아, 이미 공백 답변이 있음을 알지 못했습니다. 여기에 더 짧은 답변 이 있습니다 ( 104 바이트 ). . 광산을 다시 삭제합니다. 강조 표시 및 설명이 추가 된 것과 동일합니다.
Kevin Cruijssen

흠. 루프를 구현하면 실제로 PrintChar를 반복하는 것 이상으로 상처를 줄 정도로 텍스트가 짧습니다. (그리고 나는 항상 최종 NNN을 떨어 뜨릴 수 있지만, 실제로 오류가없는 것을 좋아합니다.)
aschepler

4

Java 5 또는 6, 44 바이트 (전체 프로그램)

enum A{A;{System.out.print(0x2C+" bytes");}}

Java 5/6이 오래 되었기 때문에 TIO 링크가 없습니다. Java 5/6에서는 필수 main-method 대신 코드가 포함 된 열거 형을 가질 수 있어 전체 프로그램 문제에 대해 더 짧아졌습니다.

또한 java.lang.NoSuchMethodError: main\nException in thread "main"STDOUT으로 인쇄 한 후 STDERR에서 오류가 발생 하면 메타에 따라 괜찮습니다 (하지만 도전이 STDERR에 대한 추가 오류를 허용하지 않은 System.exit(0);경우 오류를 방지하기 위해 8 진수를 업데이트해야 함).

@ OlivierGrégoire (및 관련 Java 팁 )가 제안합니다 .

Java 8 이상, 74 바이트 (전체 프로그램)

interface M{static void main(String[]a){System.out.print(0112+" bytes");}}

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

Java 8+, 16 15 바이트 (람다 함수)

v->0xF+" bytes"

@ OliverGégoire 덕분에 -1 바이트 .

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


2
기술적으로 전체 프로그램이 아닙니다 :)
OOBalance

@OOBalance 죄송합니다. 어쨌든 수정 해 주셔서 감사합니다. XD
Kevin Cruijssen

1
37*2가 포함되어 7있으므로 유효하지 않습니다. 당신의 대안 솔루션은 괜찮습니다.
OOBalance

1
v->0xE+"bytes"또는 v->0xF+" bytes". 테스트 할 수는 없지만 어쨌든 작동해야합니다. 아무것도 점수와 "바이트"를 분리해야한다고 말하지 않습니다.
Olivier Grégoire

1
@ OlivierGrégoire 알고 있습니다. ;) 내가 전체 프로그램을 게시했을 때 나는 당신의 팁-답변에 대한 열거 생각으로 그 프로그램에 대답하는 것을 의심하고있었습니다 . 여전히 지원하는 온라인 컴파일러를 알고 있습니까? 나는 대답을위한 테스트 코드와의 링크를 선호한다.
Kevin Cruijssen


4

Applescript, 15 바이트

네, 갈 게요

9+6&”bytes”

1
Your source code can not include any of the digits from your byte count
nicael

@nicael Dang, 그렇습니다. 1 초 후 ...
DonielF

내가 틀렸다면 수정하지만 멀티 바이트 문자 (정확하게 기억하면 유니 코드의 3 바이트)가 아니므로 11 바이트 이상입니까?
caird coinheringaahing

트윗 담아 가기 네 말이 맞아- "는 2 바이트이며 이것을 15로
올립니다

그래도 11이 인쇄되지 않습니까?
Destructible Lemon


3

배치, 32 바이트

@@echo %COMSPEC:~-10,-010% bytes

COMSPEC일반적으로 %WINDIR%\system32\cmd.exe끝에서 10 ~ 8 문자의 하위 문자열을 추출합니다. 이전 16 바이트 자체 참조 버전 :

@echo %~z0 bytes

다행히 바이트 수는 10의 배수가 아니 었습니다.


@manatwork 좋아, 나는 그것을 보지 못했다, 여기에 새로운 버전이있다.
Neil

3

자바 스크립트, 16 15 바이트

x=>0xf+' bytes'

_=>5*3+' bytes'
Neil

5
@Neil

@KevinCruijssen Bah, 나는 그것을 간과했다고 믿을 수 없다.
Neil

제출은 전체 프로그램이어야합니다 " 자체 코드 골프 점수를 출력하기 위해 전체 프로그램작성하십시오 !"
Kritixi Lithos

3

7 우편 -90 14 바이트

육각 덤프 :

00 75 0d 08 c0 00 0d 08 03 00 00 03 04 1d  

사용:

이름이 지정된 소스 파일에 저장하십시오.

명령 행에서 컴파일러를 실행하십시오. 7z e [source name]

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