Xuất bảng chữ cái tiếng Do Thái


24

Nhiệm vụ của bạn là in văn bản chính xác này:

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

(Bạn được phép in một dòng mới)

Băm SHA256 của mã hóa UTF-8 của văn bản:

0ab6f1e0bf216a0db52a4a5a247f95cba6f51496de7a24dfd01f3985dfcf6085

Mã hóa Base64:

15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq

Quy tắc

  • Bạn không thể sử dụng nội dung xuất ra văn bản này.
  • Sơ hở tiêu chuẩn là không được phép.
  • Đây là , vì vậy câu trả lời ngắn nhất sẽ thắng.

Chúc may mắn!


5
Tôi nhận thấy các điểm mã không trực tiếp theo thứ tự. Bạn có 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. Tôi không biết nhiều về tiếng Do Thái, vì vậy bạn có thể xác nhận đây thực sự là cố ý không?
DJMcMayhem

11
@DJMcMayhem Unicode liệt kê các chữ cái cuối cùng trước các chữ cái bình thường nhưng trong văn bản trong câu hỏi các chữ cái bình thường được liệt kê trước. Điều đó không thực sự có chủ ý, nhưng ít nhất nó cũng khuyến khích những câu trả lời không nhàm chán nhưprint(map(chr, range(x, y)))
Thiền lập

6
אנ ת!
OldBunny2800

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

2
@Angs Đó là vì nó thực sự không phù hợp. echo 15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq | base64 -d | sha256sumsản xuất f1d4b9c12a197912a4bdb80fb3e4d3fad5a0d9b7edd243fae7b2ab3450618036.
hvd

Câu trả lời:


25

MATLAB, 52 51 byte

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

Ví dụ sử dụng:

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

Giải trình

'CCCCCCCCCDADDAEADCDAEADCCC'-66tạo ra mảng [1 1 ... -1 2 1 1 1], chứa các khác biệt liên tiếp giữa các điểm mã của các ký tự mong muốn.

[1488 ...]trả trước 1488, vì vậy các mảng là bây giờ [1488 1 1 ... -1 2 1 1 1].

cumsum(...)tính tổng tích lũy : [1488 1489 ... 1514].

[... '']nối với chuỗi rỗng. Điều này có tác dụng chuyển đổi thành char (và ngắn hơn một byte char(...))


19

Thạch , 22 21 20 byte

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

Hãy thử trực tuyến!

Ý kiến

Nếu chúng ta trừ 1487 từ mỗi điểm mã, chúng ta sẽ nhận được mảng R theo sau.

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

Đó chỉ là phạm vi từ 1 đến 27 , nhưng không theo thứ tự tăng dần; các cặp (11, 12) , (14, 15) , (16, 17) , (20, 21)(22, 23) đã được hoán đổi.

Nếu chúng ta lấy phạm vi tăng dần và thêm 2 đến 11 , 14 , 16 , 2022 , chúng ta sẽ nhận được mảng A theo sau.

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

Đây không còn là hoán vị của phạm vi, nhưng nếu chúng ta sắp xếp ổn định phạm vi theo các giá trị trong mảng đó, chúng ta có thể xây dựng lại mảng ban đầu.

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 là UTF-16 trừ khi được chỉ định rõ ràng theo cách khác, và dù sao đó cũng là một crapshoot vì tất cả đều là UTF-16 trong nền.

Điều này chỉ đặt chuỗi ký tự trên đường ống và mặc định Write-Output ở cuối thực hiện chương trình in nó ra màn hình.

Thời gian ngắn nhất tôi có thể có phiên bản ASCII là 63

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

Cái nào lấy giá trị ASCII của chuỗi ABC...và thêm 1423vào từng charchuỗi để có được chuỗi thích hợp.


6
Chỉ được nâng cấp vì phiên bản ASCII của bạn thông minh. Phải ... hỗ trợ ... thông minh ... chơi golf!
wizzwizz4

1
Tôi mất ít nhất 5 phút để nhận ra rằng đó không phải là bảng chữ cái thực tế trong phiên bản ASCII.
caird coinheringaahing

11

05AB1E , 36 29 26 25 23 byte

Đã lưu 2 byte nhờ Adnan

Sử dụng mã hóa CP-1252 .

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

Hãy thử trực tuyến!

Giải trình

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

Giải thích số lớn làm số 5 cơ sở tiết kiệm hai byte : 1488•’ÉÇW–moû•5Bvy<+Dç?.
Ad Nam

@Ad Nam: Tất nhiên rồi. Suy nghĩ tuyệt vời!
Emigna

9

Brain-Flak , 172 byte

Câu trả lời này chủ yếu dựa trên một giải pháp của DJMcMayhem tại đây vì vậy tôi khuyên bạn nên kiểm tra nó.

Giống như giải pháp của DJMcMayhem, điều này sử dụng -rAcờ để đảo ngược đầu ra và in thành unicode.

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

Hãy thử trực tuyến!

Giải trình

Tôi đã thực hiện câu trả lời này bằng cách chạy một loạt các tối ưu hóa vi mô so với giải pháp ban đầu được cung cấp bởi DJMcMayhem. Những tối ưu hóa này trong khi lưu byte, làm cho mã không thể đọc được và thuật toán trở nên khó hiểu. Tôi, thành thật mà nói, không thực sự hiểu làm thế nào hoặc những gì mã của tôi làm.

Có lẽ một ngày nào đó tôi sẽ hiểu cách thức hoạt động của nó ...


6

Python 3, 50 byte

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

Tệp phải được tạo bằng mã hóa CP862 hoặc bằng cách đảo ngược hexdump sau.

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

Điều này có thể có thể được chuyển sang Python 2 (do đó tiết kiệm hai byte), nhưng tôi thiếu ngôn ngữ thích hợp để kiểm tra nó. Python 3 in mạnh mẽ một phiên bản được mã hóa UTF-8 (hoặc bất cứ thứ gì phù hợp với ngôn ngữ hiện tại) của bảng chữ cái.

xác minh

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

Hãy thử trực tuyến!

Làm thế nào nó hoạt động

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

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

Mã này dài 182 byte và tôi đã thêm 4 byte cho hai cờ dòng lệnh: -r-u

Hãy thử trực tuyến!

Rất cám ơn @Neil vì metagolfer số nguyên tuyệt vời này đã tạo ra cách đẩy 1488 ngọt ngào này (điểm mã của ký tự đầu tiên)

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

Giải trình:

Đẩy số lượng lớn trong flak não là tương đối khó khăn. Tuy nhiên, vì hành động đẩy một số cũng ước tính đến số đó, chúng ta có thể đẩy nhiều số cùng một lúc để tiết kiệm byte lớn. Dưới đây là một ví dụ cụ thể hơn. Phần trong cùng (mà tôi đã viết ở trên) trong mã psuedo là

push(1488)

Biểu thức này ước tính đến 1488, vì vậy chúng tôi gói toàn bộ nội dung trong một tuyên bố đẩy khác:

push(push(1488) + 1)

Điều này đẩy 1488 1489, cũng như đánh giá đến 1489. Vì vậy, chúng tôi gói này:

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

đẩy 1488, 1489 và 1490, cũng như đánh giá đến 1490. Lặp lại bước này cho mỗi số chúng ta cần đẩy.

Tuy nhiên, vì số gia không phải luôn luôn là 1, nên nó phức tạp hơn một chút. Đây là một phiên bản dễ đọc hơn:

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

Tôi nghĩ rằng đó là +1 -r-số lượng không được tính
NoOneIsHere

6
@NoOneIsHere -không tính nếu nó đã có từ một tùy chọn khác (ví dụ: trong perl -e). Brain-Flak không có tùy chọn hiện có như thế, vì vậy -, tùy chọn và không gian sau khi tất cả được tính vào tổng số.
Riley

Chỉ cần một sự cải thiện chút tôi đã brain-flak.tryitonline.net/...
mì Hướng dẫn

@WheatWizard Nếu tôi nhận được điều đó, thì tôi sẽ không thể viết một lời giải thích. Nó chỉ trông giống như một mớ hỗn độn của dấu ngoặc đối với tôi. : P
DJMcMayhem

Đó là một thay đổi rất nhỏ. Tôi chỉ di chuyển hai trường hợp ()()()bắt đầu và đặt chúng xuống và lên.
Thuật sĩ lúa mì

4

/// , 27 byte

ABCDEFGHIQSRTVUXWYbdcfeghiq

Hãy thử trực tuyến!

Đầu ra được mã hóa trong CP424 .

Để tự xác minh:

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

Đây là loại mã gì? Tôi nghĩ rằng nó cần phải được chuyển đổi thành UTF-8 để xem mục đích nào. Không nhất thiết là nó không hợp lệ: P có +1
Erik the Outgolfer

@EriktheGolfer Không cần phải chuyển đổi nó thành UTF-8. Đó không phải là một yêu cầu ở bất cứ đâu trong thử thách.
Mego

Tôi nghĩ rằng bạn có thể thu hút downvote sau đó. Xin lưu ý rằng, ở vị trí của bạn, tôi sẽ bao gồm phiên bản UTF-8 và một hexdump của bản gốc ...
Erik the Outgolfer

4

JavaScript (ES6), 59 byte

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

Điều tốt nhất tôi có thể làm trong ASCII là 80 79 78 byte:

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

Nếu một mảng ký tự được chấp nhận, 75 byte:

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

Chỉnh sửa: Đã lưu một số byte nhờ @IsmaelMiguel. Đã lưu một byte khác nhờ @ETHproductions. Nếu bạn sử dụng Firefox 30-57 thì bạn có thể tiết kiệm thêm 2 byte nhờ @ETHproductions bằng cách sử dụng trình tạo hoặc hiểu mảng:

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

Bạn có thể lưu một byte trên thay thế ASCII của bạn bằng cách sử dụng 0x377BABBCF7F.toString(3). Combinig này với .map(), bạn có thể làm _=>0x377BABBCF7F.toString(3,n=1488).split``.map(_=>String.fromCharCode(++n-_))cho 78 byte. Nó trả về một mảng các ký tự.
Ismael Miguel

@IsmaelMiguel Rất vui ..vì chúng tôi không sử dụng splitở đây.
Neil

Tốt đẹp. Bạn có thể sửa đổi phiên bản mảng char một chút để có được _=>String.fromCharCode(...[...0x377babbcf7f.toString(3)].map(c=>++n-c,n=1488)), ngắn hơn 1 byte so với 79 byte hiện tại.
Sản phẩm ETH

@ETHproductions Bah, tôi đã chơi xung quanh String.fromCharCode(...)và đã tự thuyết phục bản thân rằng nó sẽ luôn dài hơn. Trong thực tế, nó tiết kiệm 4 byte trên giải pháp cơ sở 2 của tôi (vẫn là 84 byte vì phải mất nhiều byte hơn để giải mã).
Neil

Nếu bạn sẵn sàng sử dụng khả năng hiểu mảng, bạn có thể nhận được 2 byte cho mỗi mảng; chuỗi : _=>String.fromCharCode(...[for(c of 0x377babbcf7f.toString(3,n=1488))++n-c]), char-mảng:_=>[for(c of 0x377babbcf7f.toString(3,n=1488))String.fromCharCode(++n-c))
ETHproductions

3

05AB1E , 28 * 2-1 = 55 byte

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

Hãy thử trực tuyến!

-1 byte nhờ Emigna + 28 byte nhờ DJMCMayhem;).


4
Tôi không biết mã hóa 05AB1E sử dụng cái gì, nhưng tôi rất nghi ngờ đó là những ký tự một byte trong bất cứ thứ gì.
DJMcMayhem

@DJMcMayhem Tôi nghĩ TIO có lỗi, những nhân vật đó không tồn tại trong CP-1252.
Erik the Outgolfer

@EriktheGolfer Rất có thể nó sử dụng UTF-8 để thuận tiện và sau đó trình thông dịch 05AB1E thực hiện chuyển đổi nội bộ cần thiết. Đó là những gì tôi làm cho V (sử dụng latin1).
DJMcMayhem

@DJMcMayhem Ở đây, nó được hiển thị dưới dạng UTF-8, nhưng nó cũng hỗ trợ CP-1252, bạn có thể sử dụng để làm cho số byte của mình thấp hơn. Tuy nhiên, đây không phải là CP-1252 thuần túy, vì vậy nó phải được chạy với các chuỗi UTF-8.
Erik the Outgolfer


2

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

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

giả sử UTF-8

Scala, 59 byte

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

x+1423 giống như x-'A'+1488


Polygot, nó cũng hoạt động trong Groovy; Ngoài ra, xem câu trả lời của tôi, bytecount là tắt.
Bạch tuộc ma thuật Urn

1
cũng trong python 3 (cũng là python 2 nhưng sau đó không cần ngoặc đơn)
user49822

1
@caruscomputing Tôi sẽ cảnh giác khi chỉnh sửa số byte của người dùng khác vì bạn giả sử một mã hóa nhất định. Bạn có chắc Scala có thể hoặc chỉ có thể xử lý UTF-8 không? Ngoài ra, bảng chữ cái tiếng Do Thái có 27 chữ cái, vì vậy 61 sai cách này hay cách khác.
Dennis

Tùy chọn đầu tiên cũng hoạt động trên PHP.
Ismael Miguel


1

C # 6 +, 76 86 82 byte

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

Nỗ lực đầu tiên tại Golfing. Tôi làm đúng chứ hả?

CHỈNH SỬA : +6 byte vì quên đóng gói trong hàm. Cảm ơn @Kevin

Phiên bản C # 5 trở xuống, 86 82 byte

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

Trên thực tế, bạn nên in một chức năng hoặc một chương trình hoàn chỉnh. Vì vậy, void F(){Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}sẽ là hợp lệ, hoặc ()=>{Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}như tôi nghĩ (mặc dù không chắc chắn về cái cuối cùng này). Ngoài ra, bạn có thể chơi nó bằng cách sử dụng .Writethay vì .WriteLine. :) Điều đó đang được nói, chào mừng bạn đến với PPCG! Bạn có thể thấy Mẹo chơi golf trong C # thú vị để đọc qua. Tận hưởng kì nghỉ của bạn.
Kevin Cruijssen

Bạn biết đấy, bạn có thể sử dụng <s>your text</s>để tấn công một số văn bản thay vì sử dụng các ký tự lạ.
Erik the Outgolfer

Tôi đã không nhận thức được về điều đó. Dù sao cũng cảm ơn @EriktheGolfer
coder khủng khiếp


1

ArnoldC, 112 byte

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

1

Keg , 34 byte

Lấy cảm hứng từ một giải pháp Powershell.

ZYXVWTUSRPQNOMKLJIHGFEDCBA(֏+")(,

TIO


0

BaCon , 57 byte

  • Trong hầu hết các BASIC, dấu hỏi đơn giản chỉ đại diện cho IN.

  • Thoạt nhìn, giải pháp bên dưới trông giống 30 byte, nhưng các ký tự tiếng Do Thái cần 2 byte lưu trữ vì UTF-8. Vì vậy, có 27 ký tự x 2 byte + 1 byte cho '?' và 2 byte cho dấu ngoặc kép = 57 byte.

Dung dịch:

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

Hãy dùng thử GW-BASIC với BIOS VGA CP862 trong 30. (Cùng văn bản)
Joshua

0

s-lang , 59 byte

Câu trả lời thực sự đơn giản ...

t[][אבגדהוזחטיכךלמםנןסעפףצץקרשת]
  • t - thay thế chức năng (thay thế "không có gì" trong đầu vào bằng bảng chữ cái ...)

Hãy thử nó ở đây


0

zsh, 25 21 byte

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

Trình duyệt của tôi đang làm rối tung nó: nên là chữ cái đầu tiên, sau đó là. Nếu bạn dán ở một nơi khác, mặc dù vậy, nó sẽ hoạt động. Phiên bản cũ:

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

Không hợp lệ, vì chữ cái cuối cùng và chữ cái bình thường được đảo ngược bằng Unicode
TuxCrafting

Ngoài ra, nó thực sự là 27 byte
TuxCrafting

Oh và phạm vi nên thực sự là aleph đầu tiên và tav cuối cùng. Nếu chuỗi bị đảo ngược trong câu hỏi, thì đó là vì tiếng Do Thái là ngôn ngữ RTL
TuxCrafting

@ TùxCräftîñg trong thiết bị đầu cuối của tôi, nó chỉ hiển thị chính xác với taf trước tiên là aleph cuối cùng. Bạn có ý nghĩa gì "chữ cái cuối cùng và chữ cái bình thường được đảo ngược trong Unicode"?
Elronnd

Trong văn bản trong câu hỏi, có כךví dụ (kaf bình thường đầu tiên, kaf cuối cùng thứ hai), nhưng trong Unicode, các chữ cái cuối cùng trước các chữ cái bình thường ( ךכ), vì vậy văn bản in không hợp lệ. Và nếu nó hiển thị với tav trước, thì đó là vì tiếng Do Thái là ngôn ngữ RTL, do đó, ký tự đầu tiên được hiển thị ngoài cùng bên phải
TuxCrafting

0

Java 7, 85 byte

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

Tôi thậm chí sẽ không bận tâm đến việc đăng mã kiểm tra hoặc 'Thử nó ở đây' như tôi thường làm ..


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);}

Một số người dùng có thể cần gọi setlocaletrước khi sử dụng nhưng nó hoạt động tốt với tôi.


Đề xuất for(i=1488;putwchar(i++)<1514;);thay vìfor(i=0x5d0;i<=0x5ea;i++)wprintf(L"%lc",i);
trần mèo

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.