İbranice alfabesini çıktı


24

Görevin bu tam metni yazdırmaktır:

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

(Takip eden bir yeni satır yazdırmanıza izin verilir)

Metnin UTF-8 kodlamasını SHA256 karması:

0ab6f1e0bf216a0db52a4a5a247f95cba6f51496de7a24dfd01f3985dfcf6085

Base64 kodlaması:

15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq

kurallar

  • Bu metni çıkaran bir yerleşik kullanamazsınız.
  • Standart boşluklara izin verilmez.
  • Bu , bu yüzden en kısa cevap kazanır.

İyi şanslar!


5
Kod noktalarının doğrudan sıralanmadığını fark ettim. Sende var 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. İbranice hakkında fazla bir şey bilmiyorum, bu yüzden bunun gerçekten kasıtlı olduğunu onaylar mısın?
DJMcMayhem

11
@DJMcMayhem Unicode normal harflerden önceki son harfleri listeler ancak söz konusu metindeki normal harflerden önce listelenir. Gerçekten kasıtlı değildi, ama en azından sıkıcı olmayan cevapları cesaretlendirdiprint(map(chr, range(x, y)))
TuxCrafting

6
מדברי מדבר עברית!
OldBunny2800 22:16

6
Aleph null, aleph one, aleph 2, ...
Kritixi Lithos 22:16

2
@Angs Bunun nedeni gerçekten eşleşmemesi. echo 15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq | base64 -d | sha256sumüretir f1d4b9c12a197912a4bdb80fb3e4d3fad5a0d9b7edd243fae7b2ab3450618036.
hvd

Yanıtlar:


25

MATLAB, 52 51 bayt

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

Örnek kullanım:

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

açıklama

'CCCCCCCCCDADDAEADCDAEADCCC'-66[1 1 ... -1 2 1 1 1]istenen karakterlerin kod noktaları arasındaki ardışık farkları içeren diziyi üretir .

[1488 ...]hazırlar 1488, yani dizi şimdi [1488 1 1 ... -1 2 1 1 1].

cumsum(...)kümülatif toplamını hesaplar: [1488 1489 ... 1514].

[... '']boş dizeyle birleşir. Bu char'e dönüştürme etkisine sahiptir (ve bundan bir bayt daha kısadır char(...))


19

Jelly , 22 21 20 bayt

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

Çevrimiçi deneyin!

Fikir

Her kod noktasından 1487 çıkarırsak , ardından R dizisini alırız .

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

Yani sadece aralık var 1'e kadar 27 değil artan düzende; (11, 12) , (14, 15) , (16, 17) , (20, 21) ve (22, 23) çiftleri değiştirilmiştir.

Yükselen aralığı seçip 2 - 11 , 14 , 16 , 20 ve 22 eklersek , bunun ardından A dizisini alırız .

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

Bu artık aralığın bir permutasyonu değildir, ancak aralığı o dizideki değerlere göre kararlı bir şekilde sıralarsak, orijinal diziyi yeniden yapılandırabiliriz.

kod

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 bayt (UTF-16)

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

PowerShell Unicode, aksi açıkça belirtilmedikçe UTF-16'dır ve arka planda hepsi UTF-16 olduğu için yine de bir crapshoot'tur.

Bu sadece değişmez dizgiyi boru hattına yerleştirir ve Write-Outputprogramın sonunda varsayılan değer onu ekrana yazdırır.

ASCII sürümünü alabileceğim en kısa 63

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

Hangi dize ASCII değerini alır ve uygun dize almak için her birine ABC...ekler .1423char


6
Yalnızca ASCII sürümünüz akıllı olduğundan dolayı oy verildi. Olmalı ... destek ... zekice ... golf!
wizzwizz4 21:16

1
ASCII sürümündeki asıl alfabe olmadığını fark etmem en az 5 dakika sürdü.
caird coinheringaahing

11

05AB1E , 36 29 26 25 23 bayt

Adnan sayesinde 2 bayt kaydedildi

CP-1252 kodlamasını kullanır .

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

Çevrimiçi deneyin!

açıklama

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

Bir taban 5 numara olarak büyük sayıda yorumlama iki bayt kaydeder: 1488•’ÉÇW–moû•5Bvy<+Dç?.
Adnan,

@Adnan: Ah, elbette. Harika düşünce!
Emigna

9

Brain-Flak , 172 bayt

Bu cevap, büyük ölçüde bir DJMcMayhem'in çözümüne dayanıyor, bu yüzden kontrol etmenizi öneririm .

DJMcMayhem'in çözümü gibi bu da -rAçıktıyı tersine çevirmek ve unicode'a yazdırmak için bayrağı kullanır .

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

Çevrimiçi deneyin!

açıklama

Bu cevabı DJMcMayhem tarafından sağlanan orijinal çözüm üzerinde bir dizi mikro optimizasyon çalıştırarak yaptım. Bu optimizasyonlar baytları kaydederken kodu okunaksız hale getirir ve algoritma geniş tutar. Dürüst olmak gerekirse, kodumun nasıl veya ne yaptığını gerçekten anlamıyorum.

Belki bir gün bunun nasıl çalıştığını anlayacağım ...


6

Python 3, 50 bayt

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

Dosyanın CP862 kodlaması kullanılarak veya aşağıdaki hexdump değerini tersine çevirerek yaratılması gerekir.

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                                            ')

Bu muhtemelen Python 2'ye aktarılmış olabilir (bu nedenle iki byte tasarruf eder), ancak bunu test etmek için uygun yerel ayarlara sahip değilim. Python 3, alfabenin UTF-8 kodlu sürümünü (veya geçerli yerel ayar için uygun olanı) dikkatlice yazdırır.

Doğrulama

$ 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 bayt

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

Çevrimiçi deneyin!

Nasıl çalışır

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 bayt

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

Bu kod 182 byte uzunluğundadır ve iki komut satırı bayrakları için 4 bayt eklendi: -rve-u

Çevrimiçi deneyin!

1488 (ilk karakterin kod noktası) olan bu güzel yolu yaratan bu müthiş tamsayı metagolfer için @Neil'e çok teşekkürler

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

Açıklama:

Beyin flakasında çok sayıda itme nispeten zordur. Bununla birlikte, bir sayıyı itme eylemi de bu sayıyı değerlendirdiği için, büyük miktarda bayt tasarrufu için aynı anda birkaç sayıyı zorlayabiliriz. İşte daha somut bir örnek. Psuedo kodundaki en iç kısım (yukarıda yazdığım)

push(1488)

Bu ifade 1488 olarak değerlendirilir, bu yüzden her şeyi başka bir push ifadesine sardık:

push(push(1488) + 1)

Bu , 1488 ve 1489’u zorlar ve 1489’u değerlendirir.

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

1488, 1489 ve 1490’ı zorlayan ve 1490’ı değerlendiren bu sayı. Bu adımı, basmamız gereken her sayı için tekrarlayın.

Ancak, artışlar her zaman 1 olmadığından, bundan biraz daha karmaşıktır. İşte daha okunabilir bir versiyon:

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

Bunun için +1 olduğunu düşündüm -rçünkü -sayılmaz
NoOneIsHere

6
@ NoOneIsHere -farklı bir seçenekten zaten mevcutsa sayılmaz (örneğin perl -e). Brain-Flak böyle bir seçeneğe sahip değil, o yüzden -seçenek ve sonuçta toplam alan için geçerli olan alan.
Riley

Sadece küçük bir gelişme brain-flak.tryitonline.net/…
Buğday Sihirbazı

@WheatWizard Bunu alacak olsaydım, bir açıklama yazamazdım. Bana bir parça karışık parantez gibi geldi. : P
DJMcMayhem

Çok küçük bir değişiklik. Ben sadece iki örneği ()()()başlangıcına taşıdım ve aşağı ve yukarı koydum.
Buğday Sihirbazı

4

/// , 27 bayt

ABCDEFGHIQSRTVUXWYbdcfeghiq

Çevrimiçi deneyin!

Çıkış CP424'te kodlanmıştır .

Kendiniz doğrulamak için:

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

Bu ne biçim bir kod? Ben yine de görüntüleme amacıyla UTF-8'e dönüştürülmesi gerektiğini düşünüyorum. Mutlaka geçersiz olması gerekmiyor: P +1
Outgolfer Erik

@EriktheGolfer Bunu UTF-8'e dönüştürmeye gerek yok. Bu, mücadelenin hiçbir yerinde bir gereklilik değildir.
Mego

Ne düşündüğünü olabilir daha sonra downvotes çekmek. Lütfen, sizin yerinize UTF-8 versiyonunu ve orjinalinin
hexdump'ını dahil edeceğimi unutmayın

4

JavaScript (ES6), 59 bayt

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

ASCII'de yapabileceğim en iyi 80 79 78 bayt:

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

Bir karakter dizisi kabul edilebilirse, 75 bayt:

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

Düzenleme: @IsmaelMiguel sayesinde bazı baytlar kaydedildi. @ETHproductions sayesinde başka bir bayt kaydedildi. Firefox 30-57 kullanıyorsanız, jeneratör veya dizi anlamalarını kullanan @ETHproductions sayesinde 2 bayttan daha tasarruf edebilirsiniz:

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

Kullanarak ASCII alternatifinize bir bayt kaydedebilirsiniz 0x377BABBCF7F.toString(3). Bunu bir araya getirerek 78 bayt için .map()yapabilirsiniz _=>0x377BABBCF7F.toString(3,n=1488).split``.map(_=>String.fromCharCode(++n-_)). Bir karakter dizisi döndürür.
Ismael Miguel,

@IsmaelMiguel Güzel yakalamak ..ama biz splitburada kullanmıyoruz .
Neil

Güzel. Karakter dizisi sürümünü _=>String.fromCharCode(...[...0x377babbcf7f.toString(3)].map(c=>++n-c,n=1488))geçerli 79 bayttan 1 bayt daha kısa olacak şekilde hafifçe değiştirebilirsiniz .
ETHProductions,

@ETHproductions Bah, ben onunla oynamıştım String.fromCharCode(...)ve kendimi daima daha uzun olacağına ikna etmeyi başardım. Aslında benim temel 2 çözümümde 4 byte tasarruf sağlıyor (bu hala kodu 84 byte, çünkü kodu çözmek daha fazla byte alıyor).
Neil

Dizi kavramalarını kullanmak istiyorsanız, her birinde 2 bayt alabilirsiniz; string:, _=>String.fromCharCode(...[for(c of 0x377babbcf7f.toString(3,n=1488))++n-c])char-array:_=>[for(c of 0x377babbcf7f.toString(3,n=1488))String.fromCharCode(++n-c))
ETHproductions 22:16 '

3

05AB1E , 28 * 2-1 = 55 bayt

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

Çevrimiçi deneyin!

DJMCMayhem; Emigna + 28 bayt sayesinde -1 bayt;).


4
05AB1E kodlamasının ne kullandığını bilmiyorum, ama bunların ne olursa olsun bir bayt karakteri olduğundan şüpheliyim.
DJMcMayhem

@DJMcMayhem TIO'nun bir hatası olduğunu düşünüyorum, bu karakterler CP-1252'de mevcut değil.
Outgolfer Erik,

@EriktheGolfer Muhtemelen kolaylık sağlamak için UTF-8 kullanır ve ardından 05AB1E yorumlayıcısı gerekli dahili dönüştürmeyi yapar. V için yaptığım şey (latin1 kullanıyor).
DJMcMayhem

@DJMcMayhem Burada UTF-8 diye düşünüyorum, ancak bayt sayınızı düşürmek için kullanabileceğiniz CP-1252'yi de destekliyor. Bu saf CP-1252 değil, bu yüzden UTF-8 dizeleriyle çalıştırılmalıdır.
Outgolfer Erik,


2

Scala / Groovy / Python 3, 9 ascii karakter + 27 2 bayt karakter = 63 bayt

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

UTF-8 varsayarak

Scala, 59 bayt

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

x+1423 aynıdır x-'A'+1488


Polygot, Groovy'de de çalışıyor; Ayrıca, cevabımı gör, bytecount kapalı.
Magic Octopus Urn

1
Ayrıca piton 3'te (aynı zamanda piton 2 ama sonra parantez gerekli değildir)
user49822

1
@ caruscomputing Belli bir kodlamayı üstlendiğiniz için başka bir kullanıcının bayt sayısını düzenlemeye dikkat ederim. Scala'nın sadece UTF-8'i idare edebileceğinden veya kullanabileceğinden emin misin? Ayrıca, İbranice alfabe 27 harflidir, yani 61 tanesi bir şekilde yanlış.
Dennis,

İlk seçenek PHP'de de çalışır.
Ismael Miguel,


1

C # 6 +, 76 86 82 bayt

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

Golfe ilk girişimi. Bunu doğru yapıyorum mu?

DÜZENLE : Bir işleve alınmayı unutmak için +6 bayt. Teşekkürler @Kevin

C # 5 ve altındaki versiyon, 86 82 bayt

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

Aslında, bir işlevi veya tam bir programı yazdırmalısınız. Bu yüzden void F(){Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}geçerli olur ya ()=>{Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}da bence de (bu sonuncusu hakkında emin değilim). Ayrıca, .Writeyerine kullanarak golf yapabilirsiniz .WriteLine. :) Bu söyleniyor, PPCG'ye hoş geldiniz! Golf için İpuçları C # okumak için ilginç bulabilirsiniz . Kaldınız.
Kevin Cruijssen

Bilirsin, <s>your text</s>garip karakterler kullanmak yerine bir metnin üstüne vurmak için kullanabilirsiniz .
Outgolfer Erik,

Bunun farkında değildim. Neyse teşekkürler @EriktheGolfer
korkunç kodlayıcı


1

ArnoldC, 112 bayt

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

1

fıçı , 34 bayt

Bir Powershell çözümünden ilham alındı.

ZYXVWTUSRPQNOMKLJIHGFEDCBA(֏+")(,

TIO


0

BaCon , 57 bayt

  • Çoğu TEMEL'de soru işareti sadece BASKI öğesini temsil eder.

  • İlk bakışta, aşağıdaki çözüm 30 bayt gibi görünüyor, ancak İbranice karakterlerin UTF-8 nedeniyle 2 baytlık depolamaya ihtiyacı var. Yani '?' İçin 27 karakter x 2 bayt + 1 bayt var. ve çift tırnak için 2 bayt = 57 bayt.

Çözüm:

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

GW-BASIC'i 30 için CP862 VGA BIOS ile deneyin. (Aynı metin)
Joshua

0

s-lang , 59 bayt

Gerçekten basit cevap ...

t[][אבגדהוזחטיכךלמםנןסעפףצץקרשת]
  • t - fonksiyonu değiştir (girişteki "hiçbir şey" i alfabeyle değiştirir ...)

Burada dene


0

zsh, 25 21 bayt

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

Tarayıcım karıştırıyor: ת ilk harf, sonra א olmalı. Başka bir yere yapıştırırsanız, çalışması gerekir. Eski versiyon:

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

Geçersiz, çünkü son harfler ve normal harfler Unicode
TuxCrafting

Ayrıca, aslında 27 byte
TuxCrafting

Oh ve aralık aslında önce aleph ve en son tav olmalıdır. Dize soru tersine çevrilmişse, İbranice bir RTL dili olduğu için
TuxCrafting

@ TùxCräftîñg terminalimde, sadece ilk önce en son bir taf ile doğru şekilde görüntüleniyor. "Son harfler ve normal harfler Unicode'da ters çevrilmiştir" derken ne demek istiyorsunuz?
Elronnd

Söz konusu metinde, כךörneğin (önce normal kaf önce, son kaf ikinci), ancak Unicode'da, son harfler normal harflerden önce ( ךכ) olduğundan, basılan metin geçersiz. Ve önce tav ile gösteriliyorsa, İbranice bir RTL dili olduğu için ilk karakter hemen görüntülenir
TuxCrafting 22:16

0

Java 7, 85 bayt

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

Genelde yaptığım gibi test kodunu veya 'Burada dene' yazısını bile sıkmayacağım.


0

Perl 6 (74)

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



0

C, 49 bayt

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

Bazı kullanıcıların setlocalebunu kullanmadan önce araması gerekebilir, ancak bu benim için iyi çalıştı.


Öner for(i=1488;putwchar(i++)<1514;);yerinefor(i=0x5d0;i<=0x5ea;i++)wprintf(L"%lc",i);
ceilingcat

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.