python 事始め
- Jupyter notebookを使ってpythonの事始め
正多角形を敷き詰めて正多角形の穴を作る
- 同じ形のタイルで2次元平面を敷き詰める「タイリング」はいろいろやられている
- 正多角形でそれをやろうとすると、正三角形、正四角形、正六角形でできることも知られている
- ちょっと問題を変形してみよう
- いろいろな辺の数・頂点の数を持つ正多角形のタイルがあったとする
- すべての正多角形の辺長は同じであるとする
- それを連結していって、いつの間にかぐるりと回ってぴたりと合わさるのはどういう場合なのだろうか、という問題
- もしも同じ正多角形だけをピースとするとすると、正三角形・正四角形・正六角形の場合だけらしい
- Rでやってみる
- 正多角形の外角が、であること、正多角形を並べると、それが作る折れ線には正多角形の2頂点分の角度が加わることを使って、試してみる。そして、出来上がる穴がやはり正多角形であることも使う
- そうすると、ピースがk正多角形だとして,p多角形の穴ができるとすると
- いろいろなkについてpを解いたときにpが自然数になれば「成功」
- 穴を特別視しているけれど、結局、正多角形によるタイリングの問題の変形に過ぎない問題
- ただし、これを3次元での閉多面体的タイリングにするとなると、ちょっと(?)難しくなる
等長歩幅2次元Brownian Excursion
- 歩幅一定で2次元平面を歩き、きっちり元の位置に戻ってきたい
- 元の位置に戻ってくるランダムな運動をbrownian excursionという
等長線分で作る閉曲線
- 等長線分で作る閉曲線。例えば、正n角形
- きちんと閉じるための条件などを考えたい
- n本の線分を連結し、その両端点間距離がゼロであることが「閉じる」ということ
- n=1のとき、両端点間距離は1(長さが1の線分で作る場合)
- n=2のとき、両端点間距離は0-2
- n=3のとき、両端点間距離は0-3
- n=nのとき、両端点間距離は0-n
- ただし、はじめのn-1本の連結線分の両端点間距離がLのとき、n本目を連結すると、最短、最長となる
- また、n本目を連結して、ちょうど閉じるためには、n-1本の両端点間距離はちょうど1である必要がある
- n-1本目までの距離に対して、n本目を連結したときに取りうる距離は連結角の関数としてと表される
2個の等長線分を連結し、その両端を固定する
- このとき、両端点間距離は0~2
- 長さがいずれの値であるにしろ、いったん平面に置いてしまうと、動かせない
- 両端点間距離が2より短いときには、上に凸と下に凸との2つの対称的な置き方が可能だが、その2つの置き方を連続的に行き来することができない、ということである
- では3個の等長線分を連結し、その両端を固定する
- 中間に2つの関節がある、これらはぐねぐねと動かせる
- 今、両端点間距離をLとし、両端点座標をとする
- 中間の2点の座標を、とする
- このとき式変形をすることにより
- が得られる
- これをRで実装し、お絵描きしてみる
- 緑と赤の線分が対称的になって少しスペースの空いたところがある。ここは「上凸・下凸変換可能性箇所」とでも呼ぶ領域になる。その説明を以下にする
- 緑の線分と赤の線分とは、二次方程式の解のペアに相当する。この2つの階が重解になるときは、緑の線分と赤の線分が一致し、そのときには、2線分が上にも下にも凸ではない平坦になる
- 逆に言うと、この重解のときは、上に凸と下に凸との入れ替えがスムーズに可能であることとなる
- したがって、緑の線分を徐々に変化させ、緑と赤とが一致するところで色を変え、赤の線分を徐々に変化させることによって、中間2関節位置が同じで、上に凸と下に凸の2状態との間を行き来することができる