ヘブライ語のアルファベットを出力する


24

あなたの仕事はこの正確なテキストを印刷することです:

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

(末尾の改行を印刷できます)

テキストのUTF-8エンコードのSHA256ハッシュ:

0ab6f1e0bf216a0db52a4a5a247f95cba6f51496de7a24dfd01f3985dfcf6085

Base64エンコード:

15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq

ルール

  • このテキストを出力する組み込みを使用することはできません。
  • 標準の抜け穴は許可されていません。
  • これはなので、最短の答えが勝ちです。

がんばろう!


5
コードポイントが直接順番に並んでいないことに気付きました。あなたが持ってい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ます。ヘブライ語についてはあまり知りませんが、これが本当に意図的なものであることを確認できますか?
DJMcMayhem

11
@DJMcMayhem Unicodeは、通常の文字の前に最終文字をリストしますが、質問のテキストでは、通常の文字が前にリストされます。それは本当に意図的なものではありませんでしたが、少なくともそれは退屈ではない答えを奨励していますprint(map(chr, range(x, y)))
-TuxCrafting

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


2
@Angsそれは実際には一致しないためです。echo 15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq | base64 -d | sha256sumを生成しf1d4b9c12a197912a4bdb80fb3e4d3fad5a0d9b7edd243fae7b2ab3450618036ます。
hvd

回答:


25

MATLAB、52 51バイト

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

使用例:

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

説明

'CCCCCCCCCDADDAEADCDAEADCCC'-66[1 1 ... -1 2 1 1 1]目的の文字のコードポイント間の連続した差異を含む配列を生成します。

[1488 ...]先頭に追加1488するため、配列は[1488 1 1 ... -1 2 1 1 1]

cumsum(...)累積合計を計算します[1488 1489 ... 1514]

[... '']空の文字列と連結します。これは、charに変換する効果があります(およびの長さより1バイト短くなりますchar(...)


19

ゼリー22 21 20 バイト

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

オンラインでお試しください!

アイディア

各コードポイントから1487を引くと、次の配列Rが得られます。

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

これは1から27までの範囲ですが、昇順ではありません。ペア(11、12)(14、15)(16、17)(20、21)、および(22、23)が交換されました。

私たちは、昇順の範囲をとり、追加した場合は211141620、および22、我々は、配列の取得Aは以下。

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

これはもはや範囲の順列ではありませんが、その配列内の値で範囲を安定してソートすれば、元の配列を再構築できます。

コード

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バイト(UTF-16)

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

PowerShell Unicodeは、特に明示的に指定されていない限りUTF-16であり、バックグラウンドではすべてUTF-16であるため、とにかく問題です。

これは、リテラル文字列をパイプラインに配置するだけWrite-Outputで、プログラム実行の最後のデフォルトでは画面に表示されます。

ASCIIバージョンを取得できる最短は63です

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

これは、文字列のASCII値を取得し、それぞれにABC...追加1423charて適切な文字列を取得します。


6
あなたのASCIIバージョンが賢いという理由だけで支持されました。マスト...サポート...賢い...ゴルフ!
wizzwizz4

1
ASCIIバージョンの実際のアルファベットではないことに気づくまでに少なくとも5分かかりました。
コイアリンガーをケアします。

11

05AB1E36 29 26 25 23バイト

Adnanのおかげで2バイト節約

CP-1252エンコードを使用します。

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

オンラインでお試しください!

説明

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

大きな数値を基数5の数値として解釈すると、2バイト節約できます1488•’ÉÇW–moû•5Bvy<+Dç?
アドナン

@アドナン:もちろんです。素晴らしい思考!
エミグナ

9

Brain-Flak、172バイト

この回答は、主にDJMcMayhemのソリューションの 1つに基づいているため、チェックアウトすることをお勧めします。

DJMcMayhemのソリューションと同様、これは-rAフラグを使用して出力を反転し、ユニコードに出力します。

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

オンラインでお試しください!

説明

この答えは、DJMcMayhemが提供する元のソリューションに対して多数のマイクロ最適化を実行することで実現しました。バイトを節約しながらこれらの最適化を行うと、コードが判読不能になり、アルゴリズムが曖昧になります。私は、正直に言うと、私のコードがどのように、または何をするのかを本当に理解していません。

おそらくいつか私はこれがどのように機能するかを理解するでしょう...


6

Python 3、50バイト

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

ファイルは、CP862エンコードを使用して、または次のhexdumpを逆にして作成する必要があります。

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

これはおそらくPython 2に移植できます(したがって2バイトを節約できます)が、テストするための適切なロケールがありません。Python 3は、UTF-8でエンコードされたバージョン(または現在のロケールに適したバージョン)を忠実に印刷します。

検証

$ 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バイト

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

オンラインでお試しください!

使い方

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バイト

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

このコードは、182バイト長であり、そしてIは、2つのコマンドラインフラグの4つのバイトを追加しました:-rそして-u

オンラインでお試しください!

1488(最初の文字のコードポイント)をプッシュするこの甘い方法を作成したこの素晴らしい整数メタゴルファに@Neilに感謝します。

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

説明:

Brain-flakで多数をプッシュすることは比較的困難です。ただし、数値をプッシュする動作もその数値に評価されるため、バイトを大幅に節約するために同時に複数の数値をプッシュできます。より具体的な例を次に示します。擬似コードの最も内側の部分(上で書いた部分)は

push(1488)

この式は1488と評価されるため、別のpushステートメントで全体をラップします。

push(push(1488) + 1)

これにより1488 および 1489がプッシュされ 1489に評価されます。したがって、これをラップします。

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

1488、1489、1490をプッシュし、1490に評価します。プッシュする必要のある各番号に対してこの手順を繰り返します。

ただし、増分は常に1とは限らないため、それよりも少し複雑です。より読みやすいバージョンは次のとおりです。

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

がカウントされない-rので+1だと思った-
-NoOneIsHere

6
@NoOneIsHere -は、別のオプション(perlなど-e)から既に存在する場合はカウントしません。Brain-Flakにはそのような既存のオプションがないため-、オプション、スペースはすべて合計にカウントされます。
ライリー


@WheatWizardもしそれを取れば、説明を書くことができません。それはちょうど私にとってはごちゃごちゃになった混乱のように見えます。:P
DJMcMayhem

その非常に小さな変化。の2つのインスタンスを()()()最初に移動し、上下に配置しました。
小麦ウィザード

4

///、27バイト

ABCDEFGHIQSRTVUXWYbdcfeghiq

オンラインでお試しください!

出力はCP424でエンコードされます

自分で確認するには:

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

これはどのようなコードですか?とにかく見るためにUTF-8に変換する必要があると思います。必ずしも無効ではないというわけではありません。Pに+1があります
Erik the Outgolfer

@EriktheGolfer UTF-8に変換する必要はありません。これは、チャレンジのどこでも必要なことではありません。
メゴ

私はあなたを思う 下票を引き付けるかもしれません。それを注意してください、あなたの場所で、私はUTF-8バージョンとオリジナルのhexdumpが...含まれているだろう
エリックOutgolfer

4

JavaScript(ES6)、59バイト

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

ASCIIでできることは80 79 78バイトでした。

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

文字配列が受け入れられる場合、75バイト:

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

編集:@IsmaelMiguelのおかげで数バイト節約できました。@ETHproductionsのおかげでもう1バイト節約できました。Firefox 30-57を使用する場合、ジェネレーターまたは配列内包表記を使用する@ETHproductionsのおかげで、さらに2バイト節約できます。

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

を使用して、ASCII代替のバイトを保存できます0x377BABBCF7F.toString(3)。これとを組み合わせて.map()_=>0x377BABBCF7F.toString(3,n=1488).split``.map(_=>String.fromCharCode(++n-_))78バイトで実行できます。文字の配列を返します。
イスマエルミゲル

@IsmaelMiguelナイスキャッチし..ますがsplit、ここでは使用しません。
ニール

いいね _=>String.fromCharCode(...[...0x377babbcf7f.toString(3)].map(c=>++n-c,n=1488))現在の79バイトよりも1バイト短くなるように、char-arrayバージョンをわずかに変更できます。
ETHproductions

@ETHproductions Bah、私はいじくり回しString.fromCharCode(...)、それが常にもっと長くなることを自分自身に納得させることができました。実際、ベース2ソリューションで4バイトを節約できます(デコードにさらにバイトが必要なため、84バイトのままです)。
ニール

配列内包表記を使用する場合は、それぞれから2バイトを取得できます。文字列:_=>String.fromCharCode(...[for(c of 0x377babbcf7f.toString(3,n=1488))++n-c])、文字配列:_=>[for(c of 0x377babbcf7f.toString(3,n=1488))String.fromCharCode(++n-c))
ETHproductions

3

05AB1E、28 * 2-1 = 55バイト

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

オンラインでお試しください!

Emignaのおかげで-1バイト+ DJMCMayhemのおかげで28バイト;)。


4
05AB1Eがどのエンコーディングを使用しているかはわかりませんが、どのようなものでも1バイト文字であるとは思えません。
DJMcMayhem

@DJMcMayhem TIOにはバグがあると思います。これらの文字はCP-1252には存在しません。
エリックアウトゴルファー

@EriktheGolferほとんどの場合、利便性のためにUTF-8を使用し、05AB1Eインタープリターが必要な内部変換を行います。それは私がV(latin1を使用)に対して行うことです。
DJMcMayhem

@DJMcMayhemここではUTF-8と表示されていますが、CP-1252もサポートしています。CP-1252を使用すると、バイト数を減らすことができます。ただし、これは純粋なCP-1252ではないため、UTF-8文字列を使用して実行する必要があります。
エリックアウトゴルファー


2

Scala / Groovy / Python 3、9 ascii-chars + 27 2バイトchars = 63バイト

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

UTF-8を想定

Scala、59バイト

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

x+1423 と同じです x-'A'+1488


Polygot、Groovyでも機能します。また、私の答えを参照してください、バイトカウントはオフです。
魔法のタコ

1
python 3でも(python 2でもカッコは必要ありません)
-user49822

1
@caruscomputing特定のエンコーディングを想定しているため、他のユーザーのバイトカウントを編集するのは慎重になります。ScalaはUTF-8しか処理できないのですか?また、ヘブライ語のアルファベットには27文字あるため、61文字は間違っています。
デニス

最初のオプションはPHPでも機能します。
イスマエルミゲル


1

C#6 +、76 86 82バイト

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

ゴルフの最初の試み。これは正しいことですか?

編集:関数で囲むことを忘れるための+6バイト。ありがとう@Kevin

C#5以前のバージョン、86 82バイト

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

実際には、関数または完全なプログラムを印刷する必要があります。だからvoid F(){Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}、有効であるか()=>{Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}、私も思う(ただし、この最後のものについてはわからない)。また、の.Write代わりにを使用してゴルフをすることもできます.WriteLine。:)とはいえ、PPCGへようこそ!C#でゴルフをするためのヒントは、読み通すのが面白いかもしれません。滞在を楽しんで。
ケビンCruijssen

<s>your text</s>変な文字を使用する代わりに、テキストを打つために使用できます。
エリックアウトゴルファー

私はそれを知りませんでした。とにかく@EriktheGolfer
ひどいコーダー


1

ArnoldC、112バイト

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

1

、34バイト

Powershellソリューションに触発されました。

ZYXVWTUSRPQNOMKLJIHGFEDCBA(֏+")(,

TIO


0

BaCon、57バイト

  • ほとんどのBASICでは、疑問符は単にPRINTを表します。

  • 一見したところ、以下のソリューションは30バイトのように見えますが、ヘブライ語の文字にはUTF-8のために2バイトのストレージが必要です。したがって、「?」には27文字x 2バイト+ 1バイトがあります。二重引用符の場合は2バイト= 57バイト。

溶液:

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

30のCP862 VGA BIOSでGW-BASICを試してください。(同じテキスト)
ジョシュア


0

zsh、25 21バイト

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

私のブラウザはそれを台無しにしています:תが最初の文字、次にאでなければなりません。ただし、他の場所に貼り付けると、動作するはずです。古いバージョン:

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

無効、最終文字と通常の文字はUnicodeで逆転しているので
TuxCrafting

また、それは実際には27のバイトだ
TuxCrafting

ああ、実際には範囲は最初にアレフであり、最後にタバでなければなりません。文字列が質問に逆転されている場合は、ヘブライ語は、RTL言語であるので、それはだ
TuxCrafting

私の端末の@TùxCräftîñgでは、tafが最初でアレフが最後である場合にのみ正しく表示されます。「最後の文字と通常の文字がUnicodeで反転します」とはどういう意味ですか?
エルロンド

質問のテキストにはכך、たとえば(通常のkafが最初、最後のkafが2番目)がありますが、Unicodeでは、最後の文字が通常の文字(ךכ)の前にあるため、印刷されたテキストは無効です。そして、最初にtavで表示するのは、ヘブライ語がRTL言語であるためです。そのため、最初の文字が右端に表示されます
TuxCrafting

0

Java 7、85バイト

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

私がいつもするように、テストコードや「ここで試してみる」ことを気にすることすらありません。


0

Perl 6(74)

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



0

C, 49 bytes

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

Some users may need to call setlocale before using this but it worked fine for me.


Suggest for(i=1488;putwchar(i++)<1514;); instead of for(i=0x5d0;i<=0x5ea;i++)wprintf(L"%lc",i);
ceilingcat

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.