Keluarkan alfabet Ibrani


24

Tugas Anda adalah mencetak teks ini:

אבגדהוזחטיכךלמםנןסעפףצץקרשת

(Anda diizinkan untuk mencetak baris tambahan)

SHA256 hash dari pengkodean teks UTF-8:

0ab6f1e0bf216a0db52a4a5a247f95cba6f51496de7a24dfd01f3985dfcf6085

Pengkodean Base64:

15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq

Aturan

  • Anda tidak dapat menggunakan builtin yang menghasilkan teks ini.
  • Celah standar tidak diijinkan.
  • Ini , jadi jawaban terpendek menang.

Semoga berhasil!


5
Saya perhatikan poin kode tidak langsung dalam urutan. Kamu punya 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. Saya tidak tahu banyak tentang bahasa Ibrani, jadi bisakah Anda memastikan ini memang disengaja?
DJMcMayhem

11
@DJMcMayhem Unicode mendaftar huruf terakhir sebelum huruf normal tetapi dalam teks dalam pertanyaan, huruf normal tercantum sebelumnya. Itu tidak benar-benar disengaja, tapi setidaknya itu mendorong jawaban yang tidak membosankan sepertiprint(map(chr, range(x, y)))
TuxCrafting

6
אני מדבר עברית!
OldBunny2800

6
Aleph null, aleph one, aleph 2, ...
Kritixi Lithos

2
@Angs Itu karena itu benar-benar tidak cocok. echo 15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq | base64 -d | sha256summenghasilkan f1d4b9c12a197912a4bdb80fb3e4d3fad5a0d9b7edd243fae7b2ab3450618036.
hvd

Jawaban:


25

MATLAB, 52 51 byte

[cumsum([1488 'CCCCCCCCCDADDAEADCDAEADCCC'-66]) '']

Contoh penggunaan:

>> [cumsum([1488 'CCCCCCCCCDADDAEADCDAEADCCC'-66]) '']
ans =
אבגדהוזחטיכךלמםנןסעפףצץקרשת

Penjelasan

'CCCCCCCCCDADDAEADCDAEADCCC'-66menghasilkan array [1 1 ... -1 2 1 1 1], yang berisi perbedaan berturut-turut antara codepoint dari karakter yang diinginkan.

[1488 ...]prepends 1488, jadi arraynya sekarang [1488 1 1 ... -1 2 1 1 1].

cumsum(...)menghitung jumlah kumulatif: [1488 1489 ... 1514].

[... '']digabungkan dengan string kosong. Ini memiliki efek konversi ke char (dan satu byte lebih pendek dari char(...))


19

Jelly , 22 21 20 byte

27R+“¿ÇÑÞ摦2Ụ+1487Ọ

Cobalah online!

Ide

Jika kita mengurangi 1487 dari setiap titik kode, kita mendapatkan array R yang mengikuti.

1 2 3 4 5 6 7 8 9 10 12 11 13 15 14 17 16 18 19 21 20 23 22 24 25 26 27

Itu hanya berkisar dari 1 hingga 27 , tetapi tidak dalam urutan naik; pasangan (11, 12) , (14, 15) , (16, 17) , (20, 21) , dan (22, 23) telah ditukar.

Jika kita mengambil rentang naik dan menambahkan 2 hingga 11 , 14 , 16 , 20 , dan 22 , kita mendapatkan larik A yang mengikuti.

1 2 3 4 5 6 7 8 9 10 13 12 13 16 15 18 17 18 19 22 21 24 23 24 25 26 27

Ini bukan lagi permutasi dari rentang, tetapi jika kita mengurutkan secara stabil rentang dengan nilai dalam array itu, kita dapat merekonstruksi array asli.

Kode

27R+“¿ÇÑÞ摦2Ụ+1487Ọ  Main link. No arguments.

27R                   Yield [1, ..., 27].
           ¦          Conditional application:
    “¿ÇÑÞæ‘             At indices 11, 14, 16, 20, and 22...
   +        2           add 2 to the corresponding value.
                      This yields the array A from the previous section.
             Ụ        Grade up; sort the indices of the result by its corresponding
                      values. This yields the array R from the previous section.
              +1487   Add 1487 to each integer in R.
                   Ọ  Unordinal; convert integers to characters.

15

PowerShell v2 +, 58 byte (UTF-16)

'אבגדהוזחטיכךלמםנןסעפףצץקרשת'

PowerShell Unicode adalah UTF-16 kecuali ditentukan sebaliknya secara eksplisit, dan bagaimanapun itu adalah omong kosong karena semuanya UTF-16 di latar belakang.

Ini hanya menempatkan string literal pada pipeline dan default Write-Outputdi akhir eksekusi program mencetaknya ke layar.

Terpendek saya bisa mendapatkan versi ASCII adalah 63

-join([char[]]'ABCDEFGHIJLKMONQPRSUTWVXYZ['|%{[char](1423+$_)})

Yang mengambil nilai ASCII dari string ABC...dan menambahkan 1423masing char- masing untuk mendapatkan string yang sesuai.


6
Terpilih hanya karena versi ASCII Anda pintar. Harus ... mendukung ... pintar ... bermain golf!
wizzwizz4

1
Butuh setidaknya 5 menit untuk menyadari bahwa itu bukan alfabet yang sebenarnya dalam versi ASCII.
caird coinheringaahing

11

05AB1E , 36 29 26 25 23 byte

Disimpan 2 byte berkat Adnan

Menggunakan pengodean CP-1252 .

1488•’ÉÇW–moû•5Bvy<+Dç?

Cobalah online!

Penjelasan

1488            # push 1488 (accumulator)
•’ÉÇW–moû•      # push 2235174277545950437
5B              # convert from base-5 to base-10 (122222222230330403230403222)
  v             # for each digit in above number
   y<           # decrease it by 1
     +          # add to accumulator
      Dç?       # print a copy of accumulator converted from code point

Menafsirkan jumlah besar sebagai angka dasar 5 menghemat dua byte: 1488•’ÉÇW–moû•5Bvy<+Dç?.
Adnan

@ Adnan: Ah, tentu saja. Pemikiran yang bagus!
Emigna

9

Brain-Flak , 172 byte

Jawaban ini sebagian besar didasarkan pada satu solusi DJMcMayhem di sini, jadi saya sarankan Anda memeriksanya.

Seperti solusi DJMcMayhem, ini menggunakan -rAflag untuk membalikkan output dan mencetak ke unicode.

(((((()()()()()){})))<(((({}{}{}()){({}[()])}{})){}{})>){({}[()]<(({})())>)}{}(((((()()())((((((((({}(((({}())[()])()())()())[()]))[()])()())())()())[()]))[()])()())())())())

Cobalah online!

Penjelasan

Saya membuat jawaban ini dengan menjalankan sekelompok optimasi mikro atas solusi asli yang disediakan oleh DJMcMayhem. Optimalisasi ini sambil menyimpan byte, membuat kode tidak terbaca, dan algoritme menjadi tumpul. Sejujurnya, saya tidak begitu mengerti bagaimana atau apa kode saya.

Mungkin suatu hari nanti saya akan mengerti bagaimana ini bekerja ...


6

Python 3, 50 byte

#coding:cp862
print('אבגדהוזחטיכךלמםנןסעפףצץקרשת')

File harus dibuat menggunakan pengkodean CP862 atau dengan membalik hexdump berikut.

0000000: 23 63 6f 64 69 6e 67 3a 63 70 38 36 32 0a 70 72  #coding:cp862.pr
0000010: 69 6e 74 28 27 80 81 82 83 84 85 86 87 88 89 8b  int('...........
0000020: 8a 8c 8e 8d 90 8f 91 92 94 93 96 95 97 98 99 9a  ................
0000030: 27 29                                            ')

Ini mungkin bisa porting ke Python 2 (sehingga menghemat dua byte), tapi saya tidak memiliki lokal yang tepat untuk mengujinya. Python 3 dengan patuh mencetak versi yang disandikan UTF-8 (atau apa pun yang sesuai untuk lokal saat ini) dari alfabet.

Verifikasi

$ base64 > hebrew.py -d <<< I2NvZGluZzpjcDg2MgpwcmludCgngIGCg4SFhoeIiYuKjI6NkI+RkpSTlpWXmJmaJyk=
$ wc -c hebrew.py
50 hebrew.py
$ echo $LANG
en_US.UTF-8
$ python3 hebrew.py
אבגדהוזחטיכךלמםנןסעפףצץקרשת

5

CJam , 23 byte

27,"%(*.0"{i_)e\}/'אf+

Cobalah online!

Bagaimana itu bekerja

27,                     Push [0 ... 26].
   "%(*.0"              Push that string. Its code points are [37 40 42 46 48],
                        which are [10 13 15 19 21] modulo the length of the string.
          {     }/      For each character:
           i              Compute its code point.
            _)            Push an incremented copy.
              e\          Swap the integers of [0 ... 26] at those indices.
                  'אf+  Add all resulting integers to the first character of the
                        Hebrew alphabet.

4

Brain-Flak , 186 byte

(((((((((((((((((((((((((((((((((()()()()()){})){}{}()){({}[()])}{})){}{})())())())())())())())())())()())[()])()())()())[()])()()())[()])()())())()())[()])()()())[()])()())())())())

Kode ini panjangnya 182 byte, dan saya menambahkan 4 byte untuk dua flag baris perintah: -rdan-u

Cobalah online!

Terima kasih banyak kepada @Neil untuk metagolfer integer yang luar biasa ini yang menciptakan cara manis untuk mendorong 1488 (titik kode karakter pertama)

(((((((()()()()()){})){}{}()){({}[()])}{})){}{})

Penjelasan:

Mendorong jumlah besar di otak-keripik relatif sulit. Namun, karena tindakan mendorong nomor juga mengevaluasi ke nomor itu, kita dapat mendorong beberapa nomor sekaligus untuk penghematan byte besar. Ini adalah contoh yang lebih konkret. Bagian terdalam (yang saya tulis di atas) dalam kode psuedo adalah

push(1488)

Ekspresi ini dievaluasi menjadi 1488, jadi kami membungkus semuanya dalam pernyataan push lain:

push(push(1488) + 1)

Ini mendorong 1488 dan 1489, serta mengevaluasi ke 1489. Jadi kami bungkus ini:

push(push(push(1488) + 1) + 1)

yang mendorong 1488, 1489, dan 1490, serta mengevaluasi ke 1490. Ulangi langkah ini untuk setiap nomor yang perlu kita dorong.

Namun, karena peningkatannya tidak selalu 1, ini sedikit lebih rumit dari itu. Ini adalah versi yang lebih mudah dibaca:

(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
#Push 1488
(((((((()()()()()){})){}{}()){({}[()])}{})){}{})
())     # + 1
())
())
())
())
())
())
())
())
()())   # + 2
[()])   # - 1
()())   # + 2
()())
[()])   # - 1
()()()) # + 3
[()])   # - 1
()())   # + 2
())     # + 1
()())   # + 2
[()])   # - 1
()()()) # + 3
[()])   # - 1
()())   # + 2
())     # + 1
())
())

Saya pikir ini +1 untuk -rkarena -tidak masuk hitungan
NoOneIsHere

6
@NoOneIsHere -tidak masuk hitungan jika sudah ada dari opsi yang berbeda (misalnya dalam perl -e). Brain-Flak tidak memiliki opsi yang ada seperti itu, jadi -, opsi, dan ruang setelah semua dihitung terhadap total.
Riley

Hanya sedikit perbaikan saya membuat brain-flak.tryitonline.net/...
Wheat Wizard

@WheatWizard Jika saya mengambil itu, maka saya tidak akan bisa menulis penjelasan. Bagiku itu hanya semacam kurung campur aduk. : P
DJMcMayhem

Perubahannya sangat kecil. Saya baru saja memindahkan dua contoh dari ()()()awal dan meletakkannya turun dan naik.
Wheat Wizard

4

/// , 27 byte

ABCDEFGHIQSRTVUXWYbdcfeghiq

Cobalah online!

Output dikodekan dalam CP424 .

Untuk memverifikasinya sendiri:

$ echo ABCDEFGHIQSRTVUXWYbdcfeghiq | ./slashes.pl | python3 -c 'print(bytes(input(), "utf-8").decode("cp424"))' | base64
15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeqCg==

Kode macam apa ini? Saya pikir itu perlu dikonversi ke UTF-8 untuk keperluan menonton. Bukan berarti itu tidak valid: P punya +1
Erik the Outgolfer

@EriktheGolfer Tidak perlu mengubahnya ke UTF-8. Itu bukan persyaratan di mana pun dalam tantangan.
Mego

Saya pikir Anda mungkin menarik suara turun itu. Harap dicatat bahwa, di tempat Anda, saya akan menyertakan versi UTF-8 dan hexdump yang asli ...
Erik the Outgolfer

4

JavaScript (ES6), 59 byte

_=>"אבגדהוזחטיכךלמםנןסעפףצץקרשת"

Yang terbaik yang bisa saya lakukan di ASCII adalah 80 79 78 byte:

_=>String.fromCharCode(...[...0x377babbcf7f.toString(3)].map(c=>++n-c,n=1488))

Jika array karakter dapat diterima, 75 byte:

_=>[...0x377babbcf7f.toString(3)].map(c=>String.fromCharCode(++n-c),n=1488)

Sunting: Menyimpan beberapa byte berkat @IsmaelMiguel. Menyimpan byte lain berkat @ETHproductions. Jika Anda menggunakan Firefox 30-57 maka Anda dapat menyimpan 2 byte lagi berkat @ETHproduksi menggunakan pemahaman generator atau array:

_=>String.fromCharCode(...(for(c of 0x377babbcf7f.toString(3,n=1488))++n-c))
_=>[for(c of 0x377babbcf7f.toString(3,n=1488))String.fromCharCode(++n-c)]

Anda dapat menyimpan byte pada alternatif ASCII Anda dengan menggunakan 0x377BABBCF7F.toString(3). Kombinasikan dengan ini .map(), Anda dapat melakukannya _=>0x377BABBCF7F.toString(3,n=1488).split``.map(_=>String.fromCharCode(++n-_))untuk 78 byte. Ini mengembalikan array karakter.
Ismael Miguel

@ IsmaelMiguel Tangkapan bagus ..tapi kami tidak menggunakannya splitdi sini.
Neil

Bagus. Anda dapat memodifikasi versi char-array sedikit untuk mendapatkan _=>String.fromCharCode(...[...0x377babbcf7f.toString(3)].map(c=>++n-c,n=1488)), 1 byte lebih pendek dari 79 byte saat ini.
ETHproduksi

@ ETProduk Bah, saya telah bermain-main dengan String.fromCharCode(...) dan berhasil meyakinkan diri saya bahwa itu akan selalu lebih lama. Bahkan menghemat 4 byte pada solusi basis 2 saya (yang masih 84 byte karena butuh lebih banyak byte untuk memecahkan kode).
Neil

Jika Anda ingin menggunakan pemahaman array, Anda bisa mendapatkan 2 byte dari masing-masing; string _=>String.fromCharCode(...[for(c of 0x377babbcf7f.toString(3,n=1488))++n-c])_=>[for(c of 0x377babbcf7f.toString(3,n=1488))String.fromCharCode(++n-c))
:,

3

05AB1E , 28 * 2-1 = 55 byte

"אבגדהוזחטיכךלמםנןסעפףצץקרשת

Cobalah online!

-1 byte terima kasih kepada Emigna + 28 byte terima kasih kepada DJMCMayhem;).


4
Saya tidak tahu apa yang menggunakan pengkodean 05AB1E, tapi saya sangat ragu itu adalah karakter byte satu dalam apa pun itu.
DJMcMayhem

@DJMcMayhem Saya pikir TIO memiliki bug, karakter-karakter itu tidak ada di CP-1252.
Erik the Outgolfer

@EriktheGolfer Kemungkinan besar ia menggunakan UTF-8 untuk kenyamanan dan kemudian interpreter 05AB1E melakukan konversi internal yang diperlukan. Itulah yang saya lakukan untuk V (yang menggunakan latin1).
DJMcMayhem

@DJMcMayhem Ini dia ditampilkan sebagai UTF-8, tetapi juga mendukung CP-1252, yang dapat Anda gunakan untuk membuat byte Anda lebih rendah. Ini bukan CP-1252 murni, jadi harus dijalankan dengan string UTF-8.
Erik the Outgolfer


2

Scala / Groovy / Python 3, 9 ascii-chars + 27 chars 2-byte = 63 byte

print("אבגדהוזחטיכךלמםנןסעפףצץקרשת")

dengan asumsi UTF-8

Scala, 59 byte

print("ABCDEFGHIJLKMONQPRSUTWVXYZ["map(x=>(x+1423).toChar))

x+1423 sama dengan x-'A'+1488


Polygot, ini berfungsi di Groovy juga; juga, lihat jawaban saya, bytecount tidak aktif.
Guci Gurita Ajaib

1
juga dalam python 3 (juga python 2 tetapi kemudian kurung tidak diperlukan)
user49822

1
@caruscomputing Saya akan berhati-hati dalam mengedit jumlah byte pengguna lain karena Anda menganggap penyandian tertentu. Apakah Anda yakin Scala dapat atau hanya dapat menangani UTF-8? Juga, alfabet Ibrani memiliki 27 huruf, jadi 61 salah atau salah.
Dennis

Opsi pertama juga berfungsi di PHP.
Ismael Miguel


1

C # 6 +, 76 86 82 byte

void f()=>Console.Write("אבגדהוזחטיכךלמםנןסעפףצץקרשת");

Usaha pertama bermain Golf. Apakah saya melakukan ini dengan benar?

EDIT : +6 byte untuk lupa melampirkan dalam suatu fungsi. Terima kasih @Kevin

C # 5 dan versi di bawahnya, 86 82 byte

void f(){Console.Write("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}

Sebenarnya, Anda harus mencetak fungsi atau program lengkap. Jadi void F(){Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}akan valid, atau ()=>{Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}juga saya pikir (meskipun tidak yakin tentang yang terakhir ini). Juga, Anda bisa golf dengan menggunakan .Writebukan .WriteLine. :) Karena itu, selamat datang di PPCG! Anda mungkin menemukan Tip untuk bermain golf di C # menarik untuk dibaca. Selamat menikmati masa tinggal Anda.
Kevin Cruijssen

Anda tahu, Anda bisa menggunakan <s>your text</s>untuk menyerang beberapa teks daripada menggunakan karakter aneh.
Erik the Outgolfer

Saya tidak tahu tentang itu. Pokoknya terima kasih @EriktheGolfer
mengerikan-coder


1

ArnoldC, 112 byte

IT'S SHOWTIME
TALK TO THE HAND "אבגדהוזחטיכךלמםנןסעפףצץקרשת"
YOU HAVE BEEN TERMINATED

1

Tong , 34 byte

Terinspirasi oleh solusi Powershell.

ZYXVWTUSRPQNOMKLJIHGFEDCBA(֏+")(,

TIO


0

BaCon , 57 byte

  • Di sebagian besar BASIC, tanda tanya hanya mewakili PRINT.

  • Sekilas, solusi di bawah ini terlihat seperti 30 byte, tetapi karakter Ibrani membutuhkan 2 byte penyimpanan karena UTF-8. Jadi ada 27 karakter x 2 byte + 1 byte untuk '?' dan 2 byte untuk tanda kutip ganda = 57 byte.

Larutan:

?"אבגדהוזחטיכךלמםנןסעפףצץקרשת"

Coba GW-BASIC dengan BIOS VGA CP862 untuk 30. (Teks yang sama)
Joshua

0

slang , 59 byte

Jawaban yang sangat sederhana ...

t[][אבגדהוזחטיכךלמםנןסעפףצץקרשת]
  • t - ganti fungsi (menggantikan "tidak ada" pada input dengan alfabet ...)

Coba di sini


0

zsh, 25 21 byte

echo ${(j..):-{ת..א}}

Browser saya mengacaukannya: ת harus menjadi huruf pertama, kemudian א. Namun, jika Anda menempel di tempat lain, itu akan berhasil. Versi lama:

for i in {ת..א};printf $i

Tidak valid, karena huruf terakhir dan huruf normal dibalik dalam Unicode
TuxCrafting

Juga, ini sebenarnya 27 byte
TuxCrafting

Oh dan jangkauan sebenarnya harus aleph pertama dan terakhir. Jika string dibalik dalam pertanyaan, itu karena bahasa Ibrani adalah bahasa RTL
TuxCrafting

@ TùxCräftîñg di terminal saya, ini ditampilkan dengan benar hanya dengan taf pertama dan terakhir. Apa maksudmu "huruf terakhir dan huruf normal dibalik dalam Unicode"?
Elronnd

Dalam teks dalam pertanyaan, ada כךmisalnya (normal kaf pertama, final kaf kedua), tetapi dalam Unicode, huruf terakhir sebelum huruf normal ( ךכ), sehingga teks yang dicetak tidak valid. Dan jika itu ditampilkan dengan tav pertama, itu karena bahasa Ibrani adalah bahasa RTL, jadi karakter pertama ditampilkan paling kanan
TuxCrafting

0

Java 7, 85 byte

void c(){System.out.print("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}

Aku bahkan tidak akan repot memposting kode uji atau 'Coba di sini' seperti yang biasanya saya lakukan ..


0

Perl 6 (74)

(map (*+1488).chr,[\+] '122222222230330403230403222'.comb >>->>1.join.say



0

C, 49 byte

f(i){for(i=0x5d0;i<=0x5ea;i++)wprintf(L"%lc",i);}

Beberapa pengguna mungkin perlu menelepon setlocalesebelum menggunakan ini tetapi itu berfungsi dengan baik untuk saya.


Sarankan for(i=1488;putwchar(i++)<1514;);alih-alihfor(i=0x5d0;i<=0x5ea;i++)wprintf(L"%lc",i);
ceilingcat

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.