DVDロゴは角に当たるのか?
DVDスクリーンセーバーを眺めたことのある人なら、誰もが同じことを考えたはずです。これは角に当たるのか、それとも自分は時間を無駄にしているのか。
この問いには正確な答えがあります。確率でも平均でもなく、4つの情報から前もって計算できる答えです。画面の大きさ、ロゴの大きさ、動く速さ、そしてどこから始まったか。その手順を3段階で見ていきましょう。
ステップ1:画面は見た目より小さい
まず、実際に跳ねているものから始めます。ロゴは点ではなく長方形なので、移動しているのはその左上の角です。そしてその角は画面の右端には決して届きません。ロゴの残りが邪魔をするからです。動ける余地は、画面からロゴを引いたものです。
ここに速度が加わります。ロゴは1フレームあたり決まった画素数だけ動きます。4画素が典型です。つまり、その余地のうち4画素ごとの位置にしか止まれません。その間の画素は「めったに来ない」のではありません。到達不可能なのです。
それらを消すと、絵はまったく変わります。下の左では、交点はすべて画素ですが、ロゴが乗れるのはシアン色の点だけです。右は、そのシアンの点だけを取り出したものです。
残るのが、この問題が本当に存在している格子です。その大きさはこれだけです。
- X =(画面の幅 − ロゴの幅)÷ 速度
- Y =(画面の高さ − ロゴの高さ)÷ 速度
つまり3840 × 2160の画面に176 × 80のロゴを4画素毎フレームで動かすのは、400万画素の問題ではありません。916 × 520の問題です。
これで縮約は終わりです。どんな画面でも、どんなロゴでも、どんな速度でも、X × Yの格子の上を1マスずつ斜めに進む点に帰着します。この2つの数がその後のすべてを決めます。
前提をひとつ、先に明示しておきます。 ここでの話はすべて、ロゴが真の対角線上を進むこと、つまり1画素下がるごとに1画素横に動くことを前提としています。DVDプレーヤーの元祖スクリーンセーバーはそう動きましたし、この後で分析する動画もそう動いています。別の角度で発進させれば格子は崩れ、このページの綺麗な結果もすべて一緒に崩れます。
ステップ2:たった1つの数が、そもそも起きるかを決める
ここが多くの人の意表を突く部分です。角にいつか到達するかどうかは、どれだけ待つかとは無関係です。最初のフレームより前に決着しています。
理由はこうです。いったん角を忘れて、辺だけを見てください。X × Yの格子を斜めに進むとき、ロゴはXフレームごとに左右どちらかの辺に、Yフレームごとに上下どちらかの辺に、時計仕掛けのように触れます。跳ね返りがこのリズムを乱すことはありません。跳ね返りこそがリズムだからです。辺に触れるとは、まさにそういうことです。
角とは、2つの目覚まし時計が同じフレームで鳴ることにほかなりません。
こうして問題は幾何の話をやめ、繰り返す2つの目覚ましの話になります。それぞれが周期のどこにいるとして、いつか同時に鳴ることはあるのか。2つの目覚ましが一致しうるのは、最初の鳴動の間隔が、両者の周期に共通するものの倍数であるときだけです。そしてXとYに共通するものが、その最大公約数です。
判定はこれで全部です。gcd(X, Y)を取ります。ロゴが右下方向に発進したなら、その約数が開始座標の差を割り切るときにだけ角へ到達します。右上方向なら、和を割り切るときだけです。そうでなければ2つの目覚ましは永久にずれたままで、長く回してもリズムは直りません。
同じ12 × 8の格子の上で、隣り合った2つの開始マス。gcd(12, 8) = 4です。(0, 4)からだと差は4、きれいな倍数なので目覚ましは揃います。(1, 4)からだと差は3で、決して揃いません。
ここから、見ただけで使える目安が出ます。おおよそ最大公約数ごとに1マスの開始位置が当たりです。
- gcd = 1
すべての開始位置が角に到達します。ひとつ残らず、確実に。
- gcd = 2
2つに1つ。半分は望みがありません。
- gcd = 3
3つに1つ。
- gcd = 4
4つに1つ。
- gcd = 6
6つに1つ、17 %未満です。
- gcd = 12
12に1つ。91 %超はどこにも行き着きません。
そして実際に効いてきます。ステップ1の916 × 520の格子は最大公約数が4なので、その設定では開始位置の4分の3が、ロゴが一度も動かないうちから望みを絶たれています。
ですから、1時間スクリーンセーバーを見つめて何も起きなかったとしても、運が悪いとは限りません。数学的に何も起こしえないループを見ているのかもしれません。
ステップ3:角はすべてを反転させる
もうひとつだけ事実があります。結末はこれにかかっています。
普通の跳ね返りは、動きの半分しか変えません。右下へ進んでいて右の壁に当たれば、水平方向の符号が反転して、ロゴは左下へ向かいます。垂直方向はまったく手つかずのまま続くので、ロゴはまだ通っていない場所を進み続けます。
角は両方の符号を同時に反転させます。右下は左上になります。新しい方向ではなく、到着したときの方向のちょうど逆です。そして速度の両成分の符号を反転させることは、巻き戻しを押すのと同じです。
そして実際にそのとおりになります。行きに通ったマスを、帰りに逆順で通り直します。行った跳ね返りを、すべて逆向きにやり直します。軌跡は回文です。
つまり跳ね回るロゴは、時間さえ与えればいずれ隅々まで巡る落ち着かない線ではありません。両端に折り返し点をもつ閉じた往復回路であり、その折り返し点が角なのです。
これには最後にもう一度戻ってきます。四隅の問題を完全に決着させるのがこの事実だからです。
到達の間隔はどれくらいか
ステップ2の2つの目覚ましは、角に到達するかだけを教えるのではありません。もう少し引っ張れば、どれくらいの頻度かも教えてくれます。
いったん同時に鳴ったあと、次に同時に鳴りうる最短はいつでしょうか。Xの周期が整数回過ぎ、かつYの周期も整数回過ぎるより前ではありえません。XとYの両方の倍数になる最初の瞬間とは、定義そのままに最小公倍数です。それ以上計算することはありません。
- 当たりの開始位置なら、角への到達はlcm(X, Y)フレームごとに、寸分ずれることなく訪れます
- そして角に届くかどうかによらず、すべての軌跡は2 × lcm(X, Y)フレームごとに閉じます。折り返し点まで行って戻る、ステップ3で述べたとおりです
よく共有される4K・60fpsの動画を見てみましょう。そのロゴは水平方向に317、垂直方向に186の停止位置を持つので、X = 316、Y = 185です。この2つは互いに素、つまり最大公約数が1なので、ステップ2によりその画面のどの開始位置でも当たりです。そしてlcm(316, 185)は単純に316 × 185 = 58,460フレーム、すなわち16分14秒と20フレームです。
この予測は検証可能で、実際に成り立ちます。 その動画で最初の角への到達は13:29:38、2回目は29:43:58に起きます。これは分・秒・フレームの表記です。確かめました。48,578フレームと107,038フレーム、その差はちょうど58,460、フレーム単位で一致します。
解像度がほとんど関係ない理由
「16分14秒」という数字が、まるで4Kの60fpsから導かれるかのように繰り返されるのを目にします。そうではありません。答えが実際に何でできているかを見てください。
lcm(X, Y) = X × Y ÷ gcd(X, Y)
ある角への到達から次までの待ち時間(フレーム数)。
解像度はXとYを動かしますが、その動かし方は穏やかです。画面を2倍にすれば、それぞれもおおむね2倍になります。ところがgcdは分母にあり、しかもgcdは大きさではありません。どの数が因数を共有するかという偶然であり、見た目がそっくりな2つの設定のあいだで1から127へ跳ねることがあります。
その効果がこれです。同じ284 × 128のロゴを同じ4画素毎フレームで動かし、画面だけを変えました。
- 1080p
格子は409 × 238。共有する因数がないので最小公倍数は409 × 238そのまま。角への到達は27分ごと。
- 4K
格子は889 × 508。127という因数を共有し、それがそのまま割り落とされる。59秒ごと。
画素数は4倍なのに、待ち時間は27分の1になりました。ふつう語られるのとは正反対で、4Kのほうが大きいことは関係ありません。889と508が127を共有し、409と238が何も共有しないからです。
ロゴの大きさも同じことを、同じくらい激しく起こします。画面を3840 × 2160、速度を4画素毎フレームに固定し、ロゴの実際の縦横比を保ったまま、大きさだけを変えます。
- ロゴ 176 px
格子は916 × 520。角への到達は33分5秒ごと、ただし4つに1つの開始位置から。
- ロゴ 204 px
格子は909 × 517。2.18時間ごと、ただしどの開始位置からでも。
- ロゴ 256 px
格子は896 × 511。18分10秒まで下がる、7つに1つの開始位置から。
- ロゴ 284 px
格子は889 × 508で、127という因数を共有。59秒ごと。
- ロゴ 292 px
格子は887 × 507で互いに素。2.08時間まで戻る。
- ロゴ 300 px
格子は885 × 506。2.07時間ごと。傾向はなく、跳ねる。
同じ画面、同じフレームレート、同じ速度です。ロゴの幅がわずか8画素違うだけで、待ち時間は1分から2時間に変わります。 127倍の跳ね上がりで、理由は889と508が127という因数を共有し、887と507は何も共有しないことです。しかも数列に傾向がないことに注目してください。あるはずもありません。追っているのは寸法ではなく約数だからです。
つまり答えを支配しているのは、何かの大きさではありません。どの設定をひとつ動かしても、算術は一から組み替わります。
では四隅すべてに当たるまではどれくらい?
そこで、多くの人が本当に知りたい問いに行き着きます。1つの角に16分かかるなら、4つなら1時間ほどのはずでは?
いいえ。あなたがそれを目にすることは決してありません。 1時間でも、1年でも、宇宙の熱的死まで動かし続けても同じです。
理由はステップ3がすでに与えています。角はロゴを逸らすのではなく、反転させます。ロゴは自分の来た道をそのまま引き返して2つ目の角に至り、再び反転して戻ってきます。これは折り返し点をちょうど2つ持つ閉じた回路です。残る2つの角は、遠いのでも起こりにくいのでもありません。単に経路上に存在せず、この仕組みのどこにもそれを経路に載せる働きはないのです。
どの2つになるかも運ではありません。ここでの他のすべてと同じく、開始マスの時点で決まっていました。
これは仮定せず、確かめました。 281,250通りの開始条件、すなわち26×26までのすべての格子・両方の対角方向・すべての開始マスをシミュレートした結果は、毎回きまって2つの角か0個の角でした。1つ・3つ・4つになった実行は一度もありません。うち205,342回が2つの角に到達し、75,908回はどこにも到達しませんでした。
ですから「四隅すべてまであとどれくらい?」への正直な答えは、そもそも数ではありません。待つべき出来事が存在しないので、待ち時間も存在しません。そしてそれは、ロゴが最初の跳ね返りを終えるより前に決まっていたのです。
自分で試す
当サイトのシミュレーターは跳ね返りの感覚をつかむ最短の方法ですが、正直に断っておくべき点がひとつあります。各ロゴは固定の45°ではなく、25°から65°のあいだのランダムな角度で発進します。これは意図した選択で、見た目がよく軌跡が単調にならないためですが、その分、そこでの角への到達は上で述べた綺麗な格子の算術ではなく独自の理屈に従います。綺麗な算術が当てはまるのは真の対角線の場合、つまり元祖のDVDプレーヤーと、私たちが計測した動画のほうです。
代わりにできるのは、この記事が扱う変数をすべて動かして、跳ね返りがどう変わるかを見ることです。速度とスケールを調整し、オブジェクト数を増やして複数のロゴを別々の軌跡で同時に走らせ、アスペクト比を16:9・9:16・1:1で切り替えてみてください。どれも形の違う問題になります。
そのうえでGIFとして、あるいは1080pまでのMP4やWebMとして、または単体のHTMLファイルとしてエクスポートできます。HTMLはインターネット接続なしで永久にループするので、走らせたまま自分の目で角への到達を見届けたいときに向いています。
透かしなし、アカウント不要、無料。画像はご自身のブラウザで処理され、どこにもアップロードされません。
よくある質問
DVDロゴは本当に角に当たることがあるのですか?
当たることもあります。そしてそれは動き出した瞬間に決まっています。画面・ロゴ・速度が決まれば、ある開始位置は角に到達するか、永遠に到達しないかのどちらかです。第三の結果はなく、運の要素もありません。判定は算術です。格子の幅と高さの最大公約数を取ります。右下方向へ動き出したロゴは、その約数が開始座標の差を割り切るときにのみ角に到達します。右上方向なら、和を割り切るときだけです。おおよそ最大公約数ごとに1マスの開始位置が条件を満たします。
DVDロゴが角に当たるまでどれくらいかかりますか?
画面を、ロゴが実際に取りうる位置の格子まで縮めます。その格子が幅X・高さYなら、角への到達はXとYの最小公倍数フレームごとに起こります。よく共有される4K・60fpsの動画では58,460フレーム、つまり到達の間隔は16分14秒です。この数字はその動画に固有のものであり、4K一般の性質ではありません。
画面解像度が角に当たるまでの時間を決めるのですか?
いいえ。同じロゴを同じ速度で両方の解像度で走らせたところ、1080p画面では27分ごと、4K画面では59秒ごとに角へ到達しました。画素数は4倍なのに待ち時間は27分の1です。時間を決めるのは格子の幅と高さが因数を共有するかどうかであって、画素がいくつあるかではありません。単に「4Kの60fps」とだけ述べた答えは、4Kの性質ではなく特定の1本の動画を説明しているにすぎません。
DVDロゴは四隅すべてに当たれますか?
いいえ。可能性が低いという話ではなく、不可能です。ロゴは角に到達した瞬間、来たのとまったく同じ経路を逆にたどり、それを引き返して2つ目の角に至り、再び反転して、これを永遠に繰り返します。経路は2つの角のあいだの閉じたループなので、残る2つはその開始位置からは決して到達できません。長く待っても事態は変わりません。
DVDロゴはいくつの角に当たれますか?
ちょうど2つ、あるいはまったく当たらないかのどちらかです。26×26までのすべての格子について、両方の対角方向で281,250通りの開始条件をシミュレートしましたが、1つ・3つ・4つの角という結果は一度も現れませんでした。
角への到達はランダムですか?
まったくランダムではなく、完全に決定論的です。画面・ロゴ・速度・開始位置が分かれば、角にいつか到達するのか、待ち時間はどれくらいか、そしてどの2つの角になるのかを事前に計算できます。予測不能に見えるのは、跳ね返りが生む錯覚です。