Twoim zadaniem jest wydrukowanie tego dokładnego tekstu:
אבגדהוזחטיכךלמםנןסעפףצץקרשת
(Możesz wydrukować końcowy znak nowej linii)
Skrót SHA256 kodowania tekstu UTF-8:
0ab6f1e0bf216a0db52a4a5a247f95cba6f51496de7a24dfd01f3985dfcf6085
Kodowanie Base64:
15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq
Zasady
- Nie możesz użyć wbudowanego wyjścia tego tekstu.
- Standardowe luki są niedozwolone.
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź.
Powodzenia!
code-golf
kolmogorov-complexity
unicode
TuxCrafting
źródło
źródło
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
. Nie znam się zbytnio na hebrajskim, więc czy mógłbyś potwierdzić, że jest to celowe?print(map(chr, range(x, y)))
echo 15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq | base64 -d | sha256sum
produkujef1d4b9c12a197912a4bdb80fb3e4d3fad5a0d9b7edd243fae7b2ab3450618036
.Odpowiedzi:
MATLAB,
5251 bajtówPrzykładowe zastosowanie:
Wyjaśnienie
'CCCCCCCCCDADDAEADCDAEADCCC'-66
tworzy tablicę[1 1 ... -1 2 1 1 1]
, która zawiera kolejne różnice między punktami kodowymi pożądanych znaków.[1488 ...]
poprzedza1488
, więc tablica jest teraz[1488 1 1 ... -1 2 1 1 1]
.cumsum(...)
Oblicza skumulowaną sumę:[1488 1489 ... 1514]
.[... '']
łączy się z pustym ciągiem. Powoduje to konwersję do char (i jest o jeden bajt krótszy niżchar(...)
)źródło
Galareta ,
222120 bajtówWypróbuj online!
Pomysł
Jeśli odejmiemy 1487 z każdego punktu kodu otrzymujemy macierz R , który następuje.
To tylko zakres od 1 do 27 , ale nie w porządku rosnącym; pary (11, 12) , (14, 15) , (16, 17) , (20, 21) i (22, 23) zostały zamienione.
Jeśli weźmiemy rosnący zakres i dodamy 2 do 11 , 14 , 16 , 20 i 22 , otrzymamy tablicę A, która następuje.
To nie jest już permutacja zakresu, ale jeśli stabilnie posortujemy zakres według wartości w tej tablicy, możemy zrekonstruować pierwotną tablicę.
Kod
źródło
PowerShell v2 +, 58 bajtów (UTF-16)
PowerShell Unicode to UTF-16, chyba że wyraźnie zaznaczono inaczej, a następnie jest to crapshoot, ponieważ wszystko to UTF-16 w tle.
To po prostu umieszcza dosłowny ciąg w potoku i domyślny
Write-Output
pod koniec wykonywania programu wypisuje go na ekran.Najkrótsza możliwa wersja ASCII to 63
Która pobiera wartość ASCII ciągu
ABC...
i dodaje1423
do każdego,char
aby uzyskać odpowiedni ciąg.źródło
05AB1E ,
3629262523 bajtówZaoszczędzono 2 bajty dzięki Adnan
Wykorzystuje kodowanie CP-1252 .
Wypróbuj online!
Wyjaśnienie
źródło
1488•’ÉÇW–moû•5Bvy<+Dç?
.Brain-Flak , 172 bajty
Ta odpowiedź jest oparta w dużej mierze na jednym rozwiązaniu DJMcMayhem, więc polecam to sprawdzić.
Podobnie jak rozwiązanie DJMcMayhem, wykorzystuje
-rA
flagę do odwrócenia wyjścia i drukowania do Unicode.Wypróbuj online!
Wyjaśnienie
Odpowiedziałem na to, przeprowadzając szereg mikrooptymalizacji w stosunku do oryginalnego rozwiązania dostarczonego przez DJMcMayhem. Te optymalizacje podczas zapisywania bajtów powodują, że kod jest nieczytelny, a algorytm tępy. Szczerze mówiąc, tak naprawdę nie rozumiem, jak i co robi mój kod.
Być może kiedyś zrozumiem, jak to działa ...
źródło
Python 3, 50 bajtów
Plik musi zostać utworzony przy użyciu kodowania CP862 lub poprzez odwrócenie następującego zrzutu heksadecymalnego.
Prawdopodobnie można go przenieść do Pythona 2 (oszczędzając w ten sposób dwa bajty), ale brakuje mi odpowiednich ustawień narodowych do przetestowania go. Python 3 sumiennie drukuje wersję alfabetu zakodowaną w UTF-8 (lub cokolwiek odpowiedniego dla aktualnych ustawień regionalnych).
Weryfikacja
źródło
CJam , 23 bajty
Wypróbuj online!
Jak to działa
źródło
Brain-Flak , 186 bajtów
Ten kod ma 182 bajty i dodałem 4 bajty dla dwóch flag wiersza poleceń:
-r
i-u
Wypróbuj online!
Ogromne podziękowania dla @Neil za ten niesamowity metagolfer liczb całkowitych, który stworzył ten słodki sposób pchania 1488 (punkt kodowy pierwszego znaku)
Wyjaśnienie:
Naciskanie dużej liczby na atak mózgu jest stosunkowo trudne. Ponieważ jednak czynność wypychania liczby również wpływa na tę liczbę, możemy przesuwać kilka liczb jednocześnie, aby uzyskać ogromne oszczędności bajtów. Oto bardziej konkretny przykład. Najbardziej wewnętrzna część (którą napisałem powyżej) w kodzie psuedo to
To wyrażenie ma wartość 1488, więc zawijamy całość do innej instrukcji push:
Spycha to 1488 i 1489, a także ewaluuje do 1489. Więc zawijamy to:
która wypycha 1488, 1489 i 1490, a także ocenia na 1490. Powtórz ten krok dla każdej liczby, którą musimy wypchnąć.
Ponieważ jednak przyrosty nie zawsze wynoszą 1, jest to nieco bardziej skomplikowane. Oto bardziej czytelna wersja:
źródło
-r
bo-
to się nie liczy-
się nie liczy, jeśli jest już obecny w innej opcji (np. W perlu-e
). Brain-Flak nie ma takiej opcji, więc-
opcja i spacja liczą się w sumie.()()()
na początek i odłożyłem je w górę i w górę./// , 27 bajtów
Wypróbuj online!
Dane wyjściowe są kodowane w CP424 .
Aby to sprawdzić samodzielnie:
źródło
JavaScript (ES6), 59 bajtów
Najlepsze, co mogłem zrobić w ASCII, to
807978 bajtów:Jeśli tablica znaków jest dopuszczalna, 75 bajtów:
Edycja: Zapisano niektóre bajty dzięki @IsmaelMiguel. Zaoszczędź kolejny bajt dzięki @ETHproductions. Jeśli używasz przeglądarki Firefox 30-57, możesz zaoszczędzić kolejne 2 bajty dzięki @ETHproductions przy użyciu generatora lub tablic:
źródło
0x377BABBCF7F.toString(3)
. Łącząc to z.map()
, możesz zrobić_=>0x377BABBCF7F.toString(3,n=1488).split``.map(_=>String.fromCharCode(++n-_))
dla 78 bajtów. Zwraca tablicę znaków...
alesplit
tutaj nie korzystamy ._=>String.fromCharCode(...[...0x377babbcf7f.toString(3)].map(c=>++n-c,n=1488))
znaków, aby uzyskać 1 bajt krótszy niż bieżące 79 bajtów.String.fromCharCode(...)
i udało mi się przekonać, że zawsze będzie dłużej. W rzeczywistości zapisuje 4 bajty w moim podstawowym rozwiązaniu 2 (które wciąż ma 84 bajty, ponieważ dekodowanie zajmuje więcej bajtów)._=>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 bajtów
Wypróbuj online!
-1 bajt dzięki Emignie + 28 bajtów dzięki DJMCMayhem;).
źródło
/// , 54 bajty
Wypróbuj online!
Nie może być wersji bardziej golfowej niż ta :(
źródło
Scala / Groovy / Python 3, 9 znaków ascii + 27 znaków 2-bajtowych = 63 bajty
przy założeniu UTF-8
Scala, 59 bajtów
x+1423
jest taki sam jakx-'A'+1488
źródło
APL (Dyalog) , 35 bajtów
Wypróbuj online!
źródło
11 14 16 20 22
jako⎕A⍳'KNPTV'
C # 6 +,
768682 bajtówPierwsza próba gry w golfa. Czy robię to dobrze?
EDYCJA : +6 bajtów za zapomnienie o dołączeniu do funkcji. Dzięki @Kevin
C # 5 i poniżej,
8682 bajtówźródło
void F(){Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}
byłoby ważne, albo()=>{Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}
jak dobrze myślę (nie wiem o tym ostatnim, choć). Możesz także zagrać w golfa za pomocą.Write
zamiast.WriteLine
. :) To powiedziawszy, witamy w PPCG! Można znaleźć wskazówki dla golfa w C # interesujące przeczytać. Miłego pobytu.<s>your text</s>
do wybicia tekstu zamiast używać dziwnych znaków.Fouriera, 53 bajty
Używa funkcji ponownie.
Wypróbuj FourIDE!
źródło
ArnoldC, 112 bajtów
źródło
Beczka , 34 bajty
Zainspirowany rozwiązaniem Powershell.
TIO
źródło
BaCon , 57 bajtów
W większości języków BASIC znak zapytania reprezentuje po prostu DRUKOWANIE.
Na pierwszy rzut oka poniższe rozwiązanie wygląda na 30 bajtów, ale hebrajskie znaki wymagają 2 bajtów pamięci z powodu UTF-8. Mamy więc 27 znaków x 2 bajty + 1 bajt dla „?” i 2 bajty dla podwójnych cudzysłowów = 57 bajtów.
Rozwiązanie:
źródło
s-lang , 59 bajtów
Naprawdę prosta odpowiedź ...
t
- zamień funkcję (zamienia „nic” na wejściu na alfabet ...)Wypróbuj tutaj
źródło
zsh,
2521 bajtówMoja przeglądarka jest w nieładzie: ת powinna być pierwszą literą, a następnie א. Jeśli jednak wkleisz gdzie indziej, powinno to działać. Stara wersja:
źródło
כך
na przykład (najpierw normalny kaf, ostatni kaf drugi), ale w Unicode ostatnie litery są przed zwykłymi literami (ךכ
), więc wydrukowany tekst jest nieprawidłowy. A jeśli najpierw wyświetla się w tav, to dlatego, że hebrajski jest językiem RTL, więc pierwszy znak jest wyświetlany w prawoJava 7, 85 bajtów
Nie będę nawet zawracał sobie głowy publikowaniem kodu testowego lub „Wypróbuj tutaj”, jak to zwykle robię…
źródło
Perl 6 (74)
źródło
Rubinowy , 49 bajtów
Wypróbuj online!
źródło
Haskell , 23 bajty
Wypróbuj online!
Działa to w wersji Haskell TIO
źródło
C, 49 bajtów
Niektórzy użytkownicy mogą potrzebować zadzwonić
setlocale
przed użyciem tego, ale działało to dla mnie dobrze.źródło
for(i=1488;putwchar(i++)<1514;);
zamiastfor(i=0x5d0;i<=0x5ea;i++)wprintf(L"%lc",i);
Czysty , 62 bajty
Wypróbuj online!
źródło