連分数と蛇グラフのパーフェクトマッチング数

arxiv.org

  • このペイパーに結び目のJones 多項式と団代数の話がある
  • その中で、結び目が連分数と関係すること、蛇グラフが連分数と関係すること、その結果として、結び目が蛇グラフと関連することが書かれている
  • そして蛇グラフは閉曲面上の三角化の団代数と関連することから、結び目不変量であるJones多項式が団代数と関連することが書かれている
  • ある蛇グラフがあるとき、その頂点のパーフェクトマッチングの場合の数を分子とし、その蛇グラフをちょっと削った蛇グラフの頂点のパーフェクトマッチングの場合の数を分母とした分数が、連分数表現できることが書かれている
  • その連分数表現は蛇グラフの折れ曲がり方により整数列として表せる
  • 今、整数列(a_1,a_2,,,)があったときに、それが連分数 a_1 + \frac{1}{a_2 + \frac{1}{a_3 + ...}}という連分数とする
  • このような連分数を整数列(a_1,...)から計算したいので、Rでコードにしておく
  • ただし、計算もしたいが、その値の分数表現\frac{p}{q}もほしいのでそのような関数を作る
my.cont.frac <- function(as){
	n <- length(as)
	bunsi <- as[n-1] * as[n] + 1
	bunbo <- as[n]
	#print(bunsi)
	#print(bunbo)
	if(n > 2){
		for(i in (n-2):1){
			new.a <- as[i]
			
			new.bunsi <- new.a * bunsi + bunbo
			new.bunbo <- bunsi
			#print(i)
			#print(new.bunsi)
			#print(new.bunbo)
			bunsi <- new.bunsi
			bunbo <- new.bunbo
		}
	}

	return(list(q = bunsi/bunbo,bunsi = bunsi,bunbo = bunbo))
}

as <- c(2,2,-2,-2)

my.cont.frac(as)
  • ちなみに、蛇グラフがまっすぐな時、(2,2,-2,-2,2,2,-2,-2,...)となる
  • これは、分子がフィボナッチ数\times (3n-1)なる数列(A015448 - OEIS)となり
  • 分母がeven Fibonacci number (フィボナッチ数\times (3n))(A014445 - OEIS)となっている
tt0 <- c(2,2)

tt <- c()
v <- c()
bunsis <- bunbos <- c()
for(i in 0:k){
	tt <- c(tt,(-1)^i*tt0)
	tmp <- my.cont.frac(tt)
	v <- c(v,tmp$q)
	bunsis <- c(bunsis,tmp$bunsi)
	bunbos <- c(bunbos,tmp$bunbo)
}

plot(v)

bunsis # 

bunbos # even Fibonacci number