月の謎の大きさ
月のサイズが変わることを聞いたことがあると思います。あなたが恋をしていて幸運なとき、月は通常の状況に比べてほぼ2倍の大きさです。一部の人々は、理由はレンズとして機能する雰囲気だと言います。他の人は、近くの木など他のオブジェクトとの比較の問題にすぎないと考えています。どのような説明を読んでも、それは非常に主観的なものです。
月の科学の大きさ
プログラマーですよね?事実に頼っていますよね?だからここに実験があります:
- 時間と絞りの手動設定をサポートする素敵なカメラを用意してください。
- カメラを最大ズームレベルに設定します。
- 外に出て、月の写真を撮って、最適な設定を検出して、月がシャープになり、照明がちょうど良いようにします。
- 設定を覚えておいてください
- 月が大きいか小さいと思うたびに、これらの設定で月の写真を撮ります。
- 月のサイズをピクセルで計算する
カメラは嘘をつきませんよね?明るいピクセルを数えることで、月の大きさを少なくともピクセル単位で効果的に測定できます。
サイズがすべての写真で同じ場合、それは私たちの脳のバグです。サイズが異なる場合、推測の余地があります
- 月は本当に成長します(しかし、それは何を食べますか?)
- 大気のレンズ効果があります
- 月は楕円曲線を持ち、時には近く、時には地球から遠く離れています
- ...
ただし、タスクが完了するまで開いたままにします。もちろん、ソフトウェアが月のサイズを正確に計算できるかどうかを事前に知りたいと思うでしょう。
タスク
月の最適化された写真をいくつか与えて、月のサイズを計算してください。最適化は次のとおりです。ピクセルは黒または白です。間に何もない。アンチエイリアスなし。これで簡単になりますよね?
警告:月はいつも満杯ではありません、あなたは知っています...それは鎌でありえます!しかし、鎌の形であっても、月のサイズは大きくなります。したがって、フルサイズを計算してください。
- プログラムは、PNGを入力として受け取ります。たとえば
stdin
、プログラムの代わりに関数を記述する場合、ファイル名のコマンドライン引数として、または(標準フレームワークライブラリの)Bitmapオブジェクトとしてパイプされます。 - プログラムは、適切な入力ビットマップサイズで動作しますが、必ずしも正方形ではありません。150ピクセルの最小幅と高さが保証されています。
- 満月は写真の少なくとも25%を覆います。
- プログラムは、満月のように計算された月のサイズをピクセル単位で出力します。
- 月は完全な球体であると仮定します。
- 正確なサイズは常に整数ですが、計算で返される場合は10進数を出力できます。
- 精度は98%から102%の間でなければなりません。(それは私が達成できると保証できるものよりもむしろ推測です。到達するのが難しすぎると思われる場合は、コメントを残してください。)
更新:
- 月の中心は必ずしも写真の中央にあるとは限りません。
- 最小の可視領域は月の5%またはピクセルの総数の1.25%です。
- 写真は、月全体が画像に合うように撮影されます。つまり、ピクセルの総数は月のサイズの上限です。
- 月は切り取られません。
サンプル
必要に応じて、ブレンドファイルを使用して独自のサンプルを生成できます。次の写真を作成しました。WhitePixelCounter.exe(.NETが必要)を使用してPNGファイル内のピクセルをカウントし、イメージに黒と白のピクセルのみが含まれているかどうか、およびそれらの数を確認できます。
次の256x256ピクセルの画像は白いピクセルの量が異なりますが、計算された月のサイズは16416ピクセルになります。
そして、これらの177x177ピクセルの画像は10241ピクセルを返すはずです。画像は基本的に同じですが、今回は焦点距離の異なるカメラが使用されました。
結果が9988の非正方形および非中心サンプル:
ああ、私は今のところリファレンス実装を持っていませんし、何かを実装できるかどうかさえ知りません。しかし、私の脳には、数学的に解決可能でなければならないという強い信念があります。
ルール
これはコードゴルフです。2015-03-30の最短コードが受け入れられます。