12

直線通過条件と連分数

177
0

導入

ここでは次のような問題を扱う。

問1.次の図において、原点を通り、一つに繋がっている黄色い正方形の内部をすべて通るような直線は存在するか。

Q1Question Q1Question
今回の場合は、Yesである。下の図のような直線が引けるのだ。
Q2Answer Q2Answer
しかし、次のような場合はNoである。

問2.次の図において、原点を通り、黄色い正方形の内部をすべて通るような直線は存在するか

Q2 Q2
証明をしようとすると少し手間が必要なのだが、その手続きをより統一化していくと、連分数にまでつながる考え方となる。今回はそれについてを述べていく。

問題の解決方法

簡略化法

この問題において重要なのは、直線の傾きαである。
問題を満たすような直線がy=αxとあらわされていたとする。そしてx,y軸を反転させることによって、α>1としてもよい。このとき、y軸方向に見たときのに、各列の直線が通る正方形の個数を考える(例えば図のα=1712では2,2,3,2,3,)。
a_nExplain a_nExplain
直線の通るnxn+1内の正方形の個数anは、次のようにあらわされる。
an=α(n+1)αn
ここでα0:=αとして、式変形をしてみると、
an=α(n+1)αn=(αα0)(n+1)(αα0)n+α0
となり、0αα0<1が成り立っている。
 ここでanと同様に、y=(αα0)xに対応する数列をbnとすれば、
an=bn+α0
となっている。
 何が起こっているのか、図で確認してみよう。
anbn anbn
左図のy=1712xが(αα0=512より)右図のy=512xに対応してたといえる。このときに直線の通る正方形の個数は左図でanと右図でbnであるが、an=bn+1が成立しているとわかる。つまり、一般的に言えば、傾きを整数だけ変化させることによって通る正方形も一様に変化するのだ。
 ここで重要な事実が分かった。黄色の正方形を先ほどのように数列{an}で表す(全ての黄色い正方形が一つに繋がっている点に注意)。そしてこの黄色い正方形を正方形列{an}と呼ぶ。このとき次の補題が成立するのだ。

正方形列{an}を通る直線が存在するとする。このとき任意の整数kminmam1に対して、正方形列{ank}を通る直線が存在する。

補題の対偶をとると、面白いことがわかるだろう。つまり、正方形列{an}に対して、正方形列{ank}を通る直線が存在しないことを示せば、正方形列{an}を通る直線が存在しないことが示されるのだ。言い換えれば、正方形列{an}を簡略化して問題を解くことができる。

簡略化法の応用

 補題1を用いて、問2を解決してみよう。まず正方形列{an}n=0p1を求めると(pは正方形列の列数)
1,2,1,2,2,1,2,1,2,1,2,2,1,2,2,1,2,1,2,1,2,2,1,2,1
となる。これでは簡略化できないので、x,y軸を入れ替える。この時の操作は、正方形列の見る方向をy軸平行x軸平行にすればよいだけである。すると
2,3,2,3,3,3,2,3,2,3,3,3,2,3,2
となる。ここで補題1を用いて、
1,2,1,2,2,2,1,2,1,2,2,2,1,2,1
と簡略化できる。ここでまたx,y軸を入れ替える。すると
2,3,2,2,3,3,2,2,3,2
となる補題1より
1,2,1,1,2,2,1,1,2,1
x,y軸を入れ替えて
2,4,2,4,2
補題1より
1,3,1,3,1
この正方形列を通る直線は存在しない。
Q2Simple Q2Simple
この証明は非常に簡潔である。

y=αxが正方形①を通る条件はα>1である。次に正方形②を通る条件はα<1である。これより二つの条件を満たすようなαは存在しないため、直線は存在しない。

 この手順をまとめてみよう

  1. x,y軸を入れ替えることによって、minmam2とする。
  2. {an}{an(minmam1)}と簡略化する
  3. 1,2を繰り返し、1.において軸入れ替え後もminmam1となるまで続ける。
  4. 証明をする

 ただし、4.で直線が存在した場合に、補題1より、元の正方形列に対しても直線が存在するとわかる(つまり直線の存在が二つの正方形列で同値)。そのため、この操作は直線が存在することと、存在しないこと両方の証明に用いることができるのだ。実際に問1でもやってみよう(先ほどの手順を少し改善できる)。
 問1の正方形列は
1,2,2,1,2,2,1,2,2,2,1,2,2,1,1
手順1より
2,2,3,2,3,2,2,3,2,3
手順2より
1,1,2,1,2,1,1,2,1,2
手順1より
3,3,4,3,1
ここで問題が生じる。x,y軸を入れ替えてもminmam1となってしまうのだ。しかもここで直線の存在を考えるのはまだ面倒である(というよりも、この行き詰まりが長い数列で起こりえるため、対策を考える必要がある)。
 ここである技術をご紹介しよう。正方形列の最終項に新たな正方形を加えて、直線の通るべき正方形を増やすという方法だ。この新しい正方形列を通る直線が存在するならば、当然ながら元の正方形列も通っている。従って、追加された正方形列に対して直線が存在することは、元の正方形列に対して直線が存在することの十分条件なのである。ここで気になるのは逆の成立だが、こちらも条件を課せば成立していることが補題2により保証される

正方形列{an}n=0p1(ap1a0)に対して、正方形列{bn}n=0p1を次のように定義する
bn:={an(np1)a0(otherwise).
このとき正方形列{an}を通る直線が存在することと、正方形列{bn}を通る直線が存在することは同値である。

まず{bn}を通る直線が存在したとする。このときap1min0mp2am=bp1より、この直線は{an}。も通る。
 次に{an}を通る直線が存在したとする。この直線をy=αxとすると、
a0=α0=α
である(さもなくば直線はこの正方形列全てを通らない)。また、y軸からp番目の列のうち、直線が通る正方形の個数は
αpα(p1)
である。(αRZを仮定し)これを変形して
αpα(p1)>αpα(p1)=α
となるため、正方形の個数はα以上とわかる(αZの時にはα=αより同様のことが成立している)。したがって、この直線は正方形列{bn}も通るため、補題が成り立つ。

 これを使ってみる。行き詰っていたのは
3,3,4,3,1
であった。補題2を利用すれば、直線の存在が同値な正方形列は
3,3,4,3,3
となり、minmam2を満たすために、手順2を進めることができる。
1,1,2,1,1
手順1と2を交互に進めていけば
1,1,2,1,13,31,121
が得られる。1のみの数列、つまり一つの正方形を、当然直線は通過できる。よって問1は肯定的に解決される。

連分数と格子

直線の求め方

 問1が肯定的に解決されたところで、ある疑問が残る。すなわち、どのような直線が問1を満たすのかということだ。
 ここで補題1を思い出していただきたい。補題の核となる事実は
an=α(n+1)αn=(αk)(n+1)(αk)n+k
という部分である。ここで手順1で行ったことは、{an}{ank}に置き換えたことだ。言い換えれば、y=αxが正方形列{an}を通ることと、y=(αk)xが正方形列{ank}を通ることが同値ということだ。
 手順1においては、x,y軸を入れ替えている。正方形列{an}x,y軸を入れ替えたときの正方形列を{bn}とすると、y=αxが正方形列{an}を通ることと、y=1αxが正方形列{bn}を通ることが同値である。なお、補題2では証明からわかる通り、直線は変化しないことに注意する。
 これらのことを踏まえて、問1の直線(すでに書いているがy=1217xが一つの解である)を求めてみよう。問1で用いた変形をまとめると
1,2,2,1,2,2,1,2,2,2,1,2,2,1,12,2,3,2,3,2,2,3,2,31,1,2,1,2,1,1,2,1,23,3,4,3,1(3,3,4,3,3)1,1,2,1,13,31,121
となる。正方形列1を通る直線y=α0xから初めて、各行の最初の正方形列を通る直線を考えてみる。ただし、左のα+kを、右の1αを行う。左の正方形列に対する直線の傾きを下から順に(α0,)α1,α2,α3,α4とすれば
α1=11+α0α2=12+α1α3=12+α2α4=11+α3=11+12+12+11+α0
となる。ここで0<α0<と考えて、α4の値域は
710<α4<57
と求められた。

連分数

α0の計算に連分数が出現した。この連分数の出現はかなり面白いことを示唆している。例えば傾きが不明で原点を通る直線と格子を渡された際に、その傾きの値の連分数を近似できるのだ(勿論大抵は実用的ではない。そのため問には取り上げなかった)。この方法によって、連分数を直感的にとらえることができればな~と思う。

投稿日:20201025
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

epidemic
epidemic
42
2975
ネタ切れ中; TeXの空白やピリオドの様式がよく分からん; 日本語記事の少ない話題を主に書く;

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 導入
  2. 問題の解決方法
  3. 簡略化法
  4. 簡略化法の応用
  5. 連分数と格子
  6. 直線の求め方
  7. 連分数