等長線分で作る閉曲線

  • 等長線分で作る閉曲線。例えば、正n角形

f:id:ryamada:20191202133217j:plain

  • きちんと閉じるための条件などを考えたい
  • n本の線分を連結し、その両端点間距離がゼロであることが「閉じる」ということ
  • n=1のとき、両端点間距離は1(長さが1の線分で作る場合)
  • n=2のとき、両端点間距離は0-2
  • n=3のとき、両端点間距離は0-3
  • n=nのとき、両端点間距離は0-n
  • ただし、はじめのn-1本の連結線分の両端点間距離がLのとき、n本目を連結すると、最短|1-L|、最長1+Lとなる
  • また、n本目を連結して、ちょうど閉じるためには、n-1本の両端点間距離はちょうど1である必要がある
  • n-1本目までの距離に対して、n本目を連結したときに取りうる距離は連結角の関数として\sqrt{1+L^2 + 2L \cos{\theta}}と表される

f:id:ryamada:20191202134357j:plain

2個の等長線分を連結し、その両端を固定する

  • このとき、両端点間距離は0~2
  • 長さがいずれの値であるにしろ、いったん平面に置いてしまうと、動かせない
  • 両端点間距離が2より短いときには、上に凸と下に凸との2つの対称的な置き方が可能だが、その2つの置き方を連続的に行き来することができない、ということである
  • では3個の等長線分を連結し、その両端を固定する
  • 中間に2つの関節がある、これらはぐねぐねと動かせる
  • 今、両端点間距離をLとし、両端点座標を(0,0),(L,0)とする
  • 中間の2点の座標を(x_1,y_1) = (\cos{\theta_1},\sin{\theta_1})(L-x_2,y_2) = (z_2,y_2) = (L-\cos{\theta_2},\sin{\theta_2})とする
  • このとき式変形をすることにより
  • x_2 = \frac{1}{2}(L-x_1) \pm y_1 \sqrt{\frac{3+2x_1 \times L - L^2}{L^2 - 2 * x_1 L +1}} が得られる
  • これをRで実装し、お絵描きしてみる

f:id:ryamada:20191203110048j:plain

  • 緑と赤の線分が対称的になって少しスペースの空いたところがある。ここは「上凸・下凸変換可能性箇所」とでも呼ぶ領域になる。その説明を以下にする
  • 緑の線分と赤の線分とは、二次方程式の解のペアに相当する。この2つの階が重解になるときは、緑の線分と赤の線分が一致し、そのときには、2線分が上にも下にも凸ではない平坦になる
  • 逆に言うと、この重解のときは、上に凸と下に凸との入れ替えがスムーズに可能であることとなる
  • したがって、緑の線分を徐々に変化させ、緑と赤とが一致するところで色を変え、赤の線分を徐々に変化させることによって、中間2関節位置が同じで、上に凸と下に凸の2状態との間を行き来することができる

f:id:ryamada:20191203110059j:plain
f:id:ryamada:20191203110112j:plain
f:id:ryamada:20191203104707j:plain

素数とベン図

  • 自然数 n 種類が作る2^nカテゴリを2次元平面の領域分割として表す方法がベン図
  • どんなnでもうまい方法が見つかる(見つけやすい)わけではなく、素数はうまい方法があるという(こちら)
  • まず、nが素数の場合、2^n-2=2(2^{n-1}-1)がnで割り切れるという。
library(primes)

n <- 1:100
p <- which(is_prime(n)) # 素数はどれ?
n. <- n[p]
N <- 2^n
N. <- 2^n.
a <- (N-2)/n
a. <- (N.-2)/n.

my.is.integer <- function(a,k=-10){ # 整数かどうかを判定する関数
	(abs(a)-floor(abs(a))) < 10^k
}

all(my.is.integer(a))
all(my.is.integer(a.)) # 素数の場合はそろって整数
  • 2^n-1素数の関係には別の側面もあって、メルセンヌ数と言うのがあって、その中には素数が結構、含まれることが知られている。ちなみに2^n-1素数のとき、nも素数だという。ただし素数nに対して2^n-1素数であるとは限らない
  • さて、この2^n-2をn等分した数は、2^n通りの場合のうちの全0,全1を除いた場合の1\n画分になる
  • その画分をポセットにすることが、ベン図の描き方の発見に利用されるという
  • 実際、その画分の要素数は、nからi個を取る場合をn等分したものを足し合わせたものとなるので、\sum_{i=1}^{n-1} \begin{pmatrix} n \\ i \end{pmatrix}/nと分けられる
  • ベン図表示の検出にあたっては、このように分けるn対称な取り合わせを構成することを通じて行う。そのような取り合わせはGreene-Kleitman successor ruleというもので発見できるらしい(こちら)