Afficher l'alphabet hébreu


24

Votre tâche consiste à imprimer ce texte exact:

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

(Vous êtes autorisé à imprimer une nouvelle ligne de fin)

Hachage SHA256 de l'encodage UTF-8 du texte:

0ab6f1e0bf216a0db52a4a5a247f95cba6f51496de7a24dfd01f3985dfcf6085

Encodage Base64:

15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq

Règles

  • Vous ne pouvez pas utiliser de sortie intégrée pour ce texte.
  • Les failles standard ne sont pas autorisées.
  • C'est le , donc la réponse la plus courte l'emporte.

Bonne chance!


5
J'ai remarqué que les points de code ne sont pas directement en ordre. Vous avez 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. Je ne connais pas grand-chose à l'hébreu, pourriez-vous confirmer que c'est effectivement intentionnel?
DJMcMayhem

11
@DJMcMayhem Unicode liste les lettres finales avant les lettres normales mais dans le texte de la question, les lettres normales sont listées avant. Ce n'était pas vraiment intentionnel, mais au moins, cela encourage des réponses qui ne sont pas aussi ennuyeuses queprint(map(chr, range(x, y)))
TuxCrafting

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

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

2
@Angs C'est parce que ça ne correspond vraiment pas. echo 15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq | base64 -d | sha256sumproduit f1d4b9c12a197912a4bdb80fb3e4d3fad5a0d9b7edd243fae7b2ab3450618036.
DVD

Réponses:


25

MATLAB, 52 51 octets

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

Exemple d'utilisation:

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

Explication

'CCCCCCCCCDADDAEADCDAEADCCC'-66produit le tableau [1 1 ... -1 2 1 1 1], qui contient les différences consécutives entre les points de code des caractères souhaités.

[1488 ...]ajoute 1488, donc le tableau est maintenant [1488 1 1 ... -1 2 1 1 1].

cumsum(...)calcule la somme cumulée: [1488 1489 ... 1514].

[... '']concatène avec la chaîne vide. Cela a pour effet de convertir en char (et est un octet plus court que char(...))


19

Gelée , 22 21 20 octets

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

Essayez-le en ligne!

Idée

Si nous soustrayons 1487 de chaque point de code, nous obtenons le tableau R qui suit.

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

C'est juste la plage de 1 à 27 , mais pas dans l'ordre croissant; les paires (11, 12) , (14, 15) , (16, 17) , (20, 21) et (22, 23) ont été échangées.

Si nous prenons la plage ascendante et ajoutons 2 à 11 , 14 , 16 , 20 et 22 , nous obtenons le tableau A qui suit.

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

Ce n'est plus une permutation de la plage, mais si nous trions la plage de manière stable en fonction des valeurs de ce tableau, nous pouvons reconstruire le tableau d'origine.

Code

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

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

PowerShell Unicode est UTF-16 sauf indication contraire explicite, puis c'est un crapshoot de toute façon car tout est UTF-16 en arrière-plan.

Cela place simplement la chaîne littérale sur le pipeline et la valeur par défaut Write-Outputà la fin de l'exécution du programme l'imprime à l'écran.

Le plus court que j'ai pu obtenir la version ASCII est 63

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

Ce qui prend la valeur ASCII de la chaîne ABC...et s'ajoute 1423à chacun charpour obtenir la chaîne appropriée.


6
A voté uniquement parce que votre version ASCII est intelligente. Doit ... soutenir ... intelligent ... jouer au golf!
wizzwizz4

1
Il m'a fallu au moins 5 minutes pour réaliser que ce n'était pas l'alphabet réel dans la version ASCII.
caird coinheringaahing

11

05AB1E , 36 29 26 25 23 octets

Enregistré 2 octets grâce à Adnan

Utilise l' encodage CP-1252 .

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

Essayez-le en ligne!

Explication

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

Interprétation du grand nombre comme un numéro de base 5 enregistre deux octets: 1488•’ÉÇW–moû•5Bvy<+Dç?.
Adnan

@Adnan: Ah bien sûr. Grande réflexion!
Emigna

9

Brain-Flak , 172 octets

Cette réponse est basée en grande partie sur une solution de DJMcMayhem ici, donc je vous recommande de la vérifier.

Comme la solution de DJMcMayhem, elle utilise le -rAdrapeau pour inverser la sortie et imprimer en unicode.

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

Essayez-le en ligne!

Explication

J'ai fait cette réponse en exécutant un tas de micro-optimisations sur la solution originale fournie par DJMcMayhem. Ces optimisations, tout en économisant des octets, rendent le code illisible et l'algorithme obtus. Pour être honnête, je ne comprends pas vraiment comment ni ce que fait mon code.

Peut-être qu'un jour je comprendrai comment cela fonctionne ...


6

Python 3, 50 octets

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

Le fichier doit être créé à l'aide de l'encodage CP862 ou en inversant le vidage hexadécimal suivant.

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

Cela pourrait probablement être porté sur Python 2 (économisant ainsi deux octets), mais je n'ai pas les paramètres régionaux appropriés pour le tester. Python 3 imprime consciencieusement une version encodée UTF-8 (ou ce qui est approprié pour les paramètres régionaux actuels) de l'alphabet.

Vérification

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

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

Essayez-le en ligne!

Comment ça marche

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 octets

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

Ce code fait 182 octets et j'ai ajouté 4 octets pour deux drapeaux de ligne de commande: -ret-u

Essayez-le en ligne!

Un grand merci à @Neil pour ce génial métagolfer entier qui a créé cette douce façon de pousser 1488 (le point de code du premier caractère)

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

Explication:

Il est relativement difficile de pousser un grand nombre dans le cerveau-flak. Cependant, étant donné que l'acte de pousser un nombre est également évalué à ce nombre, nous pouvons pousser plusieurs nombres en même temps pour des économies massives d'octets. Voici un exemple plus concret. La partie la plus intérieure (que j'ai écrite ci-dessus) dans le code pseudo est

push(1488)

Cette expression est évaluée à 1488, nous enveloppons donc le tout dans une autre instruction push:

push(push(1488) + 1)

Cela pousse 1488 et 1489, ainsi que l'évaluation à 1489. Nous terminons donc ceci:

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

qui pousse 1488, 1489 et 1490, ainsi que l'évaluation à 1490. Répétez cette étape pour chaque nombre que nous devons pousser.

Cependant, comme les incréments ne sont pas toujours à 1, c'est un peu plus compliqué que ça. Voici une version plus lisible:

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

Je pensais que c'était +1 pour -rcar le -ne compte pas
NoOneIsHere

6
@NoOneIsHere -ne compte pas s'il est déjà présent à partir d'une option différente (par exemple en perl -e). Brain-Flak n'a pas d'option existante comme ça, donc -, l'option et l'espace après tout comptent pour le total.
Riley

Juste une petite amélioration que j'ai faite brain-flak.tryitonline.net/…
Wheat Wizard

@WheatWizard Si je prenais cela, je ne serais pas en mesure d'écrire une explication. Cela ressemble à un désordre de supports pour moi. : P
DJMcMayhem

C'est un tout petit changement. Je viens de déplacer les deux instances de ()()()au début et de les mettre de côté.
Wheat Wizard

4

/// , 27 octets

ABCDEFGHIQSRTVUXWYbdcfeghiq

Essayez-le en ligne!

La sortie est codée en CP424 .

Pour le vérifier vous-même:

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

De quel type de code s'agit-il? Je pense qu'il doit être converti en UTF-8 à des fins de visualisation de toute façon. Non pas qu'il soit nécessairement invalide: P avoir un +1
Erik the Outgolfer

@EriktheGolfer Il n'est pas nécessaire de le convertir en UTF-8. Ce n'est une exigence nulle part dans le défi.
Mego

Je pense que vous pourriez alors attirer des votes négatifs. Veuillez noter qu'à votre place, j'aurais inclus la version UTF-8 et un vidage hexadécimal de l'original ...
Erik the Outgolfer

4

JavaScript (ES6), 59 octets

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

Le mieux que je pouvais faire en ASCII était de 80 79 78 octets:

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

Si un tableau de caractères est acceptable, 75 octets:

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

Edit: sauvé quelques octets grâce à @IsmaelMiguel. Un autre octet enregistré grâce à @ETHproductions. Si vous utilisez Firefox 30-57, vous pouvez économiser encore 2 octets grâce à @ETHproductions à l'aide de générateurs ou de compréhensions de tableaux:

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

Vous pouvez enregistrer un octet sur votre alternative ASCII en utilisant 0x377BABBCF7F.toString(3). En combinant cela avec .map(), vous pouvez le faire _=>0x377BABBCF7F.toString(3,n=1488).split``.map(_=>String.fromCharCode(++n-_))pour 78 octets. Il renvoie un tableau de caractères.
Ismael Miguel

@IsmaelMiguel Belle prise sur le ..mais nous n'utilisons pas splitici.
Neil

Agréable. Vous pouvez modifier légèrement la version du tableau de caractères pour obtenir _=>String.fromCharCode(...[...0x377babbcf7f.toString(3)].map(c=>++n-c,n=1488)), 1 octet de moins que les 79 octets actuels.
ETHproductions

@ETHproductions Bah, j'avais joué avec String.fromCharCode(...)et j'avais réussi à me convaincre que ce serait toujours plus long. En fait, il enregistre 4 octets sur ma solution base 2 (qui est toujours de 84 octets car il faut plus d'octets pour décoder).
Neil

Si vous êtes prêt à utiliser des compréhensions de tableaux, vous pouvez obtenir 2 octets de chaque; 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 octets

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

Essayez-le en ligne!

-1 octet grâce à Emigna + 28 octets grâce à DJMCMayhem;).


4
Je ne sais pas quel encodage 05AB1E utilise, mais je doute fortement que ce soient des caractères d'un octet dans quoi que ce soit.
DJMcMayhem

@DJMcMayhem Je pense que TIO a un bug, ces personnages n'existent pas dans CP-1252.
Erik the Outgolfer

@EriktheGolfer Très probablement, il utilise UTF-8 pour plus de commodité, puis l'interpréteur 05AB1E effectue la conversion interne nécessaire. C'est ce que je fais pour V (qui utilise latin1).
DJMcMayhem

@DJMcMayhem Ici, il est représenté en UTF-8, je pense, mais il prend également en charge le CP-1252, que vous pouvez utiliser pour réduire le nombre d'octets. Ce n'est pas du CP-1252 pur, cependant, il doit donc être exécuté avec des chaînes UTF-8.
Erik the Outgolfer


2

Scala / Groovy / Python 3, 9 caractères ascii + 27 caractères 2 octets = 63 octets

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

en supposant UTF-8

Scala, 59 octets

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

x+1423 est le même que x-'A'+1488


Polygot, ça marche aussi dans Groovy; aussi, voir ma réponse, bytecount est désactivé.
Urne de poulpe magique

1
également en python 3 (également python 2 mais les parenthèses ne sont pas nécessaires)
user49822

1
@caruscomputing Je me méfierais de modifier le nombre d'octets d'un autre utilisateur car vous supposez un certain encodage. Êtes-vous sûr que Scala peut ou ne peut gérer que l'UTF-8? De plus, l'alphabet hébreu a 27 lettres, donc 61 est faux d'une manière ou d'une autre.
Dennis

La première option fonctionne également sur PHP.
Ismael Miguel


1

C # 6 +, 76 86 82 octets

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

Première tentative de golf. Suis-je en train de faire ça?

EDIT : +6 octets pour oublier d'inclure dans une fonction. Merci @Kevin

Version C # 5 et inférieure, 86 82 octets

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

En fait, vous devez imprimer une fonction ou un programme complet. Ce void F(){Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}serait donc valable, ou ()=>{Console.WriteLine("אבגדהוזחטיכךלמםנןסעפףצץקרשת");}aussi je pense (pas sûr de ce dernier, cependant). Vous pouvez également jouer au golf en utilisant .Writeau lieu de .WriteLine. :) Cela étant dit, bienvenue chez PPCG! Vous pouvez trouver des conseils pour jouer au golf en C # intéressants à lire. Profitez de votre séjour.
Kevin Cruijssen

Vous savez, vous pouvez utiliser <s>your text</s>pour supprimer du texte au lieu d'utiliser des caractères étranges.
Erik the Outgolfer

Je n'étais pas au courant de ça. Quoi qu'il en soit, merci @EriktheGolfer
terrible-


1

ArnoldC, 112 octets

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

1

Keg , 34 octets

Inspiré d'une solution Powershell.

ZYXVWTUSRPQNOMKLJIHGFEDCBA(֏+")(,

TIO


0

BaCon , 57 octets

  • Dans la plupart des BASIC, le point d'interrogation représente simplement PRINT.

  • À première vue, la solution ci-dessous ressemble à 30 octets, mais les caractères hébreux ont besoin de 2 octets de stockage en raison de l'UTF-8. Il y a donc 27 caractères x 2 octets + 1 octet pour le "?" et 2 octets pour les guillemets doubles = 57 octets.

Solution:

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

Essayez GW-BASIC avec un BIOS CP862 VGA pour 30. (Même texte)
Joshua

0

s-lang , 59 octets

Réponse vraiment simple ...

t[][אבגדהוזחטיכךלמםנןסעפףצץקרשת]
  • t - remplacer la fonction (remplace "rien" dans l'entrée par l'alphabet ...)

Essayez-le ici


0

zsh, 25 21 octets

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

Mon navigateur est en train de tout gâcher: le ת devrait être la première lettre, puis le א. Si vous collez ailleurs, cela devrait fonctionner. L'ancienne version:

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

Non valide, car les lettres finales et les lettres normales sont inversées dans Unicode
TuxCrafting

En outre, il s'agit en fait de 27 octets
TuxCrafting du

Oh et la gamme devrait en fait être aleph en premier et en dernier. Si la chaîne est inversée dans la question, c'est parce que l'hébreu est un langage RTL
TuxCrafting

@ TùxCräftîñg dans mon terminal, il s'affiche correctement uniquement avec taf d'abord un aleph en dernier. Que voulez-vous dire par "les lettres finales et les lettres normales sont inversées en Unicode"?
Elronnd

Dans le texte de la question, il y a כךpar exemple (kaf normal en premier, kaf final en second), mais en Unicode, les lettres finales sont avant les lettres normales ( ךכ), donc le texte imprimé n'est pas valide. Et s'il s'affiche d'abord avec tav, c'est parce que l'hébreu est une langue RTL, donc le premier caractère est affiché le plus à droite
TuxCrafting

0

Java 7, 85 octets

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

Je ne vais même pas prendre la peine de poster du code de test ou un "Essayez-le ici" comme je le fais habituellement ..


0

Perl 6 (74)

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



0

C, 49 octets

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

Certains utilisateurs peuvent avoir besoin d'appeler setlocaleavant d'utiliser cela, mais cela a bien fonctionné pour moi.


Suggérer à la for(i=1488;putwchar(i++)<1514;);place defor(i=0x5d0;i<=0x5ea;i++)wprintf(L"%lc",i);
plafondcat

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.