Douglas Adams nació el 11 de marzo de 1952 y murió cuando tenía solo 49 años. En honor a este maravilloso escritor, te desafío a que muestres 42 de la manera más creativa posible.
¡Puede imprimirlo en el registro, a través de algún método complicado, o mostrarlo como arte ASCII, o cualquier cosa! Simplemente invente un método creativo para mostrar 42.
Debido a que este es un concurso de popularidad, la respuesta que tenga más votos positivos para el 11 de marzo, será declarada ganadora.
Nota: esto no es un duplicado. La pregunta que se marcó como duplicado fue una pregunta de control de código cuyo objetivo era escribir código en la salida 42, no encontrar la forma más creativa de mostrarlo .
Ganador: grovesNL! ¡Con un asombroso 813 votos! ¡Felicidades!
Menciones honoríficas:
Mr Lister C 228 Para el uso inteligente de #define
David Carraher Mathematica 45 Para que la complicada y complicada función matemática logre 42
Aschratt Windows Calculator 20 Porque, bueno, es una calculadora de Windows y definitivamente 1337.
f.rodrigues Python 17 Debido al uso inteligente del uso de programas externos. Y MSPaint
Jason C LMGTFY 14 Para el uso de LMGTFY (Permítame buscarlo en Google)
Trimsty Python 12 Para el uso inteligente de un mensaje de error en la salida 42.
Mukul Kumar C ++ 7 Para la buena salida ASCII.
Si crees que hay otra respuesta que vale la pena poner en la lista, ¡coméntala!
fuente
Respuestas:
Doble brainfuck
que produce ...
que produce ...
fuente
6*9=42
.C
Aquí hay un viejo pero bueno ...
Este programa contiene 42 caracteres ASCII diferentes.
fuente
six*nine
convierte en1+5*8+1
42. Bien hecho, Sr. Lister.#define
funciona en C ++ exactamente de la misma manera que en C.Brainfuck
Tomó un tiempo llegar allí, pero me gusta el resultado:
Cuando se ejecute, imprimirá 42, por supuesto.
fuente
JavaScript:
El resultado es:
No está mal, ¿eh? :)
Para las personas que no entienden, en realidad evalúa lo siguiente:
fuente
_
es un nombre de variable válido en JavaScript - y también lo es__
,___
,____
,________
.C, doce días de estilo navideño
Nueva versión:
Salida:
Por cierto, también mira mi respuesta de texto a voz .
Versión original:
El resultado es:
Espaciado alternativo, si te sientes de mal gusto:
El programa es una declaración recursiva única. Lo hice al estilo de mi programa favorito de C ofuscado, Doce días de Navidad (compilar, preparar la mente para volar, correr).
CÓMO
Además, dado que este parece un lugar tan bueno como cualquier otro, aquí hay una guía que describe cómo hacer este tipo de programa. Esta guía utiliza la versión original anterior como ejemplo. Aparte del primer bit con las letras mayúsculas, son pasos generales:
INICIAL: Primero, comencé haciendo las letras mayúsculas:
Luego hice una lista numerada de los patrones únicos en cada fila de caracteres de 5 columnas:
Y así, cada una de las filas de texto de 5 píxeles se convierte en una serie de 9 números:
Para la ofuscación (y la facilidad de programación) agregamos el carácter '#' a los números. En el siguiente programa,
patterns
es la matriz de patrones de píxeles, ylines
es la matriz ofuscada de códigos de patrón para cada línea, terminada por una 'x'. Para mayor ofuscación, definimos píxeles "en"patterns
como cualquier carácter que no sea un espacio; esto nos permite poner más texto engañoso enpattern
:PASO 1: El siguiente paso implica algunas tareas:
int function (int, int)
y use los mismos nombres de parámetros para cada una. Las razones se aclararán más adelante.main
al formularioint main (int, int, int)
y nombre los dos últimos parámetros de la misma manera que los nombres de los parámetros de su función.int putchar (int)
.También podemos aprovechar la característica extraña de C, que
a[b]
es equivalenteb[a]
a ofuscarnos aún más.PASO 2: A continuación, utilice los operadores
?:
y,
para transformar cada función en una solareturn
declaración. Estoy ilustrando esto por separado de lo anterior porque aquí es donde las cosas comienzan a ser confusas de ver. Recuerde queputchar()
devuelve unint
, y?:
tiene prioridad sobre,
:PASO 3: Ok. El siguiente paso es grande. Todas las funciones son ahora una sola declaración de la misma forma. Ahora podemos combinarlos todos en una sola función, identificando cada uno por un número, esencialmente convirtiendo todo el programa en una sola función recursiva. Tenga en cuenta que el primer parámetro
main
será 1 cuando el programa se ejecute sin argumentos, por lo que ese debería ser nuestro estado inicial.Además, dado que nuestro parámetro
c
tomain
es nuestra variable de estado, conocemos su valor en todo momento, y podemos ofuscarnos un poco más reemplazando las constantes enteras con sus valores en términos dec
(por ejemplo, cuando sabemos quec
es 2, podemos reemplazar 5 conc+3
). También se pueden hacer otras pequeñas ofuscaciones (por ejemplo, las reemplacé'#'
por35
y043
):PASO 4: Finalmente, elimine el
switch
bloque utilizando una serie de?:
operadores. También podemos eliminar lasint
declaraciones, ya que C las usará por defecto, así como lareturn
propia (que generará una advertencia en el peor de los casos). Después de esto, nuestro programa es una única función recursiva con una declaración. Muy bien, ¿verdad?Editar: lo reemplacé
putchar()
con amain
yc==4
debajo; porque lo pensé en el último momento:Si desea agregar un poco de estilo, puede usar números más interesantes
c
e incluso basar los cheques en otros números (por ejemplo, para elc==2
caso,z
se ignora y está disponible, por lo que en lugar de llamarmain(2,z,_)
, puede llamarmain(-97,_,_)
y reemplazarc==2
conc<-z
). Ser creativo; Las posibilidades son infinitas.ACABADO: El paso final, entonces, es organizar el texto en algún patrón creativo, ¡y listo! Puede ajustar un poco el código para ayudar con el formateo (por ejemplo, agregué algunos datos adicionales al final de la
patterns
cadena en el programa publicado para ayudar a obtener la longitud correcta de la línea). Las señoras seguramente estarán llenas de complementos.fuente
Me siento vago
Pitón
Salida:
fuente
Java
(o C ++, el código es casi similar)
Usando funciones de cadena, ¡así que no olvide incluir su biblioteca!
PD: Sé que es largo, pero se supone que es creativo, ¿verdad? Y de todos modos, no es un "menor byte-gana".
Aquí está la salida:
¡Imagina mi miseria cuando conté y descubrí que "El restaurante del fin del universo" tenía 41 personajes! : / Suspiro.
fuente
Mathematica
Toma 1
Con algo de trabajo, debería ser capaz de jugar golf un poco. :)
En
InputForm
:En
TraditionalForm
:Pruebas:
Tomar 2
Nota: Los números se hicieron de la siguiente manera.
fuente
Parece apropiado:
Salida:
Ubuntu 12.04, escritorio de 64 bits
fuente
echo $(grep -i ... tr -d ' ') | sed 's/ //g'
lo pondría todo en una línea. También podría usar comillas inversas en lugar del$()
formulario, pero es más difícil poner un comentario aquí.$()
está especificado por el estándar POSIX .Calculadora de Windows
Multiplicar Pi con 13.37 e ignorar el decimal
:P
fuente
Pitón
Supongo que solo funciona en Windows 7.
El resultado es abrir Pintura y pintar 42 como mano libre.
fuente
Java (Swing)
Esto mostrará un cuadro dibujando la respuesta . Solo se usa
42
para valores.fuente
Mathematica
aunque creo que es trampa, realmente, ya que está codificado. Y no muy creativo, por mi parte ... :)
fuente
Rubí
Es bien sabido lo que obtienes si multiplicas seis por nueve . Esto da una solución:
Pitón
Una variante de la fórmula autorreferencial de Tupper :
Salida:
fuente
Javascript
fuente
true == 1
.[]
lugar de""
([] == ''
)!alert((!![]+-~[])*(!![]+-~[])+[]+(!![]+-~[]))
(!-[] === true) && (!~[] === false)
. También puede sustituir{}
por[]
.(!!{}+!-[]<<-~{})+[]+(!-[]+-~[])
?LMGTFY
http://bit.ly/1ldqJ8w
Lo suficientemente corto como para tener que escribir esto para alcanzar el recuento mínimo de caracteres ...
fuente
Adelante:
Que 1 CARGA salidas:
fuente
C ++
Código Morse ;)
fuente
R
Resultado:
fuente
Java
Salida:
fuente
SWI-Prolog, alguien?
Salida:
Esto es aún más vago que el de Mathematica-llamando-Wolfram-Alpha, ¡pero oye!
fuente
Shell de Linux
Aquí hay algo que escribí en 1999 y usé como mi firma de Usenet en ese entonces.
Editar: ¡Ja! Esta fue la respuesta número 42.
fuente
Versión PHP:
Versión de JavaScript:
Salida:
fuente
42
. Intenté varias otras formas legibles por humanos, y esto fue lo más cercano que pude transformar la fecha para llegar a la solución.mm/dd/yy
. Si dices04/03/11
, lo leería el 4 de marzo de 2011, no el 3 de abril.corriente continua
Intentando multiplicar
1+8
y5+1
obtener42
. Parece que la ignorancia de la precedencia del operador condujo a42
.Pitón
Salida:
42
golpetazo
(Multiplicando
6
por9
)C
Salida:
42
fuente
Brainf ** k
fuente
C ++
salida
fuente
getch
ser_getch
en su lugar.JavaScript
Salidas
42
.fuente
J
Una línea simétrica sin caracteres alfanuméricos.
Salidas 42.
El cálculo principal es:
fuente
JavaScript
El código ASCII para
*
, que para la mayoría de los programadores significa "todo", es 42. se+!"The End of the Universe"
evalúa a 0.fuente
"The End of the Universe"|0
PHP
Pregúntale a WolframAlpha. Aquí hay un código que usa la API WolframAlpha para recuperar el resultado de una consulta de búsqueda específica:
Salida:
Demostración de trabajo
fuente