Récemment, j'ai vu des gens de Hare Krishna avec leur mantra sur l'emblème et j'ai trouvé qu'il serait peut-être intéressant de coder le golf.
Le défi
Écrivez le mantra de Hare Krishna , à savoir:
Hare Krishna Hare Krishna
Krishna Krishna Hare Hare
Hare Rama Hare Rama
Rama Rama Hare Hare
Critères gagnants
C'est du code-golf , donc le code le plus court en octets gagne!
Règles
- L'enveloppe doit être préservée.
- Le texte doit contenir de nouvelles lignes.
- Les lignes peuvent avoir des espaces de fuite.
- Le retour à la ligne est autorisé.
- Analyse depuis le Web ou toute autre ressource externe non autorisée.
code-golf
string
kolmogorov-complexity
Dariusz Woźniak
la source
la source
Réponses:
Gelée , 22 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Convert 15973600 to base ["Hare", "Rama", "Krishna"]
Dieu merci, vous avez expliqué cela davantage, car cela n'avait aucun sens.["Hare", "Rama", "Krishna"]
plus de base .05AB1E , 38 octets
Peut être raccourci de 2 octets si les retours à la ligne sont corrects.
Essayez-le en ligne!
Explication
la source
drama share irish dna
, vraiment? D'où est venue cette idée? +1 :)Python 2 , 60 octets
Essayez-le en ligne!
Cela semble battre les approches de remplacement de modèle comme cette tentative .
la source
Octave,
7459 octetsVérifiez la sortie ici .
Explication:
{'Hare ','Krishna ','Rama ',10}
crée un tableau de cellules avec trois chaînes, où la quatrième est10
(valeur ASCII pour la nouvelle ligne).{'ababdbbaadacacdccaa'-96}
est un vecteur qui indexe le tableau de cellules ci-dessus. Le vecteur est[1 2 1 2 4 ...]
puisque nous soustrayons96
de la chaîneababd...
.Les crochets sont utilisés pour concaténer les résultats, au lieu d’obtenir
ans = Hare; and = Krishna; ans = ...
la source
Retina , 39 octets
Essayez-le en ligne!
Dans la plupart des substitutions simples, le seul "truc" est le modificateur
*
qui affiche le résultat de la substitution puis ramène la chaîne à ce qu’elle était auparavant.la source
PHP, 61 octets
simplement le remplacement des chiffres comme clé dans le tableau avec les valeurs strtr
Essayez-le en ligne!
la source
JavaScript,
7570 octetsEssayez-le en ligne!
la source
3
. La chaîne de modèle aura la même longueur, mais vous ne devrez pas les remplacer plus tard. (Ne causera pas de problème d'index de tableau, car/./
ne correspond pas aux caractères de nouvelle ligne.)C
154 octets, 124 octets,96 octetsEssayez-le en ligne!
28 octets sauvés, grâce à Dennis
la source
int
et déclareri
globalement afin que la valeur par défaut soit zéro. tio.run/nexus/…main(){for(char*t="BG@ESCB;:N8F6DIBA10Hare \0Krishna \0Rama \0\n";*t^72;printf(t+*t++-48));}
Enregistre 4 octets.V ,
40, 36 octetsEssayez-le en ligne!
Hexdump:
Explication:
La
<C-n>
commande est extrêmement utile pour des défis comme celui-ci. :)la source
C #, 109 octets
De manière assez simple,
Console.Write
formate implicitement la chaîne, et utiliserWrite
au lieu deWriteLine
non seulement enregistre 4 octets, mais évite une nouvelle ligne. Utilise les nouvelles lignes de style Unix, donc peut-être pas si bien sur Windows, 6 octets supplémentaires pour Windows en passant\n
à\r\n
Cette méthode sera affichée directement sur la console, si vous préférez une méthode qui retourne une chaîne:
C #, 118 octets
Sinon, si vous avez besoin d'un programme entièrement autonome et compilable:
C #, 135 octets
Cela devrait fonctionner comme un programme compilé à condition que vous définissiez
A
comme classe d'entrée.la source
var
aussi loin que je sache etvar.Format()
n'est certainement pas une choseC, 85 octets
Je préférerais un mantra laïque, mais j'espère que c'est l'une de ces religions pacifiques.
Voir le travail ici .
Cela compacte une implémentation naïve de 23 octets.
la source
Python 2,
928874 octetsEssayez-le en ligne!
Non , ce n'est pas intelligent, non, ce n'est pas le plus court mais bon, je suis novice dans ce domaine et ça marche.
Une autre solution (
84 à80 octets):la source
Perl, 67 octets
Inspiré par cette entrée JavaScript .
Perl, 67 octets
la source
(Hare,Krishna,Rama)
enregistre deux octets dans votre premier code.Matlab
139 136105 octets (merci à @ 2501 )Essayez-le en ligne dans Octave!
la source
x={'Hare ','Krishna ','Rama ',10};[x{'ababdbbaadacacdccaa'-96}]
est 64 octets. : P (traduction de la soumission octave de @Stewie Griffin)MySQL,
115 à100 octets(Merci @manatwork!)
la source
AS
.R,
758583 octetsIl crée un vecteur avec
Hare
,Krishna
et la nouvelle ligne, prend ceux qui sont nécessaires, puis répète son remplacementKrishna
parRama
.Nécessaire pour inclure l'espace sur chaque mot et
sep=""
parce que sinoncat()
mettrait un espace au début de chaque ligne.la source
print()
oucat()
serait nécessaire. Cela nécessiterait beaucoup plus d'octets. Jeobject 'h' not found
tio.run/nexus/…h=
avech<-
à l'intérieur des appels àp
PowerShell,
735352 octetsabsolument démoli par Jeff Freeman - utiliser une nouvelle ligne au lieu d'
\n
enregistrer un autre octet et en enregistrer un de plus sur le format tableau. (de(1,2)
à,1,2
)-1 grâce à TesselatingHeckler, pas de virgule dans la notation de tableau.
Ma vieille réponse - J'ai essayé quelques méthodes de remplacement, mais toutes ont été légèrement plus longues.
il y a des nouvelles lignes dans la chaîne.
assez simple, utilise le fait que powershell développera les variables entre guillemets doubles, et une méthode plus courte d’attribution de variables pour économiser des octets.
la source
Sed, 72
Le score inclut +1 pour le
-r
drapeau.Essayez-le en ligne .
la source
c
hange,a
ppend ou nserti
au lieu des
ubstitute. Edit: pas si sûr que ça; Edit edit: ouais non, ça ne marche pas parce qu'ils ne fonctionnent pas sur l'espace des motifs, mais directement à la sortieRuby ,
6261 octetsAu fur et à mesure que je travaillais sur cette question, elle devint presque identique à la réponse Python de @ xnor, sauf que Ruby n'a pas d'espaces entre les arguments dans sa
print
fonction, ce qui m'oblige à utiliser des jointures, ce qui entraîne une réponse plus longue ...-1 octets de @manatwork
Essayez-le en ligne!
la source
:Hare
un symbole.Bash,
9390 octetsla source
s=
il est descendu à 79h="Hare " k="Krishna " r="Rama ";echo -e "$h$k$h$k\n$k$k$h$h\n$h$r$h$r\n$r$r$h$h"
Pyth -
4541 octetsL'essayer
la source
AHK ,
10792 octetsCela semble ridicule, mais je ne trouve pas de moyen plus court dans AHK de le faire:
Voici ce que j'ai d'abord essayé, soit 107 octets, et j'ai essayé d'être sophistiqué. Comme l'a souligné Digital Trauma , l'envoi du texte brut aurait été plus court.
StringSplit crée un pseudo-tableau avec 1 comme premier index. Donc, le premier terme est référencé avec
s1
, le second avecs2
, etc. Sinon, il n’ya rien d’extraordinaire ici.la source
Send Hare Krishna ...
?Lot, 75 octets
la source
C 96 octets
Deux mots d’information sont nécessaires pour déterminer quel mot de la prière est nécessaire ensuite. Ainsi, au lieu d’utiliser un tas de mémoire et de le coder sous forme de chaîne, vous pouvez simplement le coder sous la forme d’un entier 40 bits (c.-à-d. À l'intérieur ).
la source
ksh / bash / sh, 66 octets
la source
APL (Dyalog) , 47 octets
Nécessite
⎕IO←0
ce qui est la valeur par défaut sur de nombreux systèmes.Essayez-le en ligne!
8×4 1 5 2
multiplier; [32,8,40,16](4⍴3)⊤
convertir en base 3 à 4 chiffres; matrice [[1,0,1,0], [0,0,1,1], [1,2,1,2], [2,2,1,1]]...
[
...]
index↓
scinder en liste de listes∊¨
enrôler (aplatir chaque)↑
mélanger dans la matrice (remplissage avec des espaces)la source
Rétine, 60
Port direct de ma réponse sed :
Essayez-le en ligne .
la source
Java 7,
104103 octetsExplication:
Essayez-le ici.
la source
Lot,
117111103 octetsJusqu'à 103 maintenant, les retours à la ligne sont autorisés.
^\n\n
est utilisé pour insérer une nouvelle ligne à la fin des trois premières lignes et il y a un espace aprèsRama
.la source
Perl,
7674 octetsla source