var QUESTION_ID=54123;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function shouldHaveHeading(e){var a=!1,r=e.body_markdown.split("\n");try{a|=/^#/.test(e.body_markdown),a|=["-","="].indexOf(r[1][0])>-1,a&=LANGUAGE_REG.test(e.body_markdown)}catch(n){}return a}function shouldHaveScore(e){var a=!1;try{a|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(r){}return a}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.sort(function(e,a){var r=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0],n=+(a.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0];return r-n});var e={},a=1,r=null,n=1;answers.forEach(function(s){var t=s.body_markdown.split("\n")[0],o=jQuery("#answer-template").html(),l=(t.match(NUMBER_REG)[0],(t.match(SIZE_REG)||[0])[0]),c=t.match(LANGUAGE_REG)[1],i=getAuthorName(s);l!=r&&(n=a),r=l,++a,o=o.replace("{{PLACE}}",n+".").replace("{{NAME}}",i).replace("{{LANGUAGE}}",c).replace("{{SIZE}}",l).replace("{{LINK}}",s.share_link),o=jQuery(o),jQuery("#answers").append(o),e[c]=e[c]||{lang:c,user:i,size:l,link:s.share_link}});var s=[];for(var t in e)e.hasOwnProperty(t)&&s.push(e[t]);s.sort(function(e,a){return e.lang>a.lang?1:e.lang<a.lang?-1:0});for(var o=0;o<s.length;++o){var l=jQuery("#language-template").html(),t=s[o];l=l.replace("{{LANGUAGE}}",t.lang).replace("{{NAME}}",t.user).replace("{{SIZE}}",t.size).replace("{{LINK}}",t.link),l=jQuery(l),jQuery("#languages").append(l)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*\s*([^,]+)/;
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>
CJam,
3331 BytesTeste es hier.
Erläuterung
quelle
2^64-1
.Java,
110109107 BytesMein Code hat die Form einer anonymen Lambda-Funktion, die a annimmt
long
undint
dann a zurückgibtString
.Komplette prüfbare Klasse
quelle
(w,s)->
StattdessenString w(long w,int s)
ist es eine große Ersparnis auf Anhieb.Matlab,
8680 BytesVielen Dank an Hoki für seinen Vorschlag, der mich veranlasste, 6 Bytes zu sparen.
Beispiel:
quelle
de2bi
werden Sie ein paar weitere Zeichen speichern ;-)a='|-'
zua='-|'
. Und verwenden Siex=de2bi(typecast(W,'uint8'))+1;
de2bi
nur den9-
Begriff zu verschieben (für die Umkehrung verwendet). Danke noch einmal!Julia, 145 Bytes
Dadurch wird eine Funktion erstellt, die zwei Ganzzahlen akzeptiert und auf stdout druckt.
Ungolfed + Erklärung:
Das ist ziemlich lang und ich bin sicher, dass es viel kürzer gemacht werden kann. Daran zu arbeiten.
quelle
J, 28 Bytes
Verwendung:
Erklärung (von rechts nach links):
Probieren Sie es hier online aus.
quelle
CJam,
302827 BytesProbieren Sie es online im CJam-Interpreter aus .
quelle
Python, 77
Für jeden der
s*s
Werte vonn
:(i,j)=(n/s,n%s)
(i%8,j%8)
8*(i%8)+(j%8)
w
indem Siew
so viele Leerzeichen nach rechts verschieben, und nehmen Sie das letzte Bit mit&1
.n%s==0
Eigentlich bekommt alles, was endet, die Kacheln rückwärts, da es
w
vom Ende liest . Wir beheben dies, indem wir~n
anstelle von verwendenn
. Ich habe stattdessen einen rekursiven Ansatz gewählt, der sich jedoch etwas länger entwickelt hat.Der Ausdruck
w>>~n/s%8*8+~n%s%8&1
ist ein Wunder der Operatorpriorität.quelle
Python 2, 132 Bytes
Sicherlich nicht die eleganteste Lösung, und sie ist kaum kürzer als C, aber es ist ein Anfang. Die Eingabe erfolgt durch Kommas getrennt.
quelle
C,
160135 BytesHier kann man noch ein bisschen Golf spielen und braucht eine Erklärung, aber ich habe im Moment keine Zeit :)
Ungolfed:
quelle
stdlib.h
, als müssten einige Linux-Umgebungen explizit eingebunden werden. Ich war nicht gezwungen, es früher einzuschließen, als ich es auf CentOS getestet habe (ich glaube, das war es, was ich gemacht habe). Jetzt auf Ubuntu kann ich es nicht zum Laufen bringen, ohne wie folgt zu kompilieren:gcc -include stdlib.h w.c
Pyth,
3130 BytesDer Eingang sollte auf zwei Linien, W dann S .
Probieren Sie es hier aus
Erläuterung
quelle