タッパーの自己参照式(Wikipediaからコピー)
Tupperの自己参照式は、Jeff Tupperによって定義された式であり、平面内の非常に特定の場所で2次元でグラフ化すると、式自体を視覚的に再現するように「プログラム」できます。数式のグラフ化の演習として、さまざまな数学およびコンピューターサイエンスのコースで使用されます。
フロア機能はどこに ありますか。
をk
次の543桁の数字にします。
960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719
1つのグラフの点の設定した場合(x, y)
で0 <= x < 106
且つk <= y < k + 17
上記の不等式を満足する、このように得られたグラフの外観(このプロットで軸が反転していることに注意してくださいが、そうでなければ画像が逆さまに出てきます)。
だから何?
この式の興味深い点は、可能な106x17の白黒画像をグラフ化するために使用できることです。現在、実際に検索して検索するのは非常に面倒なので、画像が表示されるk値を把握する方法があります。プロセスは非常に簡単です。
- 画像の最初の列の下のピクセルから始めます。
- ピクセルが白の場合、k値に0が追加されます。黒の場合は、1を追加します。
- ステップ2を繰り返して、列を上に移動します。
- 列の最後で、次の列に移動し、同じプロセスに従って下から始めます。
- 各ピクセルを分析した後、このバイナリ文字列を10進数に変換し、17を掛けてk値を取得します。
私の仕事は何ですか?
あなたの仕事は、106x17の画像を取り込み、対応するk値を出力できるプログラムを作成することです。次のことを想定できます。
- すべての画像は正確に106x17です
- すべての画像には黒(#000000)または白(#FFFFFF)ピクセルのみが含まれ、その間には何もありません。
いくつかのルールもあります。
- 出力は単にk値です。適切なベースにする必要がありますが、任意の形式にすることができます。
- 画像はPNGまたはPPMから読み取る必要があります。
- 標準的な抜け穴はありません。
テスト画像
[ ]は、〜1.4946x10 542を生成するはずです
[ ]は〜7.2355x10 159を生成するはずです
[ ]は2 1801 * 17を生成します
[ ]は(2 1802 -1)* 17を生成します
これはcode-golfなので、最小バイト数が勝ちます。
便利なリンク
quine
どこかでこの言葉を見ることになりました。