長方形に円を並べるという高校生の問題が難しかった
以下のツイートを見たことからはじまった。高校生の問題のはずなのに中々解けないというか、どのように手をつけて良いかわからず少しの間はまってしまった。 わからなかったので、勉強会で知り合いに聞いたりして、最後にはほぼ答えを教えてもらってなんとかとけました。よかった。。
この問題って有名な問題でしょうか?
— アラクー (@Arakur65536) 2017年5月31日
「偏差値72の高校の試験問題」だそうです pic.twitter.com/aYyy73Sel6
問題
一辺の長さがそれぞれ4,2000である長方形に敷き詰めることができる単位円(半径が1の円)の個数は2011個以上であることを証明せよ。ただし、敷き詰める円は互いに重なり合わないものとする。必要があれば1.9819<<1.982を用いても良い。
試行錯誤
という問題で、普通に格子状に綺麗にならべたら2000個は並べることができるってのはすぐわかるんだけど、これよりももっと隙間なく並べることができるかっている試行錯誤がはじまるわけ。
3つずつ並べてみたり
3つの正三角形を組みにしてならべてはどうかと思うけど、2000個のやつよりもならばないし
対角線に一列に並べてみたり
もしかしたら対角線にならべて、その上と下にうまいことならべたら綺麗にならぶのかとおもったんだけど、1200個くらいしか並びません。
そんなわけで、最終手段として、少しずつ上下にずらしながら、ジグザグに並べたらどうなのかと思い浮かびます。
回答
こんな風にならべると、例えば下の行を見ると5の円を少しだけ上に並べることができるので、上の2000個の並べ方よりも少しだけ詰めて並べることができます。これはすごい。
直線に並べるよりも、どれだけ詰めてならべることができるか(=2-αとおく)は、上の図の5の球を少し上におくことでどれだけ詰めることができるかに帰着できるから
3と5の円の中心の位置を計算するために3と5を抜き出してして図にすると以下のように書くことができ
αを三平方の定理を使って求めるととなります。
三平方の定理を使った計算はこんな感じ。
22 = α2 + (2-)2]
α2 = 4 - (4 - 4 + 3)
α2 = 4 - 3
α =
これで、問題文で与えられていた「必要があれば1.9819<<1.982を用いても良い。」という条件と結びつくんですね。
一直線に並べると、円ある円の中心から隣の円の中心までの距離は2となりますが、5番の円を少しだけ上におくことで、隣の円とのx軸方向の距離は約1.982となり0.018くらいつめて置けるわけです。
このパターンで何個並べることができるか計算すると、2011個となります。
並べた画像は以下。
回答としては、以上となります。
ここからは、これまでの画像を作るコードとtwitterでのつぶやきのコピー
pythonのコード
円を描くコード
0から60を描くコード
1999から2011までを描くコード
やばい、高校の問題とけない笑、どうやって解こうかなー https://t.co/ClwcWUQIO1
— カレーちゃん (@currypurin) 2017年5月31日
RTの問題、こんな感じにまず対角線に並べて、その上と下に並べるのが答えかと思ったんだけど違うみたいだ。並ばない(笑 pic.twitter.com/JyOwKjXlVA
— カレーちゃん (@currypurin) 2017年6月3日
となると、微妙に上下にずらしてジグザグに並べるのが答えか。。
— カレーちゃん (@currypurin) 2017年6月3日
横長に長方形を置いて、左端から下辺に接するように上1:下2の円を並べる。その次は上辺に接するように上2:下2の円を並べる。その繰り返しをすると、
— nob (@nob_ymkw) 2017年6月4日
3*335+1=2011個置けますね。
あー、なるほどそういう置き方ですか!!ようやく置き方がわかりました。感謝です。
— カレーちゃん (@currypurin) 2017年6月4日
例の問題、とりあえず60個並べてみた。
— カレーちゃん (@currypurin) 2017年6月4日
PCの性能が悪いのか、pythonのコードが悪いのか500個以上円を描くと処理落ちする。
実際に2000こ並べることに意味はないけど、円に何個目の円かラベルをつけて並べることができたら、解答としてはわかりやすいかも。 pic.twitter.com/Rl8tmH8quk
この問題初見で、短時間で解ける人はなかなかいないとおもう。自分のばあいは1人でやってたら一生とけなかったかも笑
— カレーちゃん (@currypurin) 2017年6月4日
最密充填て分野に分類されるのかしら? https://t.co/U0fdF2k1QW
最密充填のなかでも、球充填て分野か。https://t.co/iUjeFKyhvf https://t.co/lkbKZ4gl76
— カレーちゃん (@currypurin) 2017年6月4日
最密充填って、そういえば高校の化学で少しやりましたね。
— カレーちゃん (@currypurin) 2017年6月4日
昔すぎて忘れていたわ。でも糸口があれば少しづつ思い出せるんだから、昔の記憶ってすごい。
一気に2000個の円を描く必要はなかったんだな。必要なところだけ描画する方法で、2011個並べることができました。
— カレーちゃん (@currypurin) 2017年6月5日
この方法で2012個目ははみ出してしまって、並べることはできなかったけど、並べることができないっていう証明はできるのかな? pic.twitter.com/Pz5L2PB8Bn
2011以上である証明に加えて、2012以外である証明もあるらしい。前者は出来たが、後者はどうするのだろう?
— nob (@nob_ymkw) 2017年6月5日
え、まだこの問題の続きがあるの。。。2012以下である証明か面白そう。