태그 보관물: self-referential

self-referential

코드와 길이가 같은 출력 출력 할 수 있습니다. 코드는 quine이 아니어야하며 코드와

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

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

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

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

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

리더 보드

var QUESTION_ID=121056,OVERRIDE_USER=8478;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){var F=function(a){return a.lang.replace(/<\/?a.*?>/g,"").toLowerCase()},el=F(e),sl=F(s);return el>sl?1:el<sl?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>


답변

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

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

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

Segmentation fault

답변

엑셀, 11 바이트

노르웨이어 버전 :

=SMÅ(13^9)

영어 버전 (12 바이트) :

=LOWER(17^9)

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


답변

미로 , 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.

답변

배쉬 (내장 전용), 8 바이트

{e,,}cho

인쇄 cho cho및 개행.


답변

망막 , 2 바이트

no

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

인쇄 0및 줄 바꿈.

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

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


답변

수학, 2 바이트

4!

계승

24


답변

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 바이트의 정크를 출력 합니다.