Douglas Adams nasceu em 11 de março de 1952 e morreu quando tinha apenas 49 anos. Em homenagem a esse escritor maravilhoso, eu desafio você a exibir 42 da maneira mais criativa possível.
Você pode imprimi-lo no log, através de algum método complicado, ou exibi-lo como arte ASCII, ou qualquer outra coisa! Basta criar um método criativo de exibir 42.
Por ser um concurso de popularidade, qualquer que seja a resposta mais positiva até 11 de março, será declarada vencedora.
Nota: isto não é uma duplicata. A pergunta que foi marcada como duplicada foi uma pergunta de controle de código cujo objetivo era escrever o código na saída 42, não encontrar a maneira mais criativa de exibi- lo.
Vencedor: grovesNL! Com impressionantes 813 votos! Parabéns!
Menções Honrosas:
Mr Lister C 228 Pelo uso inteligente de #define
David Carraher Mathematica 45 Para que a função matemática complicada e complicada atinja 42
Calculadora Aschratt do Windows 20 Porque, bem, é calculadora do Windows E definitivamente 1337.
f.rodrigues Python 17 Devido ao uso inteligente do uso de programas externos. E MSPaint
Jason C LMGTFY 14 Para o uso de LMGTFY (Deixe-me pesquisar no Google por você)
Trimsty Python 12 Para o uso inteligente de uma mensagem de erro na saída 42.
Mukul Kumar C ++ 7 Para a boa saída ASCII.
Se você acha que há outra resposta que vale a pena colocar na lista, por favor, comente!
fonte
Respostas:
Brainfuck duplo
que gera ...
que gera ...
fonte
6*9=42
.C
Aqui está um oldie, mas goodie ...
Este programa contém 42 caracteres ASCII diferentes.
fonte
six*nine
tornando - se1+5*8+1
qual é 42. Muito bem, Sr. Lister.#define
trabalha em C ++ exatamente da mesma maneira que em C. #Brainfuck
Demorou um pouco para chegar lá, mas eu gosto do resultado:
Quando executado, ele imprimirá 42, é claro.
fonte
JavaScript:
A saída é:
Nada mal, né? :)
Para as pessoas que não entendem, ele realmente avalia o seguinte:
fonte
_
é um nome de variável válido em JavaScript - e assim é__
,___
,____
,________
.C, Doze Dias de Estilo Natal
Nova versão:
Resultado:
A propósito, também verifique minha resposta de conversão de texto em fala .
Versão original:
A saída é:
Espaçamento alternativo, se você estiver se sentindo brega:
O programa é uma única declaração recursiva. Eu fiz isso no estilo do meu programa C ofuscado favorito de todos os tempos, Doze Dias de Natal (compile, prepare a mente para ser soprado, corra).
COMO
Além disso, como esse parece um lugar tão bom quanto qualquer outro, aqui está um guia que descreve como criar esse tipo de programa. Este guia usa a versão original acima como exemplo. Além do primeiro bit com as letras maiúsculas, são etapas gerais:
INICIAL: Primeiramente, comecei escrevendo as letras maiúsculas:
Em seguida, fiz uma lista numerada dos padrões exclusivos em cada linha de caracteres de 5 colunas:
E assim, cada uma das 5 linhas de pixel de texto se torna uma série de 9 números:
Para ofuscação (e facilidade de programação), adicionamos o caractere '#' aos números. No programa abaixo,
patterns
está a matriz de padrões de pixel elines
a matriz ofuscada de códigos de padrão para cada linha, terminada por um 'x'. Para ofuscação adicional, definimos pixels "ativados"patterns
como qualquer caractere que não seja um espaço; isso nos permite colocar mais texto enganoso empattern
:PASSO 1: O próximo passo envolve algumas tarefas:
int function (int, int)
e use os mesmos nomes de parâmetro para cada uma. As razões ficarão claras mais tarde.main
para o formulárioint main (int, int, int)
e nomeie os dois últimos parâmetros iguais aos nomes dos parâmetros de função.int putchar (int)
.Também podemos tirar proveito do estranho recurso C, onde
a[b]
é equivalenteb[a]
a ofuscar ainda mais.PASSO 2: Em seguida, use os operadores
?:
e,
para transformar cada função em uma únicareturn
instrução. Estou ilustrando isso separadamente do acima, porque é aqui que as coisas começam a ficar confusas de se olhar. Lembre-se de queputchar()
retorna umint
e?:
tem precedência sobre,
:PASSO 3: Ok. O próximo passo é grande. Todas as funções agora são uma única instrução da mesma forma. Agora podemos combiná-los todos em uma única função, identificando cada um por um número - essencialmente transformando todo o programa em uma única função recursiva. Observe que o primeiro parâmetro a
main
será 1 quando o programa for executado sem argumentos, portanto esse deve ser o nosso estado inicial.Além disso, como nosso parâmetro
c
tomain
é nossa variável de estado, sempre sabemos seu valor e podemos ofuscar um pouco mais substituindo constantes inteiras pelos valores em termos dec
(por exemplo, quando sabemos quec
é 2, podemos substituir 5 comc+3
). Outras pequenas ofuscações também podem ser feitas (por exemplo, substituí'#'
por35
e043
):PASSO 4: Finalmente, remova o
switch
bloco usando uma série de?:
operadores. Também podemos remover asint
declarações, pois C as usará por padrão, assim como asreturn
próprias (o que gerará um aviso na pior das hipóteses). Depois disso, nosso programa é uma função única e recursiva com uma instrução. Muito legal, né?Editar: Substituí
putchar()
por ummain
ec==4
abaixo; porque eu pensei no último minuto:Se você quiser adicionar um pouco de talento, você pode usar os números mais interessantes para
c
e até mesmo basear as verificações off de outros números (por exemplo, para oc==2
caso,z
é ignorado e disponível, então em vez de chamarmain(2,z,_)
você poderia chamarmain(-97,_,_)
e substituirc==2
comc<-z
). Seja criativo; as possibilidades são infinitas.ACABAMENTO: O passo final, então, é organizar o texto em algum padrão criativo, e pronto! Você pode ajustar um pouco o código para ajudar na formatação (por exemplo, adicionei alguns dados extras no final da
patterns
string no programa publicado para ajudar a ajustar o comprimento da linha). As senhoras certamente estarão prontas.fonte
Estou me sentindo preguiçoso.
Pitão
Resultado:
fonte
Java
(ou C ++, o código é quase semelhante)
Usando as funções String, não esqueça de incluir sua biblioteca!
PS: Eu sei que é demorado, mas deveria ser criativo, certo? E de qualquer maneira, não é um "menor ganho de bytes".
Aqui está a saída:
Imagine minha miséria quando contei e descobri que "O restaurante no fim do universo" tinha 41 caracteres! : / Suspiro.
fonte
Mathematica
Take 1
Com algum trabalho, eu devo ser capaz de jogar isso um pouco. :)
Em
InputForm
:Em
TraditionalForm
:Testando:
Take 2
Nota: Os numerais foram feitos da seguinte maneira.
fonte
Parece apropriado:
Resultado:
Ubuntu 12.04, área de trabalho de 64 bits
fonte
echo $(grep -i ... tr -d ' ') | sed 's/ //g'
colocaria tudo em uma linha. Você também pode usar aspas em vez do$()
formulário, mas é mais difícil colocar um comentário aqui.$()
é especificado pelo padrão POSIX .Calculadora do Windows
Multiplicando Pi por 13,37 e ignorando o decimal
:P
fonte
Pitão
Eu acho que só funciona no Windows 7.
O resultado é abrir o Paint e pintar 42 como mão livre.
fonte
Java (Swing)
Isso exibirá um quadro desenhando a resposta . Ele usa apenas
42
para valores.fonte
Mathematica
embora eu ache que é trapaça, na verdade, já que é codificado. E não muito criativo, da minha parte ... :)
fonte
Rubi
É sabido o que você ganha se multiplicar seis por nove . Isso fornece uma solução:
Pitão
Uma variante da fórmula autorreferencial de Tupper :
Resultado:
fonte
Javascript
fonte
true == 1
.[]
vez de""
([] == ''
)!alert((!![]+-~[])*(!![]+-~[])+[]+(!![]+-~[]))
(!-[] === true) && (!~[] === false)
. Você também pode substituir{}
para[]
.(!!{}+!-[]<<-~{})+[]+(!-[]+-~[])
?LMGTFY
http://bit.ly/1ldqJ8w
Curto o suficiente para precisar digitar isso para atingir a contagem mínima de caracteres ...
fonte
Adiante:
Que 1 LOAD produz:
fonte
C ++
Código Morse ;)
fonte
R
Resultado:
fonte
Java
Resultado:
fonte
SWI-Prolog, alguém?
Resultado:
Isso é ainda mais preguiçoso do que o chamado Mathematica-Wolfram-Alpha, mas ei!
fonte
Shell Linux
Aqui está algo que eu escrevi em 1999 e usei como minha assinatura Usenet na época.
Editar: Ha! Essa foi a 42ª resposta.
fonte
Versão do PHP:
Versão JavaScript:
Resultado:
fonte
42
. Tentei várias outras maneiras legíveis por humanos, e foi o mais próximo que pude transformar a data para chegar à solução.mm/dd/yy
. Se você diz04/03/11
, eu o leria em 4 de março de 2011 - e não em 3 de abril.dc
Tentando multiplicar
1+8
e5+1
obter42
. Parece que a ignorância da precedência do operador levou a42
.Pitão
Resultado:
42
bater
(Multiplicando
6
por9
)C
Resultado:
42
fonte
Brainf ** k
fonte
C ++
resultado
fonte
getch
estar_getch
em seu lugar.Javascript
Saídas
42
.fonte
J
Linha única simétrica sem caracteres alfanuméricos.
Saídas 42.
O cálculo principal é:
fonte
Javascript
O código ASCII para
*
, que para a maioria dos programadores significa "tudo", é 42. é+!"The End of the Universe"
avaliado como 0.fonte
"The End of the Universe"|0
PHP
Pergunte a WolframAlpha. Aqui está um código que usa a API WolframAlpha para recuperar o resultado de uma consulta de pesquisa específica:
Resultado:
Demonstração de trabalho
fonte