히브리어 알파벳 출력


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

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

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 ...]prepends 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) 이 교환되었습니다.

오름차순 범위를 취하고 211 , 14 , 16 , 2022 를 더하면 다음에 오는 배열 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 유니 코드는 달리 명시 적으로 지정하지 않는 한 UTF-16이며, 백그라운드에서 모두 UTF-16이므로 문제가 발생합니다.

이것은 단지 리터럴 문자열을 파이프 라인에 넣고 Write-Output프로그램 실행이 끝날 때 기본값 으로 화면에 인쇄합니다.

ASCII 버전을 얻을 수있는 가장 짧은 것은 63입니다.

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

문자열의 ASCII 값 을 가져 와서 각각 에 ABC...추가 하여 적절한 문자열을 얻습니다.1423char


6
ASCII 버전이 영리하기 때문에 상향식입니다. 반드시 ... 지원 ... 영리 ... 골프!
wizzwizz4

1
ASCII 버전에서 실제 알파벳이 아님을 인식하는 데 5 분 이상 걸렸습니다.
caird coinheringaahing

11

05AB1E , 36 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ç?.
Adnan

@Adnan : 물론입니다. 좋은 생각이야!
Emigna

9

Brain-Flak , 172 바이트

이 답변은 여기에 하나의 DJMcMayhem 솔루션을 기반으로 하므로 체크 아웃하는 것이 좋습니다.

DJMcMayhem의 솔루션과 마찬가지로이 -rA플래그를 사용하여 출력을 반전시키고 유니 코드로 인쇄합니다.

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

온라인으로 사용해보십시오!

설명

DJMcMayhem이 제공 한 원래 솔루션에 대해 많은 미세 최적화를 실행 하여이 대답을했습니다. 바이트를 저장하는 동안 이러한 최적화는 코드를 읽을 수없고 알고리즘을 방해합니다. 솔직히 말해서 내 코드가 어떻게 또는 무엇을하는지 이해하지 못합니다.

아마도 언젠가 나는 이것이 어떻게 작동하는지 이해할 것입니다 ...


6

파이썬 3, 50 바이트

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

파일은 CP862 인코딩을 사용하거나 다음 16 진 덤프를 반대로하여 작성해야합니다.

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

이것은 아마도 파이썬 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 바이트이고, 나는 두 개의 명령 행 플래그 4 바이트를 추가 : -r-u

온라인으로 사용해보십시오!

1488 (첫 번째 문자의 코드 포인트)을 밀기위한이 달콤한 방법을 만든 이 멋진 정수 metagolfer에 대한 @Neil 에게 많은 감사

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

설명:

뇌-플래 크에서 많은 수를 밀어내는 것은 상대적으로 어렵습니다. 그러나 숫자를 푸시하는 행위도 그 숫자로 평가되므로, 바이트를 크게 절약하기 위해 동시에 여러 숫자를 푸시 할 수 있습니다. 보다 구체적인 예는 다음과 같습니다. psuedo 코드에서 가장 안쪽 부분 (위에 썼습니다)은

push(1488)

이 표현식은 1488로 평가되므로 전체 내용을 다른 푸시 문으로 묶습니다.

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

나는 +1 인 생각 -r(가) 때문에 -계산하지 않습니다
NoOneIsHere

6
@NoOneIsHere -는 다른 옵션 (예 : perl -e) 에서 이미 존재하는 경우에는 계산되지 않습니다 . Brain-Flak에는 이와 같은 기존 옵션이 없으므로 옵션과 -공간은 모두 총계로 계산됩니다.
Riley


@WheatWizard 내가 그것을 취한다면, 나는 설명을 쓸 수 없을 것입니다. 그것은 나에게 괄호가 뒤죽박죽처럼 보입니다. : P
DJMcMayhem

아주 작은 변화입니다. 방금 두 인스턴스를 ()()()처음 으로 옮겨서 위아래로 올렸습니다.
밀 마법사

4

/// , 27 바이트

ABCDEFGHIQSRTVUXWYbdcfeghiq

온라인으로 사용해보십시오!

출력은 CP424 로 인코딩됩니다 .

직접 확인하려면 :

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

어떤 종류의 코드입니까? 어쨌든 볼 목적으로 UTF-8로 변환해야한다고 생각합니다. 그게 아니라면 반드시 무효라고 : P +1이
에릭 Outgolfer

@EriktheGolfer UTF-8로 변환 할 필요가 없습니다. 도전의 어느 곳에서도 요구되는 것은 아닙니다.
Mego

나는 당신 downvotes를 끌 있다고 생각합니다 . 귀하의 자리에 UTF-8 버전과 원본의 16 진 덤프를 포함 시켰을 것입니다.
Erik the Outgolfer

4

자바 스크립트 (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 덕분에 다른 바이트를 절약했습니다. 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). 이것을와 결합하면 78 바이트를 .map()할 수 있습니다 _=>0x377BABBCF7F.toString(3,n=1488).split``.map(_=>String.fromCharCode(++n-_)). 문자 배열을 반환합니다.
Ismael Miguel

@IsmaelMiguel 멋진 캐치 ..이지만 우리는 split여기서 사용하지 않습니다 .
Neil

좋은. char 배열을 약간 수정 _=>String.fromCharCode(...[...0x377babbcf7f.toString(3)].map(c=>++n-c,n=1488))하여 현재 79 바이트보다 1 바이트 더 짧은 을 얻을 수 있습니다.
ETHproductions

@ETHproductions Bah, 나는 함께 놀았고 String.fromCharCode(...)그것이 항상 더 길다는 것을 스스로 확신 시켰습니다. 사실 그것은 내 기본 2 솔루션에서 4 바이트를 저장합니다 (디코딩하는 데 더 많은 바이트가 필요하기 때문에 여전히 84 바이트입니다).
Neil

배열 이해를 기꺼이 사용하려는 경우 각각 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에는 해당 문자가 없습니다.
Outgolfer Erik

@EriktheGolfer 대부분 편의상 UTF-8을 사용한 다음 05AB1E 인터프리터가 필요한 내부 변환을 수행합니다. 그것이 V (라틴 1을 사용)에 대해하는 일입니다.
DJMcMayhem

@DJMcMayhem 여기에 UTF-8로 표시되지만 CP-1252도 지원하므로 바이트 수를 낮추는 데 사용할 수 있습니다. 이것은 순수한 CP-1252는 아니지만 UTF-8 문자열로 실행해야합니다.
Outgolfer Erik


2

스칼라 / 그루비 / 파이썬 3, 9 ASCII 문자 + 27 2 바이트 문자 = 63 바이트

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

UTF-8 가정

스칼라, 59 바이트

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

x+1423 와 같다 x-'A'+1488


Polygot, 그것은 Groovy에서도 작동합니다. 또한, 내 대답을 참조하십시오. 바이트 수가 꺼져 있습니다.
매직 문어 Urn

1
또한 파이썬 3에서도 (파이썬 2도 있지만 괄호가 필요하지 않습니다)
user49822

1
@caruscomputing 특정 인코딩을 가정하기 때문에 다른 사용자의 바이트 수를 편집하는 것에주의해야합니다. 스칼라가 UTF-8 만 처리 할 수 ​​있거나 처리 할 수 ​​있습니까? 또한 히브리어 알파벳에는 27 개의 문자가 있으므로 61 가지가 잘못되었습니다.
Dennis

첫 번째 옵션은 PHP에서도 작동합니다.
Ismael Miguel


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 #을에 골프에 대한 팁을 통해 읽는 재미. 체류를 즐길 수.
Kevin Cruijssen

<s>your text</s>이상한 문자를 사용하는 대신 텍스트를 사용할 수 있습니다 .
Outgolfer Erik

나는 그것에 대해 몰랐다. 어쨌든 감사합니다 @EriktheGolfer
끔찍한 인코더


1

ArnoldC, 112 바이트

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

1

케그 , 34 바이트

Powershell 솔루션에서 영감을 얻었습니다.

ZYXVWTUSRPQNOMKLJIHGFEDCBA(֏+")(,

TIO


0

베이컨 , 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

최종 문자와 일반 문자가 유니 코드로 반전되기 때문에 유효하지 않습니다.
TuxCrafting

또한 실제로 27 바이트입니다
TuxCrafting

아, 그리고 그 범위는 실제로 가장 먼저 알프해야하고 tav는 마지막이어야합니다. 문자열이 질문에 반대하는 경우 히브리어는 RTL 언어입니다 때문입니다
TuxCrafting

내 터미널에서 @ TùxCräftîñg, 그것은 taf 먼저 올림 프 마지막으로 올바르게 표시됩니다. "최종 문자와 일반 문자가 유니 코드로 반전된다"는 것은 무엇을 의미합니까?
Elronnd

질문의 텍스트에는 כך예를 들어 (일반 kaf 첫 번째, 마지막 kaf 두 번째) 있지만 유니 코드에서는 마지막 문자가 일반 문자 ( ךכ) 앞에 있기 때문에 인쇄 된 텍스트가 유효하지 않습니다. 처음 TAV로 표시하는 경우 히브리어는 RTL 언어이기 때문에 첫 번째 문자가 오른쪽에 표시되도록, 그것은,의
TuxCrafting

0

자바 7, 85 바이트

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

테스트 코드를 게시하거나 평소처럼 '여기 사용해보기'를 귀찮게하지 않을 것입니다.


0

펄 6 (74)

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



0

C, 49 바이트

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

일부 사용자는 setlocale이것을 사용하기 전에 전화해야 할 수도 있지만 나에게 잘 작동했습니다.


for(i=1488;putwchar(i++)<1514;);대신 추천for(i=0x5d0;i<=0x5ea;i++)wprintf(L"%lc",i);
ceilingcat

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.