Cela semble presque trivial, mais après quelques efforts, je ne pouvais pas battre la solution littérale dans J, je pensais que cela pourrait constituer un défi décent (bien que, pour être clair, ce ne soit pas un défi spécifique à J).
Le titre dit tout. Vous devez simplement écrire un programme ou une fonction (sans arguments) qui retourne ou affiche:
N NE E SE S SW W NW
Vous pouvez utiliser des nouvelles lignes au lieu d'espaces.
Une fonction sans argument renvoyant un tableau de chaînes telles que
['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']
est également acceptable.
Les lettres peuvent être majuscules ou minuscules, mais ne peuvent pas être mélangées.
0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5
. Malheureusement, le code J requis pour mapper ces résultats en lettres finissait par être plus coûteux qu'un littéral.1, 1+i, i, -1+i, -1, -1-i, -i, 1-i
. Vous avez donc une partie réelle ou imaginaire par direction cardinale au lieu de deux. Il est probablement plus difficile de les générer cependant, à moins que vous ne puissiez contourner ces pouvoirs de i loin de 0? Je ne sais pas à quel point ce serait facile ou difficile en J, mais c'est une idée.Réponses:
Toile , 12 octets
Essayez-le ici!
La chaîne, simplement compressée.
la source
"NESW "
), puis stocke l'individu en base 5 personnages.bash (24 octets)
en utilisant une expansion
est la même longueur que le codage dur
cependant, cela devient plus intéressant lors de la sortie de plus de points de la boussole
expansion du corset
sinon, si l'ordre peut être changé, (17 octets), le truc, c'est que sans guillemets, le paramètre empy string disparaît
la source
mount -t proc{,,}
cp file{,.bak}
Croissant Mornington ,
43953823 octetsEssayez-le en ligne!
Attendez-vous à ce que vous lisiez tout cela, laissez-moi vous donner un bref aperçu de mon approche. L'idée principale est de stocker 3 copies des personnages
N
,E
,S
,W
à différentes stations de la ligne Circle, via Bank - Hammersmith. Ces caractères sont construits à partir du début du nom d'une station à Charing Cross. Ensuite, construisez àpartir du milieu d'un nom de station bien choisi en utilisant Mile End et Charing Cross, et stockez-le à Bank pour qu'il puisse être collecté à Hammersmith dans la concaténation. Enfin, concaténez les caractères un à un à Paddington et recopiez-les à nouveau via Bank - Hammersmith s’ils doivent être réutilisés ultérieurement.
Je pense que la solution actuelle est assez proche de l’optimum avec cette stratégie, du moins en termes de nombre de stations visitées: à peine 2 fois, j’utilisais une station uniquement pour le transit:
Toutes les autres visites de stations étaient, si je n’avais pas oublié une visite, soit en stockant / récupérant quelque chose d’utile, soit en utilisant (en partie) la capacité de la station.
En ce qui concerne les longueurs de ligne, j'ai essayé de choisir les noms les plus courts sur Circle Line, mais il peut y avoir une légère amélioration. Il est possible que stocker quelque chose sur District puisse supprimer quelques octets.
la source
Ne
asden,Sw
iss Cottage, Acton Town
et Mansion House
) 2. Essayez d'exploiter le fait que Paddington facilite la concaténation de `W` plutôt queW
. Cela nécessite un peu plus de temps pour "rafraîchir" Paddington, de sorte qu'il ne gagne rien.PHP , 19 octets
Essayez-le en ligne!
Obtenir cela de la route. Quelqu'un le fera éventuellement.
la source
brainfuck ,
142139131119 octetsEssayez-le en ligne!
Il suffit de répéter 10 fois la boucle pour remplir les cellules avec 30, 70, 80 et 90, puis d’avancer et d’avancer et d’ajuster les valeurs des cellules pour imprimer les caractères requis. Pas très différent de la norme "Hello world!".
la source
Brain-Flak , 204 octets
Essayez-le en ligne!
la source
MarioLANG ,
249221 octetsEssayez-le en ligne!
la source
Deadfish ~ ,
188183 octets-5 grâce au calmar
Essayez-le en ligne!
la source
{i}dc
à la fin pour 183Formule Excel,
5957 octetsLes éléments suivants doivent être entrés sous forme de formule matricielle ( Ctrl+ Shift+ Enter):
Après avoir entré la formule sous forme de formule matricielle, mettez-la en surbrillance dans la barre de formule et évaluez-la en utilisant F9le résultat obtenu, par exemple:
Avant:
Après:
Comment ça fonctionne
La
ADDRESS
fonction renvoie une chaîne représentant une référence basée sur deux paramètres,row
etcol
. Le troisième paramètre contrôle le type de référence renvoyé, une référence absolue ou relative. Par exemple,=ADDRESS(1,2,4)
retourne"B1"
.Nous pouvons fournir un tableau à
ADDRESS
et l'utiliser comme une formule de tableau pour renvoyer plusieurs résultats, par exemple des=ADDRESS(1,{1,2,3},4)
retours"A1","B1","C1"
.Par conséquent, dans ma réponse, le tableau fourni ne
ADDRESS
concerne que les numéros de colonne relatifs aux points cardinaux requis, par exemple, la colonne 14 est la colonneN
, la colonne 369 est la colonneNE
.Cependant, nous ne sommes pas fini ici puisque toutes les références retournées ont la ligne inclus, par exemple,
N1
,NE1
. Par conséquent, nous utilisons simplementSUBSTITUTE
pour supprimer le1
de toutes les références.la source
=IF(1,"N NE E SE S SW W NW")
valide?Triangularité , 71 octets
Essayez-le en ligne!
Il y a deux espaces sur la dernière ligne pour atteindre le nombre d'octets requis par Triangularity.
la source
Charbon de bois , 14 octets
Essayez-le en ligne! Link correspond à la version verbeuse du code ... qui est simplement la chaîne à imprimer, car l’auto-déverbosifiant s’occupe de la compression de la chaîne.
L'impression de la chaîne non compressée prend 19 octets, car Charcoal imprime littéralement l'ASCII imprimable. La meilleure réponse algorithmique que je puisse trouver prend malheureusement 20 octets:
Essayez-le en ligne! Les sorties utilisant le format tableau (coûteraient deux octets pour joindre les éléments sur les espaces). Fonctionne en remarquant que les lettres de la chaîne ne
SNWE
sont utilisées que lorsque l'index externe actuel est égal à 1 ou est éloigné (modulo 8) dans un sens ou dans l'autre de l'élément correspondant de la liste d'index4,0,6,2
.la source
brainfuck , 117 octets
Essayez-le en ligne!
Ce code créera d’abord les caractères "EN SW" dans la mémoire, puis se déplacera dans les deux sens pour les imprimer. L'espace est au milieu, car c'est le plus souvent imprimé. N et S et W et E ne paraissent jamais ensemble, ils se trouvent donc de part et d'autre de la mémoire. Pour l'optimisation, certaines des diminutions finales se produisent pendant la phase de sortie.
la source
Python 2 ,
62615853 octetsEssayez-le en ligne!
Pas génial, mais au moins pas une impression simple.
la source
Gelée ,
16 à15 octetsUn programme complet imprimant le texte
Essayez-le en ligne!
16 ...
Un lien niladique qui donne une liste de listes de caractères (minuscules).
Essayez-le en ligne!
Alternative 15 comme niladic lien qui donne une liste de caractères (minuscules) (espaces):
“¡XÇŀqỵÑ’ṃ“¡⁴ṁ»
.la source
Commodore BASIC (TheC64Mini, C64, C128, VIC-20 etc.) 28 octets BASK en mémoire utilisés
Dans Commodore BASIC, vous n'avez pas besoin du guillemet de fermeture
PRINT
ni desLET
instructions car l'interpréteur le ferme automatiquement, ce qui enregistre un jeton BASIC.Alternativement, on peut simplement utiliser le mode direct comme suit:
Commodore BASIC 23 caractères PETSCII (+
RETURN
à exécuter)Je ne suis pas sûr de savoir comment compter le nombre d'octets utilisés dans cette instance selon l'interpréteur
?
etPRINT
utiliser le même nombre d'octets, et aucun programme n'est stocké en mémoire.la source
PRINT
peut être remplacé par?
aussi, économisant quatre octets.PRINT
et?
utilisez la même quantité de jetons BASIC. Je ne compte pas les caractères PETSCII car ils ne sont pas très représentatifs de la quantité de mémoire disponible utilisée par l'interprète.Japt , 16 octets
Renvoie un tableau de chaînes en minuscules. La chaîne compressée était de 18 octets, mais en utilisant
a
le délimiteur à la place, puis le fractionnement s'est avéré plus court.Try it - footer formate la sortie.
la source
Poisson-mort ~ , 138 octets
Essayez-le en ligne!
Ainsi, la sortie en minuscule avec des nouvelles lignes est meilleure que la valeur par défaut (majuscule avec espaces).
Ce code a été généré par mon optimiseur, écrit en C ++ (merci à squid pour une autre idée d'optimisation!):
la source
Fichier de commandes, 19 octets
La question n'a jamais indiqué que vous deviez générer une sortie
N NE E SE S SW W NW
et rien d'autre,ni qu'il ne pouvait pas quitter en raison d'une erreur après cela.Ce code renvoie uniquement une erreur mais ne se ferme pas à cause de cela.Sortie
Fichier de commandes, 25 octets
Seulement la
N NE E SE S SW W NW
sortie sans erreur ou crash.la source
'N NE E SE S SW W NW'
- vous obtiendrez quelque chose comme:N NE E SE S SW W NW - command not found
Python2, 59 octets
Le nombre magique correspond aux index de trois bits joints dans la chaîne de caractères, en ordre inverse, afin que nous puissions commencer à effectuer une itération sur le LSB.
J'ai passé un certain temps à essayer de réduire le nombre magique, mais répéter la chaîne de caractères via multiply pour permettre l'indexation supplémentaire ne fonctionne pas car il faut coder pour l'espace. chaîne que les chiffres supprimés du nombre magique (y compris un couple de malheureux ne se soucie pas du milieu):
la source
K (ngn / k) ,
2322 octets-1 octet grâce à ngn!
Essayez-le en ligne!
J ,
3430 octetsEssayez-le en ligne!
la source
" "
<->"W"
(0
<->4
en base 5), l'espace sera à la fin et nous pourrons le supprimer car l'indexation de chaîne hors limites donne quand même un espace:"WNES"@5\7108085518230
05AB1E , 14 octets
Essayez-le en ligne!
Ceci affiche la chaîne sauf en minuscule.
la source
•
pour -1Brachylog , 19 octets
Essayez-le en ligne!
Sortie sous forme de liste.
ḍ₄ḍᵐc
enregistre deux octets sur l'écriture de sept espaces et fait du prédicat entier un littéral chaîne, donc au moins cela lie PHP ...J'ai essayé d'être intelligent avec
3⟦{;"NESW"↺₍h₂a₀ᶠ}ᵐc
, mais cela ne pouvait pas obtenir SE ou NW, et c'est un octet plus long de toute façon.la source
Espaces blancs , 151 octets
Lettres
S
(espace),T
(tabulation) etN
(nouvelle ligne) ajoutées uniquement en surbrillance.[..._some_action]
ajouté comme explication seulement.Essayez-le en ligne (avec des espaces bruts, des onglets et des nouvelles lignes uniquement).
Explication:
La constante
84
est générée par ce programme Java que j'ai écrit pour un autre défi auquel j'ai répondu dans Whitespace .la source
MathGolf ,
2017 octets-3 octets grâce à @maxb .
Essayez-le en ligne.
Explication:
la source
É
etÄ
dans ce cas) me déroutent encore un peu parfois .. Parfois, je ne suis pas sûr de savoir si je dois ou non utiliser ces blocs de code. Vousm+
n'en utilisez pas par exemple. Mais tuÄ
es un bloc de code de taille 1. J’ai encore essayémÅî╪
de voir ce qui s’est passé, c’est pourquoi je comprends maintenant pourquoi il existe un bloc de code de taille 1Ä
pour commencer. :)) Merci pour les -3 octets, cependant. Je vois encore beaucoup à apprendre.{}
.mÅî╪
crée le mappage, mais il n'y a pas de boucle for dans le mappage. Si vous écrivezm{î{╪}}
, il est peut-être plus facile de voir que le code est "mapper sur: boucle <index> fois, et faire pivoter la chaîne chaque boucle". La raison pour laquellem+
n'en a pas, c'est que certaines commandes ont des blocs implicites d'un octet (mapper, filtrer, réduire, etc.), mais qu'ilî
ne s'agit pas d'une commande destinée à être utilisée en combinaison avec un bloc.{...}
, mais j'ai un peu oublié queinteger{
c'est une boucle for. :) Maintenant, celaîÄ╪
fait beaucoup plus de sens. Merci pour l'explication!CSS ,
4239 octets(merci à un arachnide de pierre pour la version révisée)
la source
body:after{content:"N NE E SE S SW W NW"
Graine , 6014 octets
Génère le programme befunge suivant:
la source
Hodor , 177 octets
Essayez-le en ligne!
la source
Assembly (x86, Linux), 68 octets
La source:
Code provenant principalement de Shortest ELF pour "Hello world \ n"?
la source
Gelée , 16 octets
Essayez-le en ligne!
Avec pied de page à imprimer séparé par espace
Un lien niladique qui renvoie une liste de chaînes. 2 octets plus courts (et sans doute plus intéressants) que la chaîne compressée en Jelly.
la source
C # (compilateur interactif Visual C #) , 24 octets
Essayez-le en ligne!
la source