var QUESTION_ID=85666,OVERRIDE_USER=4162;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){return e.lang>s.lang?1:e.lang<s.lang?-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;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>
Antworten:
Konvex, 9 Bytes
Neue Methode! Außerdem habe ich festgestellt, dass es ziemlich genau so ist wie Luis 'Antwort, aber in Convex, aber ich habe dies unabhängig erfunden.
Probieren Sie es online!
Erläuterung:
Alte Lösung, 10 Bytes:
Probieren Sie es online!
Erläuterung:
quelle
A,'[,_el^'_
Ruby, 26 Bytes
Zeichen können in beliebiger Reihenfolge gedruckt werden? Es macht mir nichts aus, wenn ich es tue!
Probieren Sie es online!
quelle
Perl, 20 Bytes
Benötigt
-E
keine zusätzlichen Kosten.Meine ursprüngliche Antwort (unten) war also etwas zu langweilig. Das einzige, was ich mir ausgedacht habe, ist das Obige, das ist genau das Gleiche, sieht aber etwas verwirrender aus ... Es ist so ziemlich genau wie das Folgende:
Ich mag die Vorschläge von @ msh210 in den Kommentaren, aber sie sind einfach ein bisschen zu lang!
quelle
say grep/\w/,map chr,1..122
||say map{chr=~/\w/;$&}1..122
||say map{chr=~s/\W//r}1..122
say chr=~/\w/g for 1..255
...Cheddar,
3127 BytesDies zeigt den
@"
Bediener gutNicht abgeschlossen, weil ich mich endlich daran gemacht habe, den
@"
Operator zu reparieren . Der Fehler war, dass es einen Cheddar-Bereich und keinen JS-Bereich generierte, sodass es nicht richtig funktionieren konnteErläuterung
Der
@"
Operator wurde von @ CᴏɴᴏʀO'Bʀɪᴇɴ entworfen und generiert einen Zeichenfolgenbereich von LHS bis RHS. Bei Verwendung als unärer Operator wird das Zeichen am angegebenen Codepunkt zurückgegeben (wie bei Pythonschr
).Ungolfed
quelle
Brainfuck, 58 Bytes
Probieren Sie es online aus .
Initialisiert das Band auf 3 · 2 n und arbeitet von dort aus.
quelle
JavaScript (ES6), 62 Byte
Gibt zurück
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
, also nur 6 Bytes kürzer als eine Funktion, die das Zeichenfolgenliteral zurückgibt. Ja, es ist scheiße.quelle
btoa
die erforderliche Ausgabe zurückgegeben wird.atob
._
) und 14 für_=>atob("")+""
.Haskell, 38 Bytes
Hier gibt es nichts zu erklären.
quelle
:
und++
?++
zwei Zeichenfolgen und verkettet sie.:
Nimmt ein Zeichen und eine Zeichenkette und stellt das Zeichen vor die Zeichenkette."_"++['a'..'z']...
funktioniert auch, ist aber ein Byte länger.PowerShell v3 +,
35 -33 ByteErstellt ein dynamisches Array
1..127
und wandelt es in einchar
Array um. Dies wird dem-match
Operator zugeführt, der an der Regex arbeitet\w
, die alle übereinstimmenden Elemente zurückgibt (dh exakt alphanumerisch und unterstrichen). Wir kapseln diese Array-Elemente in ein,-join
um sie als eine Zeichenfolge zu bündeln. Das bleibt in der Pipeline und die Ausgabe ist implizit.quelle
0
...V, 27 Bytes
Probieren Sie es online!
Diese Antwort ist schrecklich verworren. Ich werde später eine Erklärung posten.
Hexdump:
Erläuterung:
Lesbar:
quelle
J
302928 BytesDank randomra ein Byte gespeichert!
Ausgabe:
Erläuterung
Ich gebe keine Erklärung an sich , werde aber Zwischenergebnisse liefern.
quelle
Haskell, 31 Bytes
Der Ausdruck
zip "aA0_" "zZ9_"
gibt die Liste der Endpunkte an[('a','z'),('A','Z'),('0','9'),('_','_')]
. Diedo
Notation nimmt jeweils(x,y)
das Inklusive\(x,y)->[x..y]
und verkettet die Ergebnisse. Danke an Anders Kaseorg für zwei Bytes mitdo
statt>>=
.Vergleichen Sie mit Alternativen:
quelle
do
Notation speichert zwei Bytes:do(x,y)<-zip"aA0_""zZ9_";[x..y]
C 50 Bytes
Rufen Sie
f()
ohne Argumente an.Druckt
quelle
isalnum(n)|n==95&&putchar(n)
putc
anstelle von verwendetputchar
.putc
erwartet, dass auch ein Stream geschrieben wird, den Sie nicht übergeben haben. Die Funktion selbst funktioniert einwandfrei (versuchen Sie,putc
alles zu entfernen , und es funktioniert).If the number of arguments does not equal the number of parameters, the behavior is undefined.
6.5.2.2/6, siehe N1570 ./// 63 Bytes
quelle
Python 3, 58 Bytes
Ein vollständiges Programm, das auf STDOUT gedruckt wird.
Die Ausgabe ist:
_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Wie es funktioniert
Probieren Sie es auf Ideone
Wenn Zeichenfolgenkonstanten zulässig wären, wären die folgenden 45 Bytes:
quelle
print('_'+*filter(str.isalnum,map(chr,range(123))))
print('_',*filter(str.isalnum,map(chr,range(123))))
, aber das druckt trennende Leerzeichen; Das OP sagte in den Kommentaren, dass "... überhaupt keine Leerzeichen in der Ausgabe erlaubt sind".print''.join(filter(str.isalnum,map(chr,range(123)))),'_'
Mein erster Versuch mit Codegolf!
C #,
168152150147130127117116115109106 BytesVielen Dank an Aloisdg, AstroDan, Leaky Nun und Kevin Lau - nicht an Kenny für die Hilfe in den Kommentaren.
quelle
\w
Regex-Klasse deckt auch die alphanumerischen Zeichen ab_
, die"\\w"
für Ihre Regex-Match-Funktion ausreichend gültig sein sollten .Pure Bash, 32
Ideone .
quelle
Object Pascal,
858373 BytesNur einfaches Objekt Pascal mit einer Reihe von Zeichen. Das Schreiben eines vollständigen Programms anstelle einer Prozedur spart 2 Byte. Durch das Entfernen des Programmschlüsselworts werden 10 weitere Bytes gespart.
quelle
program
Schlüsselwort.Bash -
4737 BytesDie Ausgabe auf meinem System ist:
Vielen Dank an Digital Trauma für hilfreiche Vorschläge.
Auf einigen Systemen können Sie möglicherweise ein Byte speichern,
ascii
anstatt esman sh
zu verwenden.quelle
man sh|egrep -io _\|\\w|sort -u|tr -d \\n
\w
Übereinstimmungen herausgefunden_
und ist bereits case-unempfindlich, könnte also noch mehr verkürzen.env
stattman sh
sollte auf den meisten Umgebungen arbeiten. Das tut es bei mir.$ env|egrep -o \\w|sort -u|tr -d \\n
->0123456789ABCDEFGHIKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
.J
. Mein Fehler.PHP, 40 Bytes
Online Demo .
quelle
Retina ,
3019161512 BytesIch habe meinen ursprünglichen Alphabetversuch für diese neueste Version geändert . Jedes Zeichen wird in einer Schleife gedruckt.
Die erste Zeile ist leer.
Probieren Sie es online aus
Ausgabe:
Vielen Dank an Leaky Nun für das Golfen von 4 Bytes aus meinem letzten Versuch.
quelle
w
eine Konstante ist, die 9 oder mehr der erforderlichen Zeichen enthält. Sie müssen wahrscheinlich die rechte Seite erweitern undw
die linke Seite durch ersetzeno
. Sie können zwar ein Byte speichern, indem SieEO
stattdessen verwenden,d
da sie jeweils nur 5 Zeichen enthalten.w
innerhalb der Transliterationsstufe hat Regex nichts zu tun. Diese Kurzform erweitert sich zu einer Liste mit den erforderlichen 63 Zeichen. Zumindest würde ich orlp speziell zu diesem Fall befragen, da er sich von der Verwendung\w
in einem regulären Ausdruck deutlich unterscheidet .MATL , 11 Bytes
Probieren Sie es online!
quelle
8W:'\w'XX
8W:'\w'XX!
Brachylog , 25 Bytes
Dies druckt Folgendes aus
STDOUT
:Erläuterung
quelle
Pyth,
1312 BytesProbieren Sie es online!
Findet alle Zeichen in U + 0000 bis U + 007B, die dem regulären Ausdruck entsprechen
/\w/
.Ausgänge
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
.alternativer Ansatz: 15 Bytes
Probieren Sie es online!
im Grunde erzeugt die Halb inklusive Bereiche erforderlich:
0-:, A-[, a-{, _-`
.quelle
CJam ,
151411 Bytes4 Bytes weniger dank @FryAmTheEggman und @Dennis!
Probieren Sie es online!
quelle
Brainfuck, 89 Bytes
Probieren Sie es hier aus
Einzelheiten:
Wenn ich hätte kommentieren können, müsste ich die Antworten anderer verbessern. Aber da ich nicht kann, könnte ich auch meine eigenen posten. Als ich anfing, dies zu schreiben, war der niedrigste BF 96 lang.
quelle
F #,
5059 BytesAusgabe:
Bearbeiten: Verpasste die Ziffern beim ersten Mal
Edit2, inspiriert von dieser Haskell-Lösung, dieses F # -Snippet ist 67 Bytes.
Ausgabe:
quelle
Hexagony, 33
Erweitert:
Ausgabe:
Probieren Sie es online!
Beachten Sie, dass
0x1A
das erste Byte des Programms ein nicht druckbares Zeichen enthält . Dies lässt auch die erste Reihe des erweiterten Hexagons irgendwie anders aussehen. Vielen Dank an Martin, der mir diesen Trick gezeigt und den Algorithmus zum Drucken des Alphabets vorgeschlagen hat!Dieser druckt das Alphabet durch Speicher
a
undA
an zwei Kanten eines Sechsecks und die Zahl 26 an der Kante des Sechsecks, das die Verbindung zwischen den Buchstaben berührt. Das sieht ungefähr so aus:Anschließend wird eine Schleife aufgerufen, in der die Buchstaben gedruckt und anschließend inkrementiert und anschließend die Zahl dekrementiert werden. Nach einer Iteration hätten wir:
Und so weiter. Der lineare Code für die Initialisierung ist:
0x1A " A } a
. Der lineare Code für die Schleifen außerhalb der Steuerstromänderungen ist:; ) ' ; ) { ( ' =
.Sobald der Zähler Null erreicht, folgen wir einem anderen Pfad, um die Zahlen und einen Unterstrich auszudrucken. Ausgeschrieben linear ist dies:
x 3 5 6 8 4 7 9 ! ; { @
. Dies ersetzt den Wert der aktuellen Speicherflanke durch die Nummer 1203568479 (beachten Sie, dassx
der ASCII-Code 120 lautet), die alle Dezimalstellen enthält. Wir drucken diese Nummer aus und verwenden dann eine nette Funktion von Hexagony: Wir drucken die Nummer mod 256 als ASCII-Zeichen aus. Dies ist zufällig 95 oder ein Unterstrich.quelle
Brainfuck,
11410398907671 BytesEine andere
triviale(jetzt nicht-triviale) Lösung, aber diesmal ist es BF!14 (!) Bytes dank @primo gespeichert.
Dank des Vorschlags von @primo, den Bereich rückwärts zu generieren, wurden 4 weitere Bytes gespart, und vor dem Drucken für Kleinbuchstaben habe ich einen weiteren durch Inkrementieren gespeichert.
Neu (Wiederholung 4, 71):
Alt (Werte, 114):
Alt (Wiederholung 1, 103):
Alt (Wiederholung 2, 90):
Alt (Wiederholung 3, 76):
Nimmt 8-Bit-Umbruchzellen und Umbruchspeicher an. Ich habe es online ausprobiert .
Alles ausdrucken
_AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789
Erstens dieser Teil
Initialisiert das Band mit diesen Werten
Dies funktioniert, weil die Wiederholungsbeziehung, die ich im Grunde genommen modelliert habe
f(x) = 7 * (3 * x + 1)
, rückwärts ist. Siehe @primo Hallo, Welt! Beantworten Sie die Frage, was eine Wiederholungsbeziehung ist.Dann ist es ziemlich einfach, diese Werte in nützliche Werte umzuwandeln. (und den Unterstrich ausdrucken)
Die einfachen Schleifen verwenden dann die Werte, um den Rest der Zeichen zu drucken. Ich spare 1 Byte, indem ich ein Inkrement vor dem Druck habe.
Ich muss wirklich eine kürzere Sequenzgenerierung finden.Ich habe eine Wiederholungsbeziehung gefunden, die gut zu funktionieren scheint, aber es könnte eine kürzere mit weniger Hunting and Peck geben.Ich habe einen linearen Regressionsrechner verwendet, um die kürzestmögliche lineare Wiederholungsrelation zu finden. Daher sollte ich wahrscheinlich eine andere Formel finden, wenn ich sie verbessern möchte.
@primo hat die Wiederholungsrelation sehr verbessert, danke.
quelle
+[--[<+++++++>->+<]>-]
>-]
, können Sie sicher sein, dass die endgültige Laufzeit 1 (x7) ist. Eigentlich sollte man wohl damit anfangen-
, dass es viel schneller endet.Sesos , 17 Bytes
Ausgabe
Probieren Sie es online! Überprüfen Sie Debug , um den generierten Binärcode anzuzeigen.
Wie es funktioniert
Die obige Binärdatei wurde durch Zusammenstellen des folgenden SASM-Codes generiert.
quelle
Pyke, 13 Bytes
Probieren Sie es hier aus!
Erzeugt ASCII 0-150 und filtert nach Alphanumerik und fügt
_
am Endequelle