Douglas Adams est né le 11 mars 1952 et est décédé alors qu'il n'avait que 49 ans. En l'honneur de ce merveilleux écrivain, je vous mets au défi d'afficher 42 de la manière la plus créative possible.
Vous pouvez l'imprimer dans le journal, via une méthode compliquée, ou l'afficher sous forme d'art ASCII, ou autre! Il suffit de proposer une méthode créative d’affichage 42.
Parce que c'est un concours de popularité, quelle que soit la réponse ayant obtenu le plus de votes positifs avant le 11 mars, sera déclaré gagnant.
Remarque: ce n'est pas un doublon. La question qui l’indiquait comme étant en double était une question à la traîne de code dont le but était d’écrire du code dans la sortie 42, sans trouver le moyen le plus créatif de l’ afficher .
Gagnant: grovesNL! Avec 813 votes stupéfiants! Félicitations!
Mentions honorables:
M. Lister C 228 Pour l'utilisation intelligente de #define
David Carraher Mathematica 45 Pour la fonction mathématique compliquée et compliquée à atteindre 42
Aschratt Windows Calculator 20 Parce que, bien, c'est la calculatrice Windows Et certainement 1337.
f.rodrigues Python 17 En raison de l'utilisation intelligente de programmes externes. Et MSPaint
Jason C LMGTFY 14 Pour l'utilisation de LMGTFY (Laissez-moi Google pour vous)
Trimsty Python 12 Pour une utilisation intelligente d’un message d’erreur à la sortie 42.
Mukul Kumar C ++ 7 Pour la belle sortie ASCII.
Si vous pensez qu'il y a une autre réponse à mettre sur la liste, merci de la commenter!
Réponses:
Double Brainfuck
qui sort ...
qui sort ...
la source
6*9=42
.C
Voici un vieux mais goodie ...
Ce programme contient 42 caractères ASCII différents.
la source
six*nine
devient ce1+5*8+1
qui est 42. M. Lister bien fait.#define
fonctionne en C ++ exactement de la même manière qu'en C.Brainfuck
J'ai mis du temps à y arriver, mais j'aime bien le résultat:
Une fois exécuté, il imprimera 42, bien sûr.
la source
JavaScript:
La sortie est:
Pas mal hein? :)
Pour les personnes qui ne comprennent pas, il évalue en réalité les éléments suivants:
la source
_
est un nom de variable valide dans JavaScript - et ainsi est -__
,___
,____
,________
.C, style des douze jours de Noël
Nouvelle version:
Sortie:
À propos, consultez également ma réponse text-to-speech .
Version originale:
La sortie est:
Espacement alternatif, si vous vous sentez collant:
Le programme est un seul énoncé récursif. Je l'ai fait dans le style de mon programme C obscurci préféré, Twelve Days of Christmas (compiler, préparer l'esprit à souffler, à courir).
COMMENT
De plus, comme cela semble être un endroit comme un autre, voici un guide décrivant comment réaliser ce type de programme. Ce guide utilise la version originale ci-dessus à titre d'exemple. Mis à part le premier bit avec les lettres majuscules, ce sont des étapes générales:
INITIAL: Tout d’abord, j’ai commencé par créer les lettres majuscules:
J'ai ensuite fait une liste numérotée des modèles uniques dans chaque ligne de caractères de 5 colonnes:
Ainsi, chacune des 5 lignes de pixels de texte devient une série de 9 chiffres:
Pour obscurcir (et faciliter la programmation), nous ajoutons le caractère '#' aux nombres. Dans le programme ci-dessous, se
patterns
trouve le tableau de motifs de pixels etlines
le tableau obscurci de codes de motifs pour chaque ligne, se terminant par un «x». Pour un obscurcissement supplémentaire, nous définissons "sur" les pixels danspatterns
un caractère qui n'est pas un espace; cela nous permet de mettre plus de texte trompeur danspattern
:ÉTAPE 1: La prochaine étape implique quelques tâches:
int function (int, int)
et utilisez les mêmes noms de paramètres pour chacune d’elles. Les raisons deviendront claires plus tard.main
au formulaireint main (int, int, int)
et nommez les deux derniers paramètres de la même manière que les noms de paramètres de votre fonction.int putchar (int)
.Nous pouvons également tirer parti de la fonction C étrange où
a[b]
équivautb[a]
à obscurcir davantage.ÉTAPE 2: Utilisez ensuite les opérateurs
?:
et,
pour transformer chaque fonction en une seulereturn
instruction. Je l’illustre séparément de ce qui précède, car c’est là que les choses commencent à devenir confuses. Rappelez-vous queputchar()
renvoie unint
, et?:
prime sur,
:ÉTAPE 3: Ok. La prochaine étape est un grand. Toutes les fonctions sont maintenant une seule déclaration de la même forme. Nous pouvons maintenant les combiner tous en une seule fonction, en les identifiant par un numéro - transformant ainsi l’ensemble du programme en une seule fonction récursive. Notez que le premier paramètre à
main
sera 1 lorsque le programme sera exécuté sans arguments, ce qui devrait donc être notre état initial.En outre, étant donné que notre paramètre
c
àmain
notre variable d'état, nous savons que sa valeur en tout temps, et nous pouvons obscurcir un peu plus loin en remplaçant des constantes entières avec leurs valeurs en termes dec
(par exemple, quand on saitc
est 2, on peut remplacer 5 avecc+3
). D'autres petites obscurcissements peuvent aussi être faits (par exemple, j'ai remplacé'#'
par35
et043
):ÉTAPE 4: Enfin, supprimez le
switch
bloc en utilisant une série d'?:
opérateurs. Nous pouvons également supprimer lesint
déclarations, car C les utilisera par défaut, ainsi que lereturn
lui - même (qui générera un avertissement au pire). Après cela, notre programme est une fonction unique, récursive avec une instruction. Assez cool, non?Edit: j'ai remplacé
putchar()
par unmain
et enc==4
dessous; parce que je viens d'y penser à la dernière minute:Si vous voulez ajouter un peu de talent, vous pouvez utiliser des numéros plus intéressants
c
et même baser les vérifications sur d'autres numéros (par exemple, pour lec==2
cas, ilz
est ignoré et disponible, de sorte qu'au lieu d'appeler,main(2,z,_)
vous pouvez appelermain(-97,_,_)
et remplacerc==2
parc<-z
). Sois créatif; les possibilités sont infinies.FINISH: La dernière étape consiste donc à organiser le texte selon un modèle créatif, et le tour est joué! Vous pouvez ajuster un peu le code pour vous aider à formater (par exemple, j'ai ajouté des données supplémentaires à la fin de la
patterns
chaîne dans le programme posté pour aider à obtenir la longueur de ligne correcte). Les dames ne manqueront pas d’être au top.la source
Je me sens paresseux.
Python
Sortie:
la source
Java
(ou C ++, le code est presque similaire)
Utilisez les fonctions String, alors n'oubliez pas d'inclure votre bibliothèque!
PS Je sais que c'est long, mais c'est supposé être créatif, non? Et de toute façon, ce n'est pas un "plus petit octet-gagne".
Voici la sortie:
Imaginez ma misère quand j'ai compté et découvert que "Le restaurant au bout de l'univers" avait 41 caractères! :/ Soupir.
la source
Mathematica
Prendre 1
Avec un peu de travail, je devrais être capable de jouer au golf un peu. :)
Dans
InputForm
:Dans
TraditionalForm
:Essai:
Prendre 2
Note: Les chiffres ont été faits comme suit.
la source
Semble approprié:
Sortie:
Ubuntu 12.04, bureau 64 bits
la source
echo $(grep -i ... tr -d ' ') | sed 's/ //g'
mettrait tout sur une seule ligne. Vous pouvez également utiliser des citations arrières au lieu du$()
formulaire, mais il est plus difficile de commenter ici.$()
est spécifié par le standard POSIX .Calculatrice Windows
Multiplier Pi avec 13.37 et ignorer la décimale
:P
la source
Python
Je suppose que cela ne fonctionne que sur Windows 7.
Le résultat est d'ouvrir Paint and painting 42 à main libre.
la source
Java (Swing)
Cela affichera un cadre dessinant la réponse . Il utilise uniquement
42
pour les valeurs.la source
Mathematica
Bien que je pense que c'est de la triche, vraiment, puisque c'est codé en dur. Et pas très créatif, de ma part ... :)
la source
Rubis
On sait bien ce que vous obtenez si vous multipliez six par neuf . Cela donne une solution:
Python
Une variante de la formule auto-référentielle de Tupper :
Sortie:
la source
Javascript
la source
true == 1
.[]
au lieu de""
([] == ''
)!alert((!![]+-~[])*(!![]+-~[])+[]+(!![]+-~[]))
(!-[] === true) && (!~[] === false)
. Vous pouvez également substituer{}
à[]
.(!!{}+!-[]<<-~{})+[]+(!-[]+-~[])
vousLMGTFY
http://bit.ly/1ldqJ8w
Assez court que j'ai dû taper ceci pour atteindre le nombre minimum de caractères ...
la source
En avant:
Que 1 CHARGE génère:
la source
C ++
Morse ;)
la source
R
Résultat:
la source
Java
Sortie:
la source
SWI-Prolog, quelqu'un?
Sortie:
C'est encore plus paresseux que celui de Mathematica qui appelle Wolfram-Alpha, mais hé!
la source
Shell Linux
Voici quelque chose que j'ai écrit en 1999 et que j'ai utilisé comme signature Usenet à l'époque.
Edit: Ha! C'était la 42ème réponse.
la source
Version PHP:
Version JavaScript:
Sortie:
la source
42
. J'ai essayé divers moyens lisibles par l'homme, et c'était le plus proche possible pour transformer la date afin d'arriver à la solution.mm/dd/yy
. Si vous le dites04/03/11
, je le lirais le 4 mars 2011 - pas le 3 avril.dc
Essayer de se multiplier
1+8
et5+1
d’obtenir42
. Il semble que cette ignorance de la préséance des opérateurs ait conduit à42
.Python
Sortie:
42
frapper
(Multiplier
6
par9
)C
Sortie:
42
la source
Brainf ** k
la source
C ++
sortie
la source
getch
être à la_getch
place.JavaScript
Sorties
42
.la source
J
Monoligne symétrique sans caractères alphanumériques.
Sorties 42.
Le calcul principal est:
la source
JavaScript
Le code ASCII pour
*
, qui pour la plupart des programmeurs signifie "tout", est 42. est+!"The End of the Universe"
évalué à 0.la source
"The End of the Universe"|0
PHP
Demandez à WolframAlpha. Voici un code qui utilise l'API WolframAlpha pour récupérer le résultat d'une requête de recherche spécifique:
Sortie:
Démo de travail
la source