等長線分で作る閉曲線

  • 等長線分で作る閉曲線。例えば、正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というもので発見できるらしい(こちら)

ぱらぱらめくる『素数が香り、形がきこえる-目でみる2次形式』英語版

  • 英語版PDFはこちら
  • 日本語版の本

  • 二次形式について考える
  • 整数係数二次形式は格子とみなせる
    • 例えばf(x,y) = 3x^2 + 6xy - 5y^2なる整数係数二次形式は
    • (\mathbf{e}_1,\mathbf{e}_2)なる相互に線形独立な2つのベクトルを取ることにより、\mathbf{v} = x \mathbf{e}_1 + y \mathbf{e}_2と表される整数係数ベクトルは、(\mathbf{e}_1,\mathbf{e}_2)が定める格子を指定する
    • このとき二次形式f(x,y)は格子点に整数を与える関数になっている
  • この格子点とその値を定める二次形式は、基底の取り方を変え、それに合わせて二次形式の係数を変えて、別の関数表現にすることができる
  • しかしながら、格子点のパターンとその上の値が同じならば、同値とみなすことができる
  • したがって、異なる二次形式関数が同じ格子パターン・値分布に対応することとなる
  • このように、基底の取り方によらな格子パターン・値分布について考えたい
  • また、二次形式はf(x,y) = a x^2 + b y^2 + h xy = \begin{pmatrix}x,y\end{pmatrix} \begin{pmatrix} a, h/2 \\ h/2, b \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix}と、行列表現ができる
  • Equivalentな二次形式における、基底の変換による二次関数係数の変化は\begin{pmatrix} z\\ w \end{pmatrix} = M \begin{pmatrix} x \\ y \end{pmatrix},  \begin{pmatrix} z,w \end{pmatrix} =M^T \begin{pmatrix} x, y \end{pmatrix}なる変換行列Mがあったとき、f(x,y) = \begin{pmatrix}x,y \end{pmatrix} A \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} z,w \end{pmatrix} M^T A M \begin{pmatrix} z \\ w \end{pmatrix}なる関係があり
  • det(M) = \pm 1なので
  • det(B) = det(A) det(M) det(M^T) = det(A) (det(M))^2 = det(A)という関係がある
  • このように二次形式は行列表現すると、その行列式が二次形式のequivalentと関係する
  • Topotreeを描いてみる