ペアに分ける

  • 偶数個2kの互いに区別できるアイテムを2個ずつのペアに分けたい
  • その場合の数は二重階乗(2k-1)!!
  • (2k-1)! / (2^{k-1} \times (k-1)!)として計算できるが
  • RのZseqパッケージのFactorial.Double()関数を使っても計算できる
library(Zseq)
Factorial.Double(6)
> Factorial.Double(6)
Big Integer ('bigz') object of length 6:
[1] 1   1   3   15  105 945
k <- 3
2 * k -1
factorial(2*k-1)/(2^(k-1)*factorial(k-1))
  • 考え方としては
  • 2個をペアにする場合の数は1
  • 4個をペアにする場合の数は、4個のうちの1個について、ペアを選ぶ場合の数が(k-1)通りあるので、そのk-1通りについて、残りの2個をペアにする場合の数をかける
  • したがって、2k個をペアにするときの場合の数をA_kとすれば、(2k+2)個をペアにする場合の数[tex:A_{k+1}
  • A_{k+1} = (2k+1) \times A_kとなり、A_k=(2k-1)!!