Ihre Aufgabe ist es, genau diesen Text auszudrucken:
אבגדהוזחטיכךלמםנןסעפףצץקרשת
(Sie dürfen eine abschließende neue Zeile drucken)
SHA256-Hash der UTF-8-Codierung des Texts:
0ab6f1e0bf216a0db52a4a5a247f95cba6f51496de7a24dfd01f3985dfcf6085
Base64-Codierung:
15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq
Regeln
- Sie können keine eingebaute Funktion verwenden, um diesen Text auszugeben.
- Standardlücken sind nicht zulässig.
- Das ist Code-Golf , also gewinnt die kürzeste Antwort.
Viel Glück!
code-golf
kolmogorov-complexity
unicode
TuxCrafting
quelle
quelle
1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1499, 1498, 1500, 1502, 1501, 1504, 1503, 1505, 1506, 1508, 1507, 1510, 1509, 1511, 1512, 1513, 1514
. Ich weiß nicht viel über Hebräisch. Könnten Sie also bestätigen, dass dies tatsächlich beabsichtigt ist?print(map(chr, range(x, y)))
echo 15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq | base64 -d | sha256sum
produziertf1d4b9c12a197912a4bdb80fb3e4d3fad5a0d9b7edd243fae7b2ab3450618036
.Antworten:
MATLAB,
5251 BytesBeispiel Verwendung:
Erläuterung
'CCCCCCCCCDADDAEADCDAEADCCC'-66
erzeugt das Array[1 1 ... -1 2 1 1 1]
, das die aufeinander folgenden Unterschiede zwischen den Codepunkten der gewünschten Zeichen enthält.[1488 ...]
voranstellen1488
, so ist das Array jetzt[1488 1 1 ... -1 2 1 1 1]
.cumsum(...)
berechnet die kumulative Summe:[1488 1489 ... 1514]
.[... '']
verkettet mit der leeren Zeichenfolge. Dies hat den Effekt der Konvertierung in char (und ist ein Byte kürzer alschar(...)
)quelle
Jelly ,
222120 BytesProbieren Sie es online!
Idee
Wenn wir von jedem Codepunkt 1487 subtrahieren , erhalten wir das Array R , das folgt.
Das ist nur der Bereich von 1 bis 27 , aber nicht in aufsteigender Reihenfolge. Die Paare (11, 12) , (14, 15) , (16, 17) , (20, 21) und (22, 23) wurden vertauscht.
Wenn wir den ansteigenden Bereich nehmen und fügen Sie 2 zu 11 , 14 , 16 , 20 und 22 , wir das Array erhalten A , die folgt.
Dies ist keine Permutation des Bereichs mehr, aber wenn wir den Bereich stabil nach den Werten in diesem Array sortieren, können wir das ursprüngliche Array rekonstruieren.
Code
quelle
PowerShell v2 +, 58 Byte (UTF-16)
PowerShell Unicode ist UTF-16, sofern nicht ausdrücklich anders angegeben, und dann ist es sowieso ein Crapshoot, da sich alles in UTF-16 im Hintergrund befindet.
Dadurch wird nur die Literalzeichenfolge in die Pipeline eingefügt, und die Standardzeichenfolge
Write-Output
am Ende der Programmausführung wird auf dem Bildschirm ausgegeben.Die kürzeste mögliche ASCII-Version ist 63
Wobei der ASCII-Wert der Zeichenfolge verwendet
ABC...
und1423
zu jeder Zeichenfolge addiert wirdchar
, um die entsprechende Zeichenfolge zu erhalten.quelle
05AB1E ,
3629262523 Byte2 Bytes gespart dank Adnan
Verwendet CP-1252- Codierung.
Probieren Sie es online!
Erläuterung
quelle
1488•’ÉÇW–moû•5Bvy<+Dç?
.Brain-Flak , 172 Bytes
Diese Antwort basiert größtenteils auf einer DJMcMayhem-Lösung, daher empfehle ich Ihnen, sie sich anzusehen .
Wie bei der DJMcMayhem-Lösung wird das
-rA
Flag verwendet, um die Ausgabe umzukehren und in Unicode zu drucken.Probieren Sie es online!
Erläuterung
Zu dieser Antwort habe ich eine Reihe von Mikrooptimierungen für die ursprüngliche Lösung von DJMcMayhem durchgeführt. Diese Optimierungen beim Speichern von Bytes machen den Code unlesbar und den Algorithmus stumpf. Um ehrlich zu sein, verstehe ich nicht wirklich, wie oder was mein Code tut.
Vielleicht werde ich eines Tages verstehen, wie das funktioniert ...
quelle
Python 3, 50 Bytes
Die Datei muss mit der CP862-Codierung oder durch Umkehren des folgenden Hexdumps erstellt werden.
Dies könnte wahrscheinlich auf Python 2 portiert werden (wodurch zwei Bytes gespart werden), aber mir fehlt das richtige Gebietsschema, um es zu testen. Python 3 druckt pflichtbewusst eine UTF-8-codierte Version (oder was auch immer für das aktuelle Gebietsschema geeignet ist) des Alphabets.
Nachprüfung
quelle
CJam , 23 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Brain-Flak , 186 Bytes
Dieser Code ist 182 Byte lang und ich habe 4 Byte für zwei Befehlszeilenflags hinzugefügt:
-r
und-u
Probieren Sie es online!
Vielen Dank an @Neil für diesen fantastischen Ganzzahl-Metagolfer , der diese süße Art des Drückens von 1488 (dem Codepunkt des ersten Zeichens) geschaffen hat.
Erläuterung:
Es ist relativ schwierig, eine große Anzahl von Hirnschuppen einzuschieben. Da das Pushen einer Zahl jedoch auch diese Zahl ergibt, können mehrere Zahlen gleichzeitig gepusht werden, um massive Byteeinsparungen zu erzielen. Hier ist ein konkreteres Beispiel. Der innerste Teil (den ich oben geschrieben habe) im Pseudocode ist
Dieser Ausdruck ergibt 1488, daher schließen wir das Ganze in eine weitere Push-Anweisung ein:
Dies schiebt 1488 und 1489 sowie die Auswertung auf 1489. Also wickeln wir dies:
Dies drückt 1488, 1489 und 1490 und bewertet 1490. Wiederholen Sie diesen Schritt für jede Zahl, die wir drücken müssen.
Da die Inkremente jedoch nicht immer 1 sind, ist es etwas komplizierter. Hier ist eine besser lesbare Version:
quelle
-r
weil das-
nicht zählt-
zählt nicht, wenn es bereits in einer anderen Option vorhanden ist (zB in Perl-e
). Brain-Flak hat keine solche Option, daher zählen-
die Option und der Platz schließlich zur Gesamtsumme.()()()
an den Anfang verschoben und sie runter und rauf gelegt./// 27 Bytes
Probieren Sie es online!
Der Ausgang ist im CP424 codiert .
So überprüfen Sie es selbst:
quelle
JavaScript (ES6), 59 Byte
Das Beste, was ich in ASCII machen konnte, waren
807978 Bytes:Wenn ein Zeichenarray zulässig ist, 75 Byte:
Bearbeiten: Einige Bytes dank @IsmaelMiguel gespeichert. Dank @ETHproductions wurde ein weiteres Byte gespeichert. Wenn Sie Firefox 30-57 verwenden, können Sie dank @ETHproductions mit Generator- oder Array-Verständnis weitere 2 Bytes einsparen:
quelle
0x377BABBCF7F.toString(3)
. Wenn Sie dies kombinieren.map()
, können Sie dies_=>0x377BABBCF7F.toString(3,n=1488).split``.map(_=>String.fromCharCode(++n-_))
für 78 Bytes tun . Es wird ein Array von Zeichen zurückgegeben...
aber wir nutzensplit
hier nicht rum._=>String.fromCharCode(...[...0x377babbcf7f.toString(3)].map(c=>++n-c,n=1488))
1 Byte kürzer als die aktuellen 79 Bytes zu erhalten.String.fromCharCode(...)
und mich davon überzeugt, dass es immer länger werden würde. Tatsächlich werden 4 Bytes in meiner Basis-2-Lösung gespart (das sind immer noch 84 Bytes, da die Dekodierung mehr Bytes benötigt)._=>String.fromCharCode(...[for(c of 0x377babbcf7f.toString(3,n=1488))++n-c])
_=>[for(c of 0x377babbcf7f.toString(3,n=1488))String.fromCharCode(++n-c))
05AB1E , 28 * 2-1 = 55 Bytes
Probieren Sie es online!
-1 Byte dank Emigna + 28 Byte dank DJMCMayhem;).
quelle
/// 54 Bytes
Probieren Sie es online!
Es kann keine Version geben, die mehr Golf spielt als diese :(
quelle
Scala / Groovy / Python 3, 9 ASCII-Zeichen + 27 2-Byte-Zeichen = 63 Byte
unter der Annahme von UTF-8
Scala, 59 Bytes
x+1423
ist das gleiche wiex-'A'+1488
quelle
APL (Dyalog) , 35 Bytes
Probieren Sie es online!
quelle
11 14 16 20 22
als⎕A⍳'KNPTV'
C # 6 +,
768682 BytesErster Golfversuch. Mache ich das richtig?
EDIT : +6 Bytes, um zu vergessen, eine Funktion einzuschließen. Vielen Dank @ Kevin
C # 5 und niedriger Version,
8682 Bytesquelle
void F(){Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}
also gültig, oder()=>{Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}
denke ich auch (bin mir aber bei diesem letzten nicht sicher). Sie können auch Golf spielen, indem Sie.Write
anstelle von.WriteLine
. :) Davon abgesehen, willkommen bei PPCG! Tipps zum Golfen in C # finden Sie möglicherweise interessant zu lesen. Genieße deinen Aufenthalt.<s>your text</s>
damit Text markieren, anstatt seltsame Zeichen zu verwenden.Fourier, 53 Bytes
Verwendet wieder Funktionen.
Probieren Sie es aus FourIDE!
quelle
ArnoldC, 112 Bytes
quelle
Fass , 34 Bytes
Inspiriert von einer Powershell-Lösung.
TIO
quelle
BaCon , 57 Bytes
In den meisten BASICs steht das Fragezeichen lediglich für PRINT.
Auf den ersten Blick sieht die unten stehende Lösung wie 30 Bytes aus, aber die hebräischen Zeichen benötigen wegen UTF-8 2 Bytes Speicherplatz. Es gibt also 27 Zeichen x 2 Bytes + 1 Byte für das '?' und 2 Bytes für die doppelten Anführungszeichen = 57 Bytes.
Lösung:
quelle
s-lang , 59 Bytes
Wirklich einfache Antwort ...
t
- Funktion ersetzen (ersetzt "nichts" in der Eingabe durch das Alphabet ...)Probieren Sie es hier aus
quelle
zsh,
2521 BytesMein Browser bringt es durcheinander: Das ת sollte der erste Buchstabe sein, dann das א. Wenn Sie es jedoch an einer anderen Stelle einfügen, sollte es funktionieren. Die alte Version:
quelle
כך
zum Beispiel (normales kaf zuerst, letztes kaf zweite), aber in Unicode stehen die letzten Buchstaben vor normalen Buchstaben (ךכ
), so dass der gedruckte Text ungültig ist. Und wenn es zuerst mit tav angezeigt wird, liegt das daran, dass Hebräisch eine RTL-Sprache ist, sodass das erste Zeichen ganz rechts angezeigt wirdJava 7, 85 Bytes
Ich werde mir nicht einmal die Mühe machen, einen Testcode oder ein 'Try it here' zu posten, wie ich es normalerweise tue.
quelle
Perl 6 (74)
quelle
Ruby , 49 Bytes
Probieren Sie es online!
quelle
Haskell , 23 Bytes
Probieren Sie es online!
Dies funktioniert in der TIO-Version von Haskell
quelle
C 49 Bytes
Einige Benutzer müssen möglicherweise anrufen,
setlocale
bevor sie dies verwenden, aber es hat für mich gut funktioniert.quelle
for(i=1488;putwchar(i++)<1514;);
stattdessen vorfor(i=0x5d0;i<=0x5ea;i++)wprintf(L"%lc",i);
Sauber , 62 Bytes
Probieren Sie es online!
quelle