第2章 中世アジア数学史
著者:梅谷 武
第2章 中世アジア数学史の数式・表・プログラム一覧。
作成:2013-09-04
更新:2013-09-04
更新:2013-09-04
ヴリッタ | 番号 | ヴリッタ | 番号 |
---|---|---|---|
0000 | 0 | 1000 | 8 |
0001 | 1 | 1001 | 9 |
0010 | 2 | 1010 | 10 |
0011 | 3 | 1011 | 11 |
0100 | 4 | 1100 | 12 |
0101 | 5 | 1101 | 13 |
0110 | 6 | 1110 | 14 |
0111 | 7 | 1111 | 15 |
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
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) |
|
# 算術三角形の作成 # 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)も真である。 |
Published by SANENSYA Co.,Ltd.