Écrivez un programme qui génère les 64 couches de cette représentation du nombre de Graham à partir de Wikipedia:
Votre sortie doit correspondre exactement à cette version ASCII (dans laquelle ^
représentent les flèches vers le haut de Knuth et les combinaisons de barres obliques et de soulignements représentent les grands crochets horizontaux):
3^^...............................................................................................................................^3
\_______________________________________________________________ _______________________________________________________________/
\/
3^^.............................................................................................................................^3
\______________________________________________________________ ______________________________________________________________/
\/
3^^...........................................................................................................................^3
\_____________________________________________________________ _____________________________________________________________/
\/
3^^.........................................................................................................................^3
\____________________________________________________________ ____________________________________________________________/
\/
3^^.......................................................................................................................^3
\___________________________________________________________ ___________________________________________________________/
\/
3^^.....................................................................................................................^3
\__________________________________________________________ __________________________________________________________/
\/
3^^...................................................................................................................^3
\_________________________________________________________ _________________________________________________________/
\/
3^^.................................................................................................................^3
\________________________________________________________ ________________________________________________________/
\/
3^^...............................................................................................................^3
\_______________________________________________________ _______________________________________________________/
\/
3^^.............................................................................................................^3
\______________________________________________________ ______________________________________________________/
\/
3^^...........................................................................................................^3
\_____________________________________________________ _____________________________________________________/
\/
3^^.........................................................................................................^3
\____________________________________________________ ____________________________________________________/
\/
3^^.......................................................................................................^3
\___________________________________________________ ___________________________________________________/
\/
3^^.....................................................................................................^3
\__________________________________________________ __________________________________________________/
\/
3^^...................................................................................................^3
\_________________________________________________ _________________________________________________/
\/
3^^.................................................................................................^3
\________________________________________________ ________________________________________________/
\/
3^^...............................................................................................^3
\_______________________________________________ _______________________________________________/
\/
3^^.............................................................................................^3
\______________________________________________ ______________________________________________/
\/
3^^...........................................................................................^3
\_____________________________________________ _____________________________________________/
\/
3^^.........................................................................................^3
\____________________________________________ ____________________________________________/
\/
3^^.......................................................................................^3
\___________________________________________ ___________________________________________/
\/
3^^.....................................................................................^3
\__________________________________________ __________________________________________/
\/
3^^...................................................................................^3
\_________________________________________ _________________________________________/
\/
3^^.................................................................................^3
\________________________________________ ________________________________________/
\/
3^^...............................................................................^3
\_______________________________________ _______________________________________/
\/
3^^.............................................................................^3
\______________________________________ ______________________________________/
\/
3^^...........................................................................^3
\_____________________________________ _____________________________________/
\/
3^^.........................................................................^3
\____________________________________ ____________________________________/
\/
3^^.......................................................................^3
\___________________________________ ___________________________________/
\/
3^^.....................................................................^3
\__________________________________ __________________________________/
\/
3^^...................................................................^3
\_________________________________ _________________________________/
\/
3^^.................................................................^3
\________________________________ ________________________________/
\/
3^^...............................................................^3
\_______________________________ _______________________________/
\/
3^^.............................................................^3
\______________________________ ______________________________/
\/
3^^...........................................................^3
\_____________________________ _____________________________/
\/
3^^.........................................................^3
\____________________________ ____________________________/
\/
3^^.......................................................^3
\___________________________ ___________________________/
\/
3^^.....................................................^3
\__________________________ __________________________/
\/
3^^...................................................^3
\_________________________ _________________________/
\/
3^^.................................................^3
\________________________ ________________________/
\/
3^^...............................................^3
\_______________________ _______________________/
\/
3^^.............................................^3
\______________________ ______________________/
\/
3^^...........................................^3
\_____________________ _____________________/
\/
3^^.........................................^3
\____________________ ____________________/
\/
3^^.......................................^3
\___________________ ___________________/
\/
3^^.....................................^3
\__________________ __________________/
\/
3^^...................................^3
\_________________ _________________/
\/
3^^.................................^3
\________________ ________________/
\/
3^^...............................^3
\_______________ _______________/
\/
3^^.............................^3
\______________ ______________/
\/
3^^...........................^3
\_____________ _____________/
\/
3^^.........................^3
\____________ ____________/
\/
3^^.......................^3
\___________ ___________/
\/
3^^.....................^3
\__________ __________/
\/
3^^...................^3
\_________ _________/
\/
3^^.................^3
\________ ________/
\/
3^^...............^3
\_______ _______/
\/
3^^.............^3
\______ ______/
\/
3^^...........^3
\_____ _____/
\/
3^^.........^3
\____ ____/
\/
3^^.......^3
\___ ___/
\/
3^^.....^3
\__ __/
\/
3^^...^3
\_ _/
\/
3^^^^3
Notez qu'il y a 64 couches, qu'il n'y a pas d'espaces de fin et que deux ^
se produisent avant les points et qu'un seul se produit après.
Le hachage MD5 de votre sortie devrait être précisément c84d0e20eac2a7f891ab42a8eb77759f
, ou 1ad3b10d06e38693436c14958b2c47a8
s'il y a une nouvelle ligne de fin (ce qui est correct).
Le code le plus court en octets gagne. Sortie vers sortie standard. Il n'y a aucune entrée.
la source
1ad3b10d06e38693436c14958b2c47a8
comme indiqué par grc, ouc84d0e20eac2a7f891ab42a8eb77759f
si le caractère de nouvelle ligne final peut être omis.Réponses:
CJam - 64
Essayez-le sur http://cjam.aditsu.net/
la source
Python, 122
Exemple:
la source
Perl - 113 (112 + 1 pour -E)
Golfé:
Non golfé:
EDIT: Il y avait une erreur d'interpolation de chaîne où perl pensait que $ m3 était une variable, j'ai donc dû ajouter 2 caractères pour corriger cela.Résolu en changeant $ m en $.NINJA EDIT: Instances remplacées de "" par $ ". Enregistre 2 caractères
NINJA EDIT 2: Merci @chilemagic d'avoir indiqué que je peux utiliser say au lieu d'imprimer avec -E pour enregistrer un caractère.
NOT-SO-NINJA EDIT 3: La solution de @ Nax a battu mon ancienne solution, je l'ai donc un peu améliorée pour la maintenir.
la source
say
au lieu deprint
puis l'exécuter avec-E
au lieu de-e
(si votre version Perl est suffisamment élevée). Ça a l'air super!Haskell, 152
la source
+1
et ajoutez simplement le point avant"^3"
.C 161
182(Je pense que j'ai optimisé cette méthode, je devrais peut-être en trouver une nouvelle qui peut être étudiée plus bas)
compiler en C99!
JS 158
xem.github.io/obfuscatweet/ 124:
la source
Bash + coreutils, 150
J'ai pensé que je pourrais faire mieux que ça. Tant pis.
Production:
la source
STATA 135
la source
JavaScript 179
Testez-le dans la console de votre navigateur ou sur http://jsfiddle.net/2qwvrvcw/ .
la source
Javascript (203)
Non golfé:
la source
C # (
212211).Net Fiddle (il semble que la classe et la méthode Main soient publiques)
Légèrement non golfé:
la source
Perl,
116112109108 (dont -E)Ma première tentative de golf. Veuillez le prendre comme tel:
Golfé:
Très légèrement non golfé (non entretenu ...):
Essentiellement, cela fonctionne comme ceci: pour chaque ligne de 3 et une accolade (ceux-ci sont traités ensemble), il écrit leur séquence encodée en RLE , puis la décode. La règle est simple: chaque caractère suivi d'un nombre est étendu à ce caractère ce nombre de fois. Les caractères sans numéro sont laissés seuls. Enfin, le caractère
!
désigne un 3 et unN
signifie une nouvelle ligne (3 devait être encodé car il est un nombre et participerait avec impatience comme le nombre de répétitions).Chaque ligne de 3 et son accolade obtiennent un élément dans le tableau de 64 éléments généré par la carte. Disons que, comme print, peut produire des tableaux - si un tableau est donné, il imprime tous les éléments (sans séparateurs).
J'ai utilisé le truc de chilemagic avec
-E
. Merci pour ça.Renforts: Deux solutions de 113 octets ont commencé à se cacher ici. RLE ne succombera pas sans combat!
Nettoyage des flux : je me suis maintenant rendu compte que je n'ai pas besoin d'une translittération spéciale de \ n, car toutes les chaînes en Perl sont automagiquement à lignes multiples! Ainsi, RLE s'accroche plus près du dos du Ruby! Maintenant à 109 octets.
Illumination angoissante : Compter correctement les personnages est plus difficile que je ne le pensais. Après quelques difficultés, je me suis installé
(-1, car il compte un LF à la toute fin du script). De plus, j'ai réorganisé mes affectations et enregistré 1 caractère, ce qui me donne 108 octets.la source
MATLAB (325)
non golfé:
MATLAB (252)
non golfé:
la source
PHP 214
Je pensais que j'allais bien jusqu'à ce que je compte les personnages, de toute façon c'est ici -
la source
->' '
,<br>
->\n
)<?
au début du code - ce doit être un programme valide, pas une fonction.<?function a($n,$v=" "){return str_repeat($v, $n);}for($i=64;$i>1;){$b=a($i-1,"_");$v.=a(64-$i)."3^^".a($i*2-1,".")."^3\n".a(65-$i--)."\\$b".a(2)."$b/\n".a(65)."\/\n";}$v.=a(63)."3^^^^3";echo$v;
php grahams.php | md5sum
:c84d0e20eac2a7f891ab42a8eb77759f -
Lua - 174
Avant cela, j'ai obtenu deux solutions algorithmiquement différentes (toutes deux 182!):
la source