第2章 中世アジア数学史
著者:梅谷 武
第2章 中世アジア数学史の数式・表・プログラム一覧。
作成:2013-09-04
更新:2013-09-04

定理2.1 順列・組み合わせの公式

(2.1)
nPr = n(n-1)⋯(n-r+1) =
n!
(n-r)!
(2.2)
nCr =
n(n-1)⋯(n-r+1)
1∙2∙⋯∙r
=
n!
r!(n-r)!
表2 四音節の展開図表
ヴリッタ 番号 ヴリッタ 番号
00000 10008
00011 10019
00102 101010
00113 101111
01004 110012
01015 110113
01106 111014
01117 111115
算譜201 消失算法 (samp201.rb)
def encode(n, m)
  str = []
  for i in 1..n
    if m % 2 == 0
      m = m / 2
      str.unshift('0')
    else
      m = (m - 1) / 2
      str.unshift('1')
    end
  end
  return str.join
end
 
for i in 0..7
  printf "%s %d\n", encode(3, i), i
end
 samp201.rb の実行結果
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
算譜202 提示算法 (samp202.rb)
def decode(n, vrtta)
  if vrtta.kind_of?(String)
    if vrtta.length != n
      raise TypeError
    else
      a = 1; sum = 0
      for i in 0...n
        if vrtta[n-1-i].chr == '1'
          sum += a
        end
        a <<= 1
      end
      return sum
    end
  else
    raise TypeError
  end
end
 
table = ["000","001","010","011","100","101","110","111"]
for vrtta in table
  printf "%s %d\n", vrtta, decode(3, vrtta)
end
 samp202.rb の実行結果
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

定理2.2 二項定理

(2.3)
(a + b)n =
n

k = 0
(n
k
)
akbn-k
(n
k
)
= nCk

補題2.3 二項係数の加法公式

 任意の自然数n,r(n>r)に対して次が成り立つ。
(2.4)
(n
r
)
+
(n
r+1
)
=
(n+1
r+1
)
算譜203 算術三角形の作成 (samp203.rb)
# 算術三角形の作成
# C[k][j] : 二項係数
max = 10
C = Array.new(max) { Array.new(max) { 0 } }
C[0][0] = 1
for k in 1...max
  C[k][0] = C[k-1][0]
  for j in 1..k
    C[k][j] = C[k-1][j-1] + C[k-1][j]
  end
end
 
# 算術三角形の印字
for k in 0...max
  for j in 0..k
    printf " %3d", C[k][j]
  end
  print "\n\n"
end
 samp203.rb の実行結果
   1
 
   1   1
 
   1   2   1
 
   1   3   3   1
 
   1   4   6   4   1
 
   1   5  10  10   5   1
 
   1   6  15  20  15   6   1
 
   1   7  21  35  35  21   7   1
 
   1   8  28  56  70  56  28   8   1
 
   1   9  36  84 126 126  84  36   9   1

定理2.4 数学的帰納法の原理

 P(n)を自然数nに関する命題とする。このとき、
(1) P(1)は真である。
(2) P(n)が真ならばP(n+1)も真である。
ならば、すべての自然数nについてP(n)は真である。
Published by SANENSYA Co.,Ltd.