Douglas Adams urodził się 11 marca 1952 r. I zmarł, gdy miał zaledwie 49 lat. Na cześć tego wspaniałego pisarza wzywam was do pokazania 42 w możliwie najbardziej kreatywny sposób.
Możesz wydrukować go w dzienniku za pomocą skomplikowanej metody lub wyświetlić jako grafikę ASCII lub cokolwiek innego! Po prostu wymyśl kreatywną metodę wyświetlania 42.
Ponieważ ten konkurs popularności, niezależnie od tego, która odpowiedź będzie najbardziej pozytywna do 11 marca, zostanie ogłoszony zwycięzcą.
Uwaga: to nie jest duplikat. Pytanie, które oznaczono jako powielanie, było pytaniem trollującym, którego celem było napisanie kodu na wyjście 42, a nie znalezienie najbardziej kreatywnego sposobu na jego wyświetlenie .
Zwycięzca: govesNL! Z zadziwiającą liczbą 813 głosów! Gratulacje!
Wyróżnienia:
Mr Lister C 228 Za sprytne użycie #define
David Carraher Mathematica 45 Za skomplikowaną i skomplikowaną funkcję matematyczną, aby osiągnąć 42
Aschratt Windows Calculator 20 Ponieważ, cóż, to kalkulator systemu Windows I na pewno 1337.
f.rodrigues Python 17 Ze względu na sprytne użycie programów zewnętrznych. I MSPaint
Jason C LMGTFY 14 Za korzystanie z LMGTFY (Let Me Google That For You)
Trimsty Python 12 Do sprytnego wykorzystania komunikatu o błędzie na wyjściu 42.
Mukul Kumar C ++ 7 Do ładnego wyjścia ASCII.
Jeśli uważasz, że na liście jest inna odpowiedź, którą warto umieścić, skomentuj ją!
źródło
Odpowiedzi:
Double Brainfuck
które wyjścia ...
które wyjścia ...
źródło
6*9=42
.do
Oto staruszek, ale kochanie ...
Ten program zawiera 42 różnych znaków ASCII.
źródło
six*nine
staje się,1+5*8+1
co jest 42. Dobrze zrobiony panie Lister.#define
działa w C ++ dokładnie tak samo, jak w C.Brainfuck
Zajęło mi to trochę czasu, ale podoba mi się wynik:
Po uruchomieniu wydrukuje oczywiście 42.
źródło
JavaScript:
Dane wyjściowe to:
Nieźle, prawda? :)
Dla osób, które nie rozumieją, ocenia to:
źródło
_
jest poprawną nazwą zmiennej w JavaScript - i tak jest__
,___
,____
,________
.C, dwanaście dni świątecznych stylów
Nowa wersja:
Wynik:
Przy okazji, sprawdź także moją odpowiedź zamiany tekstu na mowę .
Orginalna wersja:
Dane wyjściowe to:
Alternatywne odstępy, jeśli czujesz się tandetny:
Program jest pojedynczą instrukcją rekurencyjną. Zrobiłem to w stylu mojego ulubionego zaciemnionego programu w historii C, Dwanaście dni Bożego Narodzenia (skompiluj, przygotuj umysł na zachwyt, biegnij).
JAK
Ponadto, ponieważ wydaje się to tak dobre miejsce jak każde, oto przewodnik opisujący, jak zrobić tego typu program. W tym przewodniku użyto oryginalnej wersji powyżej jako przykładu.Oprócz pierwszego bitu z literami blokowymi są to ogólne kroki:
WSTĘP: Najpierw zacząłem od pisania literami:
Następnie utworzyłem ponumerowaną listę unikalnych wzorców w każdym wierszu znaków o 5 kolumnach:
I tak każdy z 5 pikseli wierszy tekstu staje się ciągiem 9 liczb:
W celu zaciemnienia (i łatwości programowania) dodajemy znak „#” do liczb. W poniższym programie
patterns
jest tablica wzorców pikseli ilines
jest zaciemnioną tablicą kodów wzorców dla każdej linii, zakończoną „x”. W celu dalszego zaciemnienia definiujemy piksele „na”patterns
jako dowolny znak, który nie jest spacją; pozwala nam to umieścić bardziej mylący tekst wpattern
:KROK 1: Kolejny krok obejmuje kilka zadań:
int function (int, int)
i użyj dla tych samych nazw parametrów. Powody staną się jasne później.main
do formularzaint main (int, int, int)
i nazwij dwa ostatnie parametry tak samo, jak nazwy parametrów funkcji.int putchar (int)
.Możemy również skorzystać z dziwnej funkcji C, która
a[b]
odpowiadab[a]
dalszemu zaciemnianiu.KROK 2: Następnie użyj operatorów
?:
i,
, aby przekształcić każdą funkcję w pojedyncząreturn
instrukcję. Ilustruję to oddzielnie od powyższego, ponieważ tutaj zaczyna się mylnie patrzeć. Pamiętaj, żeputchar()
zwraca anint
i?:
ma pierwszeństwo przed,
:KROK 3: Ok. Następny krok jest duży. Wszystkie funkcje są teraz pojedynczymi instrukcjami o tej samej formie. Możemy teraz połączyć je wszystkie w jedną funkcję, identyfikując każdą po numerze - zasadniczo zamieniając cały program w jedną funkcję rekurencyjną. Zauważ, że pierwszy parametr to
main
będzie 1, gdy program zostanie uruchomiony bez argumentów, więc powinien to być nasz stan początkowy.Ponieważ nasz parametr
c
tomain
jest naszą zmienną stanu, zawsze znamy jego wartość i możemy nieco zaciemnić, zastępując stałe liczb całkowitych ich wartościamic
(na przykład, gdy wiemy, żec
jest to 2, możemy zastąpić 5 zc+3
). Inne małe obfuscations można zrobić zbyt (np Wymieniłem'#'
z35
a043
):KROK 4: Na koniec usuń
switch
blok za pomocą szeregu?:
operatorów. Możemy również usunąćint
deklaracje, ponieważ C domyślnie ich użyje, a takżereturn
sam (który w najgorszym przypadku wygeneruje ostrzeżenie). Następnie nasz program jest pojedynczą, rekurencyjną funkcją z jedną instrukcją. Całkiem fajnie, prawda?Edycja: Zamieniłem na
putchar()
amain
ic==4
poniżej; bo właśnie o tym pomyślałem w ostatniej chwili:Jeśli chcesz dodać trochę stylu, możesz użyć bardziej interesujących numerów,
c
a nawet oprzeć kontrole na innych numerach (np. Wc==2
przypadkuz
jest ignorowany i dostępny, więc zamiast dzwonić,main(2,z,_)
możesz zadzwonićmain(-97,_,_)
i zastąpićc==2
goc<-z
). Bądź kreatywny; możliwości są nieskończone.ZAKOŃCZENIE: Ostatnim krokiem jest ułożenie tekstu w jakimś kreatywnym wzorze i voila! Możesz trochę dostosować kod, aby pomóc w formatowaniu (np. Dodałem dodatkowe dane na końcu
patterns
łańcucha w opublikowanym programie, aby pomóc w prawidłowej długości linii). Panie na pewno będą na nogach.źródło
Czuję się leniwy.
Pyton
Wynik:
źródło
Jawa
(lub C ++, kod jest prawie podobny)
Korzystanie z funkcji String, więc nie zapomnij dołączyć swojej biblioteki!
PS Wiem, że jest długa, ale powinna być kreatywna, prawda? Zresztą nie jest to „wygrana w najniższych bajtach”.
Oto wynik:
Wyobraź sobie moją nędzę, gdy policzyłem i odkryłem, że „Restauracja na końcu wszechświata” ma 41 znaków! : / Westchnienie.
źródło
Matematyka
Weź 1
Przy odrobinie pracy powinienem być w stanie trochę pograć w golfa. :)
W
InputForm
:W
TraditionalForm
:Testowanie:
Weź 2
Uwaga: Liczby zostały wykonane w następujący sposób.
źródło
Wydaje się właściwe:
Wynik:
Ubuntu 12.04, 64-bitowy komputer stacjonarny
źródło
echo $(grep -i ... tr -d ' ') | sed 's/ //g'
położyłby to wszystko na jednej linii. Możesz również użyć cudzysłowów zamiast$()
formularza, ale trudniej jest tutaj dodać komentarz.$()
jest określony przez standard POSIX .Kalkulator Windows
Mnożenie Pi przez 13,37 i ignorowanie dziesiętnego
:P
źródło
Pyton
Myślę, że działa tylko w systemie Windows 7.
Rezultatem jest otwarcie Farby i malowanie 42 jako wolnej ręki.
źródło
Java (Swing)
Spowoduje to wyświetlenie ramki rysującej odpowiedź . Używa tylko
42
wartości.źródło
Matematyka
chociaż myślę, że to oszustwo, naprawdę, ponieważ jest mocno zakodowane. I mało kreatywny z mojej strony ... :)
źródło
Rubin
Dobrze wiadomo, co otrzymasz, jeśli pomnożysz sześć przez dziewięć . To daje jedno rozwiązanie:
Pyton
Wariant samoreferencyjnej formuły Tuppera :
Wynik:
źródło
JavaScript
źródło
true == 1
.[]
zamiast""
([] == ''
)!alert((!![]+-~[])*(!![]+-~[])+[]+(!![]+-~[]))
(!-[] === true) && (!~[] === false)
. Można również zastąpić{}
za[]
.(!!{}+!-[]<<-~{})+[]+(!-[]+-~[])
?LMGTFY
http://bit.ly/1ldqJ8w
Na tyle krótko, że musiałem to wpisać, aby osiągnąć minimalną liczbę znaków ...
źródło
Naprzód:
Że 1 wyjście LOAD:
źródło
C ++
Kod Morse'a ;)
źródło
R
Wynik:
źródło
Jawa
Wynik:
źródło
SWI-Prolog, ktoś?
Wynik:
To jest nawet bardziej leniwe niż wzywająca matematyka Wolfram-Alpha, ale hej!
źródło
Powłoka Linux
Oto coś, co napisałem w 1999 roku i użyłem wtedy jako podpisu Usenetu.
Edycja: Ha! To była 42 odpowiedź.
źródło
Wersja PHP:
Wersja JavaScript:
Wynik:
źródło
42
. Wypróbowałem różne inne czytelne dla ludzi sposoby i to było najbliższe, kiedy mogłem zmienić datę, by znaleźć rozwiązanie.mm/dd/yy
. Jeśli powiesz04/03/11
, przeczytałbym go 4 marca 2011 r. - nie 3 kwietnia.dc
Próbowanie pomnożenia
1+8
i5+1
zdobycia42
. Wygląda na to, że doprowadziła do tego nieznajomość pierwszeństwa operatora42
.Pyton
Wynik:
42
grzmotnąć
(Mnożenie
6
przez9
)do
Wynik:
42
źródło
Brainf ** k
źródło
C ++
wynik
źródło
getch
być Visual Studio_getch
.JavaScript
Wyjścia
42
.źródło
jot
Symetryczny jednowierszowy bez znaków alfanumerycznych.
Wyjścia 42.
Główne obliczenia to:
źródło
JavaScript
Kod ASCII dla
*
, który dla większości programistów oznacza „wszystko”, ma+!"The End of the Universe"
wartość 42. to 0.źródło
"The End of the Universe"|0
PHP
Zapytaj WolframAlpha. Oto kod, który używa interfejsu API WolframAlpha do pobrania wyniku określonego zapytania:
Wynik:
Działające demo
źródło