42を表示する最も創造的な方法


386

ダグラス・アダムスは1952年3月11日に生まれ、49歳で亡くなりました。この素晴らしい作家に敬意を表し、42を可能な限り最も創造的な方法で展示するよう挑戦します。

複雑な方法でログに印刷したり、ASCIIアートなどで表示したりできます!42を表示する創造的な方法を考えてください。

これは人気コンテストであるため、3月11日までに最も多くの回答が得られた方が勝者になります。

注:これは複製ではありません。重複しているとマークされた質問は、出力42にコードを書くことであり、それを表示する最も創造的な方法を見つけることではないコードトローリングの質問でした。

勝者: grovesNL!驚くべき813票で!おめでとうございます!

名誉ある言及:

ミスターリスター C 228 #defineの巧妙な使用のために

David Carraher Mathematica 45複雑で複雑な数学関数が42

Aschratt Windowsの電卓 20は、のでまあ、それはWindowsの電卓だと間違いなく1337。

f.rodrigues Python 17外部プログラムの使用が巧妙に使用されているため。そしてMSPaint

ジェイソンC LMGTFY 14 LMGTFYの使用(Let Me Google That For You)

Trimsty Python 12出力42へのエラーメッセージの巧妙な使用。

Mukul Kumar C ++ 7素敵なASCII出力用。

リストに載せる価値のある別の答えがあると思う場合は、コメントしてください!


6
古い非公開の質問はコードトローリングでした。つまり、42を表示していないものは、そうするように見えるか、本当に恐ろしい方法で表示します。これはコードトローリングではありません。つまり、出力は本当に42になるはずです。したがって、重複していません。
ビクターStafusa 14

2
@DanDascalescuこのSEサイトには、厳しい要件のない多くの質問があります。これにより、ユーザーは答えに創造的な自由を行使できます。時には、あまりにも多くの制約が創造性の発現妨げることができます
grovesNL

9
質問は42票のままにしてください。
ゼロファイバー14

28
マービン・ザ・ロボット「私の素晴らしい答えを投稿しますが、おそらくあなたはそれに反対票を投じるでしょう。いつも正しいことはとても憂鬱です。」
Reactgular 14

3
42件のお気に入りを取得できますか?
ミロ14

回答:


843

ダブルブレインファック

           +++++[>++[>+>+        ++>++++>++++>++++>++++++
          >++++++>+++++++        ++>+++++++++<<<<<<<<<-]>>
         >+>+>+> >>>+[<]<        -]>>       >++>-->>+>>++>+
        >--<<<<  <<<.....         .>            ....<......
       ...>...   <<.>....                       >.>>>>>.<.
       <<<<..     ..<....                      >..>>>>>.<
      .<<<<.      >>>.<<.                     >>>>>.<.<
      <<<<<       <.>...>                    >>>.>>>.
     <<<.<        <<<..>>                  .>>>>>.<
    <.<<<         <<...>>                 >>>.<<<
   <..<.          ...>...               <<.>..>.
   >>.<.<<...>>...<<...>>...<         <....>>..
  .<<<.>.>>..>.<<.......<....        .....>...
                 <<.>...            .....>...
                 <......           .>>>.<<..
                 <<.>...          .....>...<......>.>>.<.<<<
                 .>......        ..>>...<<....>>.....>.<..>.

どの出力...

      ++++         +++
    +[>++++    ++[>+<-][
   <]<  -]>   >++    +++
  +.-   ---   ---    ---
 --.+++++++         +++
        +++       .++
        +++      +.-
        ---    -----.--.

どの出力...

6*7=42

92
私はいつも何かが根本的に間違っていると思っていました。
mfitzp

147
あるはずです6*9=42
プロキシ

17
@Proxy:本当ですが、コンテキストにもかかわらず、参照が視聴者に失われることがあります...
;

19
@IsmaelMiguel:それはあなたの10の基本です...
デニス14

26
人々がこの答えを見ることができるように、質問全体を支持しました。
マイケルスターン14

329

C

これは昔ながらの良いものです...

#include <stdio.h>

#define six  1+5
#define nine 8+1

int main()
{
    printf("what do you get when you multiply six by nine?\n");
    printf("%i x %i = %i\n", six, nine, six*nine);
}

このプログラムには、42種類のASCII文字が含まれています。


15
それは素晴らしいです
ASKASK

41
私は#defineを使って数学を「正しく」するのが大好きです^^。あなたはフーピーの詐欺師です。
オリビエデュラック14

35
@mikhailcazi:プリプロセッサはこれらの定数を文字通り置き換えますので、42にsix*nineなり1+5*8+1ます。よくできました。
ボードー14

7
@canaaerus神聖なたわごと、それは天才です。ブラボー、ミスター・リスター!
ミハイルカジ14

4
@mikhailcaziは#defineC ++で動作C.と全く同じ方法
ミスターリスター

137

ブレインファック

そこに着くまでしばらく時間がかかりましたが、私は結果が好きです:

         +++++          +++[>+>++>
        +++>++        ++>+++++>+++++
       +>+++++       ++>+        ++++
      +++ >+++       ++++        ++>+
     +++  ++++                   ++>+
    +++   ++++                  +++>
   +++    ++++                 ++++
  +>+     ++++               ++++
 +++      +>++             ++++
++++++++>+++++++++       ++++
++>+++++++++++++++     +<<<
          <<<<        <<<<
          <<<<       <-]>
          >>>>       >>----.++++<<<<<
          <<>>       >>>>++.--<<<<<<.

実行すると、もちろん42が出力されます。


6
挑戦することも理解することもしません...これは、国際難読化Cコードコンテストで見た多くのエントリを思い出させます。
イサイアメドウズ14

64
私は...「42」が豪華であることを示すために、コードのフォントスタイルを認めざるを得ない
WallyWest

15
LinuxカーネルをBrainfuckで書いてほしい。
devnull

10
残念ながら、あなたはgrovesNLに負けています
ブラックライトシャイニング14

6
同意する。彼らのフォントは私のフォントほどきれいに見えませんが、ネストされた出力は本当にクールなアイデアです。また、彼らのコードは私のコードよりも意味があります。最初にフォントをアスキーアートとして設計し、次にアスキーアートの220文字カウントに合うようにコードをいじってみたので、コードには多くの意味のないものが含まれています。
ドナソン

133

JavaScript:

var ________ = 0.023809523809523808, ____ = 1, ___ = 0, __ = 0, _ = 1;

       __ -           ___
     /_  |0        //     \\
    /_/   0     //          \\
   /_/_  |0                //
  /_/_   |0              //
 /_/____ |_           //
/________|0        //
         |0     //______________

出力は次のとおりです。

42

悪くないよね?:)

理解していない人のために、実際に以下を評価します:

__-___ / _ | 0 / _ / 0 / _ / _ | 0 / _ / _ | 0 / _ / ____ | _ / ________ | 0 | 0


17
年間のJavaScriptをコードするが、それが何であるかは考えていないされて手のひらを顔に当てるを
ソンゴ

5
@CarlWitthoftどのように動作することがある_JavaScriptで有効な変数名である-そしてそうです_________________
歯ブラシ14

3
どうもありがとう。将来の使用に備えて、その情報(危険な:-))を提出します。
カールウィットソフト

2
プログラマーは創造的ではないと言う人はいます!
ジョナサン14

1
毎日たくさんのJavaScriptを書く人として...よくやった、あなたは本当にしばらく私を困惑させました。私は喜んでそれを過ぎてブラウジングし、いくつかのエソランを仮定した。
ジョージリース14

76

C、クリスマススタイルの12日間

新しいバージョン:

main(Z,_){Z?(_=Z[" $X,X3Y<X@Z@[<XHZHX,"
"` \\(Z(X0Z0Z8[@X@^8ZHZHX(Z(`#Y(Z(X3[8"
"\\@_8ZHXHXHX(Z(` \\(Z(X0Z0Z8\\@_8ZIXI"
"X(Z(` \\,X0Z0Z8\\@_8ZHZHX,"])?main(0,_
-32),main(Z+1,_):0:(putchar((_>>3)["kt"
"wy~|tE/42"]-37),(_&7)?main(0,_-1):0);}

出力:

FFFFF OOOOO RRRR  TTTTT Y   Y    TTTTT W   W OOOOO
F     O   O R   R   T    Y Y       T   W   W O   O
FFFF  O   O RRRR    T     Y        T   W W W O   O
F     O   O R   R   T     Y        T   WW WW O   O
F     OOOOO R   R   T     Y        T   W   W OOOOO

ちなみに、テキスト読み上げの答えもチェックしてください。


元のバージョン:

main(c,z,_){c==1?main(c+1,0,c^c):c==2?
z=_["##$#%&#%#x'%%()&(%%x$%$((&(*%x'%"
"%((&(+%x'#%((&(%#x"],z?z=='x'?main(4,
_,c*5):main(c+1,z,0),main(c,z,_+1):0:c
==3?(_-2)==3?main(_-1,_,32):(main(c+1,
c,((2+c)*(z-35)+_)["six*nine= {   }  "
"   ;      _   ( ) [ 3 ]do {;=0xDA"]==
32?32:043),main(c,z,_+1)):putchar(_);}

出力は次のとおりです。

##### ##### ####  ##### #   #       ##### #   # #####
#     #   # #   #   #    # #          #   #   # #   #
####  #   # ####    #     #           #   # # # #   #
#     #   # #   #   #     #           #   ## ## #   #
#     ##### #   #   #     #           #   #   # #####

粘着性がある場合は、代替間隔:

        main(c     ,z,_){c==01?
       main(c+     1,0,c^c):c==2
      ?z=_["#"     "#$#%&#%#x'%%"
     "()&(%%x"             "$%$("
    "(&(""*%x"             "'%%("
   "(&(" "+%x"             "'#%("
  "(&("  "%#x"             ],z ?z
 =='x'?main(4,_     ,c*5):main(c
 +1,z,0),main(c    ,z,_+1):00:c
 ==3?(_+-2)==3?    main(_-1,_,
         32):(     main(
         c+1,c     ,((2+
         c)*(z     -35)+
         _)[""     "six"
         "*ni"     "ne= {   }   "
         "  ;"     "      _   ( "
         ") ["     " 3 ]do {;"]==
         32?32     :043),main(c,z
         ,_+1)     ):putchar(_);}

プログラムは、単一の再帰ステートメントです。私はお気に入りの難読化されたCプログラム、クリスマスの12日間(コンパイル、吹き飛ばす準備、実行)のスタイルで作成しました。


方法

また、これは他の場所と同じように良い場所であるため、このタイプのプログラムを作成する方法を説明するガイドがあります。このガイドでは、例として上記のオリジナルバージョンを使用しています。ブロック文字を含む最初のビットは別として、一般的な手順です。

初期:最初に、ブロック文字を作成することから始めました。

##### ##### ####  ##### #   #       ##### #   # #####
#     #   # #   #   #    # #          #   #   # #   #
####  #   # ####    #     #           #   # # # #   #
#     #   # #   #   #     #           #   ## ## #   #
#     ##### #   #   #     #           #   #   # #####

次に、各5列の文字行の一意のパターンの番号付きリストを作成しました。

0: *****  
1: **** 
2: *   * 
3:       
4: *     
5:   *   
6:  * *  
7: * * * 
8: ** ** 

したがって、テキストの5ピクセル行はそれぞれ一連の9つの数字になります。

00000 00000 11111 00000 22222 33333 00000 22222 00000
44444 22222 22222 55555 66666 33333 55555 22222 22222
11111 22222 11111 55555 55555 33333 55555 77777 22222
44444 22222 22222 55555 55555 33333 55555 88888 22222
44444 00000 22222 55555 55555 33333 55555 22222 00000

難読化(およびプログラミングの容易さ)のために、数字に「#」文字を追加します。以下のプログラムでpatternsは、はピクセルパターンのlines配列であり、各行のパターンコードの難読化された配列で、「x」で終了しています。さらに難読化するために、「on」ピクセルをpatternsスペース以外の文字として定義します。これにより、誤解を招くようなテキストをpattern次のように配置できます。

#include <stdio.h>

char pattern[] = 
  "six*n"
  "ine= "
  "{   }"
  "     "
  ";    "
  "  _  "
  " ( ) "
  "[ 3 ]"
  "do {;";

char lines[] =
  "##$#%&#%#x"
  "'%%()&(%%x"
  "$%$((&(*%x"
  "'%%((&(+%x"
  "'#%((&(%#x";

void printpattern (char c) {
  int n;
  for (n = 0; n < 5; ++ n)
    putchar(pattern[5*(c-'#') + n]==32?32:'#');
  putchar(' ');
}

int main () {
  char *ptr = lines;
  while (*ptr) {
    while (*ptr != 'x')
      printpattern(*(ptr++));
    putchar('\n');
    ++ ptr;
  }
}

ステップ1:次のステップには、いくつかのタスクが含まれます。

  • すべてのループを削除し、再帰を使用します。
  • すべての関数(メインを除く)をフォームに変更しint function (int, int)、それぞれに同じパラメーター名を使用します。理由は後で明らかになります。
  • mainフォームに変更し、int main (int, int, int)最後の2つのパラメーターに関数パラメーター名と同じ名前を付けます。
  • 文字列定数へのすべての参照を文字列自体に置き換えます。可能であれば、各文字列を一度だけ使用します。
  • インクルードは削除できます。には不要ですint putchar (int)

また、さらに難読化a[b]するのと同等の奇妙なC機能を利用することもできb[a]ます。

int printpattern (int z, int _) {
  if (_==5)
    putchar(' ');
  else{
    putchar((5*(z-'#') + _)["six*nine= {   }     ;      _   ( ) [ 3 ]do {;"]==32?32:'#');
    printpattern(z, _+1);
  }
  return 0;
}

// z ignored, _ is index
int printtext (int z, int _) {
  z = _["##$#%&#%#x'%%()&(%%x$%$((&(*%x'%%((&(+%x'#%((&(%#x"];
  if (z) {
    if (z == 'x')
      putchar('\n');
    else
      printpattern(z, 0);
    printtext(z, _ + 1); // first parameter arbitrary
  }
  return 0;
}

int main (int c, int z, int _) {
  printtext(0, 0);
}

ステップ2:次に、?:and ,演算子を使用して、各関数を単一のreturnステートメントに変換します。これは、物事が見づらくなり始める場所であるため、上記とは別に説明しています。ことを覚えておいてくださいputchar()返しint、そして?:より優先されます,

int printpattern (int z, int _) {
  return _==5 ?
    putchar(' ')
  :
    (putchar((5*(z-'#') + _)["six*nine= {   }     ;      _   ( ) [ 3 ]do {;"]==32?32:'#'),
     printpattern(z, _+1));
}

// z ignored, _ is index
int printtext (int z, int _) {
  return
    z = _["##$#%&#%#x'%%()&(%%x$%$((&(*%x'%%((&(+%x'#%((&(%#x"],
    z ?
      z == 'x' ?
        putchar('\n')
      :
        printpattern(z, 0)
      ,
      printtext(z, _ + 1)
    :
    0;
}

int main (int c, int z, int _) {
  printtext(0, 0);
}

ステップ3:はい。次のステップは大きなものです。すべての関数は、同じ形式の単一のステートメントになりました。これらすべてを単一の関数に結合し、それぞれを番号で識別できるようになりました。つまり、本質的にプログラム全体を単一の再帰関数に変えることができます。main引数なしでプログラムを実行すると、最初のパラメーターは1になるため、初期状態になります。

また、パラメーターcto mainは状態変数であるため、常にその値を把握しており、整数定数をその値で置き換えることにより、さらに難読化することができますc(たとえば、c2がわかっている場合、5を置き換えることができます)でc+3)。(私は置き換えなど他のほとんどの難読化はあまりにも行うことができる'#'35して043):

int main (int c, int z, int _) {
  switch (c) {
  case 1: // main
    return main(c+1, 0, c^c); // (2, 0, 0)
  case 2: // printtext
    return
    z = _["##$#%&#%#x'%%()&(%%x$%$((&(*%x'%%((&(+%x'#%((&(%#x"],
    z ?
      z == 'x' ?
        putchar('\n')
      :
        main(c+1, z, 0) // c+1==3
      ,
      main(c, z, _ + 1)
    :
    0;
  case 3: // printpattern
    return (_-2)==3 ? // _==5
    putchar(' ')
    :
     (putchar(((2+c)*(z-35) + _)["six*nine= {   }     ;      _   ( ) [ 3 ]do {;"]==32?32:043),
     main(c, z, _+1));
  }
}

ステップ4:最後に、switch一連の?:演算子を使用してブロックを削除します。intCはデフォルトで宣言を使用するため、宣言return自体を削除することもできます(最悪の場合は警告を生成します)。この後、プログラムは1つのステートメントを含む単一の再帰関数になります。かなりクールですよね?

編集:私は置き換えputchar()mainし、c==4以下、ぎりぎりで考えたからです。

main (c, z, _) {
  c == 1 ?
     main(c+1, 0, c^c)
  : c == 2 ?
    z = _["##$#%&#%#x'%%()&(%%x$%$((&(*%x'%%((&(+%x'#%((&(%#x"],
    z ?
      z == 'x' ?
        main(4,_,c*5)
      :
        main(c+1, z, 0) 
      ,
      main(c, z, _ + 1)
    :
    0
  : c==3 ?
    (_-2)==3 ? 
    main(_-1,_,32)
    :
    (main(c+1,c,((2+c)*(z-35) + _)["six*nine= {   }     ;      _   ( ) [ 3 ]do {;"]==32?32:043),
      main(c, z, _+1))
  : // c==4
    putchar(_);
}

あなたは少し雰囲気を追加したい場合は、あなたがのためにもっと面白いの番号を使用することができc、さらには他の数字のオフにチェックをベースに(用などc==2の場合、z無視され、利用可能なので、代わりに呼び出しているmain(2,z,_)あなたが呼び出すことができますmain(-97,_,_)し、置き換えc==2c<-z)。クリエイティブに; 可能性は無限大。

仕上げ:最後のステップは、テキストを何らかの創造的なパターンに配置することです。書式設定に役立つようにコードを少し調整できます(たとえばpatterns、行の長さを正しくするために、投稿されたプログラムの文字列の最後に追加のデータを追加しました)。女性たちはきっと元気です。


ガイドを削除する必要がありますか?私はそれなしでミステリーが好きです。
ジェイソンC 14

回答をより短く、出力に文字を印刷する新しいバージョンで更新しました。このガイドは元のバージョンに基づいています(現在も存在します)。新しいバージョンでは、出力がRLEデータとして保存されます。最初の長い文字列はデータです。
ジェイソンC 14

2
ソリューションの背後にある「方法」を説明するのに時間がかかったので、この回答を+1したいと思いますが、現在は42人です。それを台無しにしたくありません。;)
アダムパーキン14年

4
@AdamParkinハハ!43
ジェイソンC 14年


63

Java

(またはC ++、コードはほとんど似ています)
文字列関数を使用しているので、ライブラリを含めることを忘れないでください!

PS長いことはわかっていますが、創造的であるはずですよね?とにかく、それは「最低バイト勝ち」ではありません。

String s = "Hitchhiker's Guide to the Galaxy";
String s2 = "Don'tPanic";
String s3 = "The Restaurant at the End of the Universe.";

int arthur_dent = s.length();
int ford_prefect = s2.length();
int zooey_deschanel = s3.length();
int vogon_poetry = arthur_dent + ford_prefect;

System.out.println("         " + vogon_poetry + "       " + zooey_deschanel + " " + zooey_deschanel); //in case you're confused, I'm using Zooey to print the big '2', and Vogons to print the big '4'.
System.out.println("       " + vogon_poetry + vogon_poetry + "     " + zooey_deschanel + "     " + zooey_deschanel);
System.out.println("     " + vogon_poetry + "  " + vogon_poetry + "    " + zooey_deschanel + "       " + zooey_deschanel);
System.out.println("   " + vogon_poetry + "    " + vogon_poetry + "            " + zooey_deschanel);
System.out.println(" " + vogon_poetry + "      " + vogon_poetry + "          " + zooey_deschanel);
System.out.println(vogon_poetry + " " + vogon_poetry + " " + vogon_poetry + " DA " + vogon_poetry + "     " + zooey_deschanel);
System.out.println("         " + vogon_poetry + "     " + zooey_deschanel);
System.out.println("         " + vogon_poetry + "    " + zooey_deschanel + " " + zooey_deschanel + " " + zooey_deschanel + " " + zooey_deschanel);

出力は次のとおりです。

         42       42 42
       4242     42     42
     42  42    42       42
   42    42            42
 42      42          42
42 42 42 DA 42     42
         42     42
         42    42 42 42 42 

「宇宙の果てのレストラン」に41人のキャラクターがいることを数え、見つけたときの悲惨さを想像してみてください!:/ はぁ。


2
出力に「DA」があるのはなぜですか?意図的ですか?
Mhmd 14

14
@ user689 D ouglas A dams :)
ミハイルカジ14

9
実際、41はある意味でDAです(Dは4文字目、Aは1文字目です)。元気づける!
ヴァッチェン14

11
4-1 =3。つまり、•_•)(•_•)>⌐■-■(⌐■_■)Half Life 3が確認されました。
モハドアブドゥルムジブ14

17
DDD:宇宙の果てのレストランは、41文字+「\ 0」を持っている
ENTERX

59

Mathematica

テイク1

いくつかの作業により、私はこれを少し下にゴルフできるはずです。:)

InputForm

answer[ultimateQuestion[Life,theUniverse,Everything]] =
  Times[Plus[-1,Limit[Power[Plus[1,Times[Complex[0,1],
  Power[n,-1],Pi]],n],Rule[n,DirectedInfinity[1]]]],Sqrt[-1]^2,
  Times[Rational[1,2],Plus[-1,Fibonacci[4]],Fibonacci[2]],
  Binomial[3,2],LucasL[4]]

TraditionalForm

42

テスト:

answer[ultimateQuestion[Life,theUniverse,Everything]] 

42


テイク2

注:数字は次のように作成されました。

  • 「42」は最初に非常に大きなフォントで画面に印刷され、軸が表示されたため、キーポイントの座標を識別できました。
  • 別の「4」は、それぞれのキーポイントを結ぶ広い直線で描かれました。以前に描画された「4」に重ね合わせて、精度を確認しました。「2」はBSpline曲線として描かれました。現在はコントロールポイントであるキーポイントのいくつかは、目的の曲線を得るために試行錯誤によって適切な位置に設定する必要がありました。
  • 3D表示を有効にするために、3番目の座標(常にゼロ)がラインとBSplineCurveに追加されました。

answer[ultimateQuestion[Life,theUniverse,Everything]]  = 
 Table[With[{v = RotationTransform[θ, {0, 0, 1}][{3, 0, -.2}]},
   Graphics3D[{Thickness[.06], CapForm["Round"],
     Tube[Line[{{-67, 0, -44}, {-30, 0, -44}}], 10],
     Tube[
      Line[{{-25, 0, -12}, {-100, 0, -12}, {-52, 0, 70}, {-45, 0, 70}, {-45, 0, -43}}], 10], 
     Tube[BSplineCurve[l = {{27, 0, 52}, {27, 0, 57}, {57, 0, 85}, {113, 0, 40}, 
     {12, 0, -45}, {35, 0, -45}, {90, 0, -45}, {90, 0, -45}, {92, 0, -35}}], 10]},
     Boxed -> False, PlotRange -> 100, ImageSize -> 250, SphericalRegion -> True, 
     ViewPoint :> v, 
     PlotRangePadding -> 10]],(*{θ,0,2Pi,Pi/24},*){θ, -Pi/2, -Pi/2 + 2 Pi, Pi/24}]

Export["theMeaningOfLife.gif", answer[ultimateQuestion[Life,theUniverse,Everything]] ]

テイク2


1
幸いにもそれはゴルフの質問:)そこに数学的創造性の良い助力のようです...ではありません
cormullion

1
ありがとう。Mathematicaは確かに多くのオプションを提供しています。
DavidC 14

3
いいね 時間をさかのぼって、そのグラフィックをgeocities.com/42に掲載したいです(笑)
ジェイソンC 14

57

適切なようです:

grep -i "DON'T" /bin/lesspipe | wc -l ; grep -i "PANIC" /usr/share/pyshared/mx/Log.py | head -n 1 | cut -d '=' -f 2 | tr -d ' '

出力:

4
2

Ubuntu 12.04、64ビットデスクトップ


23
パニックにならないために+1
ミロ14

それはbash-ismになりますが、echo $(grep -i ... tr -d ' ') | sed 's/ //g'すべてを1行にまとめます。$()フォームの代わりに逆引用符を使用することもできますが、ここにコメントを入力するのは難しくなります。
マイクレンフロ14


@MikeRenfroバシシュはどうですか?$()POSIX標準で指定されています
nyuszika7h 14年

確かに、私は明らかに時代遅れです。前回(何年も前に)チェックしたとき、そうだと思った。間違っていたかもしれません。
マイクレンフロ14年

45

Windows電卓

Pi13.37を乗算し、小数を無視します:P

42


17
分数は間違いなく1337ではないため、+1。-
ジェイソンC

1
プログラマの電卓は良くなっているだろうが、その計算は、(パイ)を持っていない
Mukulクマール

1
1337 * math.pi / 100
クロマン14

11
round(1337 * math.pi / 100)<-パイが丸いため、1つの小さな変更。
ケビン

41

Python

Windows 7でのみ動作すると思います。

import win32api, win32con, win32gui
from time import time, sleep
import os

w = { 1:[(358, 263), (358, 262), (358, 261), (359, 261), (359, 262), (359, 264), (359, 266), (359, 270), (359, 282),
     (358, 289), (357, 308), (356, 319), (355, 341), (355, 351), (355, 360), (355, 378), (355, 388), (354, 397),
     (354, 406), (354, 422), (354, 428), (354, 436), (354, 438), (354, 439), (354, 440), (355, 440), (356, 439),
     (357, 439), (358, 438), (360, 438), (362, 437), (369, 437), (372, 437), (381, 437), (386, 437), (391, 437),
     (397, 436), (411, 436), (419, 435), (434, 435), (442, 435), (449, 434), (456, 434), (468, 434), (473, 435),
     (480, 436), (483, 436), (485, 436), (487, 437), (488, 437), (488, 438), (488, 439), (487, 440), (486, 440),
     (485, 440), (484, 440), (483, 439), (483, 437), (481, 431), (481, 427), (481, 420), (481, 413), (483, 396),
     (485, 387), (488, 367), (491, 356), (493, 345), (500, 321), (503, 310), (507, 299), (514, 280), (517, 272),
     (520, 266), (523, 260), (524, 258), (524, 259), (524, 261), (524, 265), (524, 269), (523, 275), (522, 289),
     (521, 297), (518, 315), (516, 324), (515, 334), (513, 345), (509, 368), (507, 382), (502, 411), (500, 426),
     (498, 440), (495, 453), (491, 478), (489, 491), (485, 517), (483, 530), (481, 542), (479, 552), (476, 570),
     (475, 577), (474, 588), (473, 592), (473, 595), (473, 597), (473, 600), (473, 601), (473, 602), (473, 601),
     (474, 599), (475, 597), (476, 594), (478, 587)],
  2:[(632, 305), (634, 306), (636, 309), (639, 314), (641, 319), (645, 330), (647, 337), (649, 353), (649, 362),
     (649, 372), (649, 384), (645, 409), (639, 436), (636, 448), (632, 459), (627, 470), (623, 479), (613, 497),
     (608, 503), (599, 512), (595, 514), (591, 514), (587, 513), (581, 504), (578, 498), (576, 483), (575, 476),
     (575, 469), (579, 454), (582, 447), (591, 436), (595, 432), (600, 430), (605, 429), (617, 432), (624, 437),
     (639, 448), (646, 455), (654, 461), (662, 469), (679, 484), (686, 491), (702, 504), (710, 509), (718, 512),
     (727, 514), (744, 515), (752, 515), (767, 512), (774, 510), (779, 508), (783, 505), (788, 499), (789, 495),
     (789, 486)] }

def d( x1, y1, x2, y2 ):
    win32api.SetCursorPos((x1, y1))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    win32api.SetCursorPos((x2, y2))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    sleep(0.01)

def p( l1 ):
    l2 = [""]
    l2.extend(l1)
    l1.append("")
    l3 = zip(l2, l1)
    l3.pop(0)
    l3.pop(-1)
    for n in l3:
        d(n[0][0], n[0][1], n[1][0], n[1][1])

os.startfile("C:\Windows\system32\mspaint.exe")
sleep(0.5)
win32gui.ShowWindow(win32gui.GetForegroundWindow(), win32con.SW_MAXIMIZE)
sleep(0.5)

for n in w:
    p(w[n])

その結果、ペイントが開かれ、42がフリーハンドとしてペイントされます。

42


1
私はwin32apiを持っていません:(それを見たかったです...それでも+1ですが:D
Timtech 14

私はウィンドウを使用しないので、実行できません。しかし、あなたの方法は素晴らしいです。
pushpen.paul 14

3
私はこれに賛成票を投じたかったのですが、これには正確に42の賛成票があります。
ローカナ

39

Java(スイング)

これにより、回答を描画するフレームが表示されます42値にのみ使用します。

public        class         FourtyTwo{ public
static         void         main(String[]args)
{  new        javax                    .swing.
JFrame        () {{                    setSize
(42 /(        42/42                    +42/42)
*42/ (        42/42                    +42/42)
,42/(42/ 42+42/42)*         42/(42/42+42/42));
}public void paint(         java.awt .Graphics
  g){g.drawPolygon(         new int[]{42,42,42
              + 42+         42,42+
              42+42         ,42+42
              +42 +         42,42+
              42+42         +42,42
              + 42+         42,42+42+42,42+42,
              42+42         },new int[]{42,42+
              42+42         +42,42+42+42+42,42

+42+42+42+42+42,                  42+42+
42+42+42+42,42,42,               42+42+42
,42 +        42+42              ,42}, (42/
42+42        /42)*              (42/  42 +
42/42        + 42/             42 +    42 /
42+42        /42))            ;g.drawPolygon
( new        int[]           {42+42+42+42+42,
42+42        +42 +           42+42      , 42+
42+42        + 42+          42+42        + 42,
42+42        +42 +          42+42        +42 +
42,42+42+42+42+42,         42+42          + 42+
42+42,42+ 42+42+           42+42          +42 +

42+42,42+42+42+42+42+42+42+42,42+42+42+42+42+42,
42+42+42+42+42+42,42+42+42+42+42+42+42+42,42+42+
42+42+42+42+42+42},new int[]{42,42 +42,42+42,42+
42+42,42+42+42,42+42+42+42+42+42,42+42+42+42+42+
42,42+42+42+42+42,42+42+42+42+42,42+42+42+42,42+
42+42+42,42},(42/42+42/42+42/42)*((42/42+42/42)*
(42/42+42/ 42)));};}.setVisible(42*42*42!=42);}}

14
下部にある「これだけ時間を費やしてフォーマットし、これと私は本当に残酷な仕事をしているように感じない」ブロックに対して+1ハハ。
ジェイソンC 14

3
@JasonCそれはまさに私が思ったことです!; D明日、私はコードをASCIIアートにフォーマットするプログラムに取り組み、金持ちになります!
ボベル14

私はこれを私のもので始め、すぐにgaveめました。良くやった。
ChiefTwoPencils

28

Mathematica

WolframAlpha["meaning of life", {{"Result", 1}, "Content"}]

42

ハードコーディングされているので、実際には不正行為だと思います。あまり創造的ではありませんが、私は... :)


28

ルビー

6を9倍すると何が得られるはよく知られています。これにより、1つのソリューションが得られます。

puts (6 * 9).to_s(13)

Python

タッパーの自己参照式の変形:

# Based loosely on http://www.pypedia.com/index.php/Tupper_self_referential_formula
k = 17 * (
    (2**17)**0 * 0b11100000000000000 +
    (2**17)**1 * 0b00100000000000000 +
    (2**17)**2 * 0b00100000000000000 +
    (2**17)**3 * 0b11111000000000000 +
    (2**17)**4 * 0b00100000000000000 +
    (2**17)**5 * 0b00000000000000000 +
    (2**17)**6 * 0b01001000000000000 +
    (2**17)**7 * 0b10011000000000000 +
    (2**17)**8 * 0b10011000000000000 +
    (2**17)**9 * 0b01101000000000000 +
0)
# or if you prefer, k=int('4j6h0e8x4fl0deshova5fsap4gq0glw0lc',36)

def f(x,y):
    return y // 17 // 2**(x * 17 + y % 17) % 2 > 0.5
for y in range(k + 16, k + 11, -1):
    print("".join(" @"[f(x, y)] for x in range(10)))

出力:

@  @   @@ 
@  @  @  @
@@@@@    @
   @   @@ 
   @  @@@@

2
残念ながら、あなたのウィキペディアのリンクが指摘しているように、DNAは42を生成する最初の方法を拒否します。
LSpice 14

26

Javascript

alert((!![]+ -~[])*(!![]+ -~[])+""+(!![]+ -~[]))

3
もう1つは、気づくまでWTFの瞬間を与えてくれましたtrue == 1
ジョージリース14

12
警戒!奇妙なASCIIキャタピラー!細心の注意を払ってください!
ジェイソンC 14

()の[]代わりに使用してください!""[] == ''alert((!![]+-~[])*(!![]+-~[])+[]+(!![]+-~[]))
歯ブラシ

(!-[] === true) && (!~[] === false)。あなたも代用できる{}ため[]
歯ブラシ

1
どう(!!{}+!-[]<<-~{})+[]+(!-[]+-~[])
歯ブラシ


23

前方へ:

SCR # 1
 0 ( FORTY-TWO @ ES-FORTH )
 1 HEX 0 24 -31 21 -31 31 -31
 2 31 -14 51 11 -11 51 11 -11 23 31
 3 : T SWAP 0 DO DUP EMIT LOOP DROP ;
 4 : K BEGIN DUP WHILE DUP 0< IF CR
 5  ABS THEN 10 /MOD 20 T A0 T
 6  REPEAT DROP ;
 7 K CR

その1 LOAD出力:

   █  ███
 █ █     █
 █ █     █
 ████   █
   █   █
   █  █
   █  ████



18

Java

public class MainProgram {    
    public static void main(String[] args) {
        int[] the      = { 'T', 'h', 'e' };
        int[] most     = { 'M', 'o', 's', 't' };
        int[] creative = { 'C', 'r', 'e', 'a', 't', 'i', 'v', 'e' };
        int[] way      = { 'W', 'a', 'y' };
        int question   = '?';

        double x = -3.18906605923E-2;

        int The      = 0;
        int Most     = 0;
        int Creative = 0;
        int Way      = 0;

        for(int i : the) {
            The += i;
        }
        for(int i : most) {
            Most += i;
        }
        for(int i : creative) {
            Creative += i;
        }
        for(int i : way) {
            Way += i;
        }
        System.out.println((int)((The*x)-(Most*x)-(Creative*x)-(Way*x)-(question*x)));      
    }//SSCE
}//good1

出力:

42


2
興味深い線形方程式を採用するための+1、良い仕事!
recursion.ninja 14年

17

SWI-Prolog、誰か?

?- X.

出力:

% ... 1,000,000 ............ 10,000,000 years later
% 
%       >> 42 << (last release gives the question)

これはMathematica-calling-Wolfram-Alphaのものよりもさらに怠ですが、ちょっと!


3
Code-Golfへようこそ!この答えが創造的である理由の説明を忘れずに追加してください!
ジャスティン14

3
@Quincunx SWI-Prologのイースターエッグです。
svick

15

Linuxシェル

1999年に私が書いたもので、当時Usenetの署名として使用していました。

echo "what is the universe"|tr "a-z " 0-7-0-729|sed 's/9.//g;s/-/+/'|bc

編集:ハ!これが42番目の答えでした。


15

PHPバージョン:

 echo strlen("Douglas Adams")+strlen("born on")+array_sum(array(1,1,0,3,1,9,5,2));
 /* array(1,1,0,3,1,9,5,2) => March 11, 1952 */

JavaScriptバージョン:

 console.log("Douglas Adams".length + "born on".length + [1,1,0,3,1,9,5,2].reduce(function(previousValue, currentValue, index, array){return previousValue + currentValue;}));

 /* [1,1,0,3,1,9,5,2] => March 11, 1952 */

出力:

 42

2
正気な人間がこの順序で日付を書く方法を理解することはできません。あなたがそこにコメントを入れなければならないという事実は、このフォーマットがどれほど役に立たないことを証明しています。
ボードー14

1
@canaaerus特定の形式で日付を使用したので、プログラムで日付を処理してに到達できます42。人間が読める他のさまざまな方法を試しましたが、これは日付を変換してソリューションに到達するのに最も近い方法でした。
Palerdot 14

24
@canaaerusアメリカ人がどのように日付をとして書くことができるのか、私には決してわかりませんmm/dd/yy。あなたが言うなら04/03/11、私はそれを4月3日ではなく2011年3月4日と読みます。
歯ブラシ14

7
@palerdot。私の知る限り、アメリカ系アメリカ人(そして時にはカナダ人)だけが、奇妙で混乱した「ミドルエンディアン」のように日付を書きます。
TRiG 14

2
@TRiG:何を期待していますか?私たちは、科学や工学の分野の私たち​​とは別に、より直感的で論理的なメトリックシステムも排除します。
ChiefTwoPencils 14

15

dc

$ dc <<< "1 8 sc 1 5 lc *++p"
42

乗算1+85+1て取得しようとしています42。オペレータの優先権の無知はにつながったよう42です。


Python

>>> p = lambda x: x%2!=0 and True<<x
>>> sum(p(i) for i in range(0,6))

出力: 42


バッシュ

(乗算6による9

$ echo "obase=13;6*9"|bc|figlet
 _  _  ____
| || ||___ \
| || |_ __) |
|__   _/ __/
   |_||_____|

C

#include <stdio.h>
int main(){printf("%d",fprintf(fopen("/dev/null","w"), "so-popularity-contest\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"));}

出力: 42

  • バックスペース文字の使用に気づきましたか?
  • それらが何をもたらすか知っていますか?

いいえ。説明してください!
アントニオラガニン14

バックスペース文字は、42バイトの長さまでストリングを埋め込みます。そのため、最初のfopenを使用して、書き込みアクセスのためにnullデバイスを開きます。その後、fprintfは42バイトをnullに書き込み、書き込まれたバイト数を返します。最後に、42はprintf関数の「%d」フォーマット文字列によってフォーマットされ、42が表示されます。
CasaDeRobison 14

12

Brainf ** k

- [   --
- -     -
>+<]  >+
  .   --.

これはインタープリターのオーバーフローに依存していますか?
ランチャー14

うん、それは私がすべての通訳がこれをやるとは思わない4.のための文字コードである255 5分の255 = 51 + 1 = 52にオーバーフローを前提としてのように見えますが、1
たけた

@Cruncher 8ビットのラッピングセルが必要です。これは最も一般的なタイプです。
ティムテック14

12

C ++

#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)66<<(char)73<<(char)82;
    cout<<(char)84<<(char)72<<(char)32;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)68<<(char)69;
    cout<<(char)65<<(char)84<<(char)72;
    cout<<(char)32<<(char)32<<'\n';
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)32<<(char)95;
    cout<<(char)95<<(char)95<<(char)32;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)95<<(char)95;
    cout<<(char)95<<(char)95<<(char)95;
    cout<<(char)95<<(char)32<<'\n';
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)47<<(char)32;
    cout<<(char)32<<(char)32<<(char)124;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)124<<(char)32<<(char)32;
    cout<<(char)95<<(char)95<<(char)32;
    cout<<(char)32<<(char)124<<'\n';
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)47<<(char)32<<(char)47;
    cout<<(char)124<<(char)32<<(char)124;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)124<<(char)95<<(char)124;
    cout<<(char)32<<(char)32<<(char)124;
    cout<<(char)32<<(char)124<<'\n';
    cout<<(char)32<<(char)32<<(char)47;
    cout<<(char)32<<(char)47<<(char)32;
    cout<<(char)124<<(char)49<<(char)124;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)32<<(char)47;
    cout<<(char)50<<(char)124<<'\n';
    cout<<(char)32<<(char)47<<(char)32;
    cout<<(char)47<<(char)32<<(char)32;
    cout<<(char)124<<(char)57<<(char)124;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)84<<(char)79<<(char)32;
    cout<<(char)32<<(char)47<<(char)48;
    cout<<(char)47<<(char)32<<'\n';
    cout<<(char)47<<(char)32<<(char)47;
    cout<<(char)95<<(char)95<<(char)95;
    cout<<(char)124<<(char)53<<(char)124;
    cout<<(char)95<<(char)95<<(char)32;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)47<<(char)48<<(char)47;
    cout<<(char)32<<(char)32<<'\n';
    cout<<(char)124<<(char)95<<(char)95;
    cout<<(char)95<<(char)95<<(char)95;
    cout<<(char)124<<(char)50<<(char)124;
    cout<<(char)95<<(char)95<<(char)124;
    cout<<(char)32<<(char)32<<(char)47;
    cout<<(char)49<<(char)47<<(char)32;
    cout<<(char)32<<(char)32<<'\n';
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)124<<(char)32<<(char)124;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)47<<(char)32;
    cout<<(char)47<<(char)32<<(char)32;
    cout<<(char)32<<(char)32<<'\n';
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)124<<(char)32<<(char)124;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)47<<(char)32<<(char)47;
    cout<<(char)95<<(char)95<<(char)95;
    cout<<(char)95<<(char)32<<'\n';
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)32<<(char)32<<(char)32;
    cout<<(char)124<<(char)95<<(char)124;
    cout<<(char)32<<(char)32<<(char)124;
    cout<<(char)95<<(char)95<<(char)95;
    cout<<(char)95<<(char)95<<(char)95;
    cout<<(char)95<<(char)124<<'\n';
    getch();
    return 0;
}  

出力

ここに画像の説明を入力してください


出力:1> c:\ users \ 1および2は3 \ documents \ visual studio 2012 \ projects \ consoleapplication1 \ consoleapplication1 \ consoleapplication1.cpp(87):エラーC4996: 'getch':このアイテムのPOSIX名は廃止されました。代わりに、ISO C ++準拠の名前_getchを使用します。詳細については、オンラインヘルプを参照してください。
Hosch250 14

クール、私がそれを修正したら。
Hosch250 14

@ user2509848エラーは何ですか?
ムクルクマール14

最初のコメントに投稿しました。Visual Studioは代わりになりたかっgetch_getch
Hosch250 14

12

JavaScript

window.location = "https://www.google.nl/search?q=the+answer+to+life+the+universe+and+everything";

出力42


12

J

英数字を含まない対称ワンライナー。

   _<.>.>_ (=(+^:]) ~=(-*-)=~ ([:^+)=) _<.<.>_

出力42。

主な計算は次のとおりです。

ceiling(1 +(1-e ^ 2)^ 2)= 42


11

JavaScript

のASCIIコードは*、ほとんどのプログラマーにとって「すべて」の略で、42 +!"The End of the Universe"です。評価は0です。

String.prototype.answer = function() { alert(this.charCodeAt(+!"The End of the Universe")); };
'*'.answer();

2
私はそれをKleene Starと考えることを好みます。
primo 14

また書くことができます"The End of the Universe"|0
歯ブラシ

10

PHP

WolframAlphaに聞いてください。WolframAlpha APIを使用して特定の検索クエリの結果を取得するコードを次に示します。

<?php

$searchTerm = "What's the answer to life, universe and everything?";

$url = 'http://api.wolframalpha.com/v2/query?appid=APLTT9-9WG78GYE65&input='.urlencode($searchTerm);
$xml = file_get_contents($url);

$xmlObj = simplexml_load_string($xml);
$plaintext = $xmlObj->xpath('//plaintext')[1];
$answer = preg_replace('/\D/', '', $plaintext);

echo $answer;

出力:

42

作業デモ


1
本当に必要ないときにネットワークにアクセスすることは、特に一般的なアンチパターンであるため、私にはあまり創造的ではないようです。
ブラックライトシャイニング14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.