Presentation is loading. Please wait.

Presentation is loading. Please wait.

香川大学工学部 富永浩之 tominaga@eng.kagawa-u.ac.jp 情報数学1 第3-1章 多進法の原理と変換算法 香川大学工学部 富永浩之 tominaga@eng.kagawa-u.ac.jp.

Similar presentations


Presentation on theme: "香川大学工学部 富永浩之 tominaga@eng.kagawa-u.ac.jp 情報数学1 第3-1章 多進法の原理と変換算法 香川大学工学部 富永浩之 tominaga@eng.kagawa-u.ac.jp."— Presentation transcript:

1 香川大学工学部 富永浩之 tominaga@eng.kagawa-u.ac.jp
情報数学1 第3-1章 多進法の原理と変換算法 香川大学工学部 富永浩之

2 概 要 ■ 自然数の記数法 ■ 多進法の原理 ■ 多進数への変換 ■ 多進数からの変換とホーナー法 ■ 多進法の例題
概 要 ■ 自然数の記数法 位取記数法、多進法と多進法 ■ 多進法の原理 切捨 切上 四捨五入 ガウス記号 ■ 多進数への変換 多進数への変換 ■ 多進数からの変換とホーナー法 多進数からの変換 ホーナー法 ■ 多進法の例題

3 第01節 [1] 自然数の記数法 ● 自然数の記数法 何らかの体系的な規則に従った記号列により、
数を表記する方法を総称して記数法[algorism]という。 ● 位取記数法 空位0で、数字の位置である桁[digit]を区別する。 有限個の数字で幾らでも大きな数を表記できる。 ● 多進法 rずつ束にすることを段階的に繰り返し、 0~r-1 のr種の数字を使って自然数を表す方法を、 rを基数[radix]とする多進法または単にr進法という。

4 第01節 [2] 数の歴史 ● 古代 ○ インド 0の発見、10進数、数字0~9の使用 ○ バビロニア 60進数、楔形文字の数字
○ インド の発見、10進数、数字0~9の使用 ○ バビロニア 60進数、楔形文字の数字 ○ ローマ 木の棒の刻み目、ローマ数字の起源 3999まで、計算に不向き ○ 中国 漢数字、位ごとに別の漢字、算盤の使用 ● 中世 ○ アラビア インドのアラビア数字の普及 アラビア商人は東西文化の懸け橋 ○ ヨーロッパ アラビア商人からイタリア商人へ フィボナッチ「算盤の書」 筆算の解説書

5 第02節 [1] 十進法系と二進法系 ● 十進法系 人間の手指の本数から ● 二進法系 電気信号のON/OF
● 十進法系 人間の手指の本数から ● 二進法系 電気信号のON/OF ● 三進法系 正零負の場合分けから(等号、天秤) 10 2 8 16 1 3 11 4 100 5 101 6 110 7 111 10 2 8 16 1000 9 1001 11 1010 12 A 1011 13 B 1100 14 C 1101 15 D 1110 E 1111 17 F 10 2 8 16 10000 20 17 10001 21 11 18 10010 22 12 19 10011 23 13 10100 24 14 10101 25 15 10110 26 10111 27 10 2 8 16 24 11000 30 18 25 11001 31 19 26 11010 32 1A 27 11011 33 1B 28 11100 34 1C 29 11101 35 1D 11110 36 1E 11111 37 1F

6 第03節 [1] 多進数への変換 ● 多進数の基底表現と整除表現
○ 基底表現 = 1201[3] = 1×33+2×32+0×31+1×30 多進数の直接的表現 ○ 整除表現 = 1201[3] = ((1×3+ 2)×3+0)×3+1 効率的な変換算法のための式 ● 基底表現と整除表現の計算回数 ○ 基底表現 乗算 p(p-1)/2回 加算 p-1回 ○ 整除表現 乗算 p-1回 加算 p-1回 ● 基底表現の原理 除法の定理の連続的な適用 46÷3=15‥1 15÷3=5‥0

7 第03節 [2] 多進数への変換 ● 多進数への変換の算法 [0] 10進数を整商の初期値として右上に書く。基数 を左端に書く。
[1] 整商が基数 以上の間、[2][3]の処理を繰り返す。 [2] 基数 による剰余を下段に書く。 [3] 基数 による整商を左に書く。 [4] 整商が基数 未満になったら、各剰余を 進法での各桁の数字に直す。 [5] 各桁での数字を左から順に並べると多進数を得る。 3 1 5 15 46 整商の列 2 ⇒ 1201[3] 剰余の列 16 2 47 764 15 12 F C ⇒ 2FC[3] 2 1 4 9 19 38 77 155 ⇒ [2] 2 1 4 9 19 38 77 155 ⇒ [2]

8 第04節 [1] 多進数からの変換 ● 多進数からの変換の算法 [0] 多進数の各桁の数字を並べる。
[1] A→10, B→11 のように、桁の数字を数値に直しておく。 [2] 最上位桁の数値 をそのまま初期値とし、最下段に書く。 [3] 左下のそれまでの途中結果に、基数 を乗算し、次の桁の数値の下に書く。 [4] 桁の数値と乗算した値を加算し、最下段に書く。 [5] 最下位桁の値を加算した結果が、求める10進数である。 1 2 各桁 3 15 51 153 基数と乗算 5 17 155 加算 2 A B 10 11 数字を数値に 12 24 408 34 419 1 2 4 8 18 38 76 154 9 19 77 155

9 第07節 [1] ホーナー法による整式の求値 ● 整式の基底表現と整除表現
○ 基底表現 f(X) = 2×X3-3×X2+0×X1+4×X0 ○ 整除表現 f(X) = ((2×X+ 3)×X+0)×X+4 f(X) = 3X5 -7X4 +6X3 -7X2 +0X -3 f(2)=((((3×2-7)×2)+6)×2-7)×2+0)×2-3 = +1 +3 -7 +6 -3 降冪順の係数 +2 -2 +8 +4 代入値の乗算 -1 +1 係数との加算

10 第07節 [2] 根号数や複素数への適用 f(X) = X5 +2X4 -3X3 -2X2+3X+2 f(-1+√2) = +7-3√2
+1 +2 -3 -2 +3 -1+√2 2-2√2 +1-√2 +2-√2 -4+2√2 +4-2√2 +1+√2 -2√2 -1+2√2 +7-3√2 f(X) = X5 +2X4 -2X3 -7X2+3X-8 f(-2-i) = -7-2i +1 +2 -2 -7 +3 -8 -2-i 6+3i -1+2i 2-4i +1-2i -i -3+2i 1-i i -7-2i

11 第06節 [1] 多進法の応用問題 ● 着目点 ・ 桁数による大きさの見積り
(p桁のr進数Aの10進数での値Tは、 rp≦T≦ rp-1 -1 の範囲にある) ・ 剰余の性質(加法・乗法・累乗との分配律) ・ 各桁の数字akは基数rを越えない自然数 0≦ ak <r ・ 基数rが未知数のとき、 m桁のr 進数は、 rに関する m-1次の整式とみることができる ・ ある数を r1 , r2進法で表した値をA1 , A2とすると、 r1<r2 ならば、 A1の桁数≧ A2の桁数

12 第06節 [2] 多進法の応用問題 【例題1】 365[10] は、何進法で表すと 555 になるか。
【例題1】 365[10] は、何進法で表すと 555 になるか。 題意は、 365[10]=555[r] と表わされる。 基底表現より、二次方程式 5r2+5r+5=365 が立つ。 整理すると、 (r-8)(r+9)=0 となる。これを解くと、 r=8,-9 となる。 ここで、多進数の数字として 5 が現れているから、基数は 6 以上である。 すなわち、 r≧6 であるから、 r=8 となる。よって、8進法である。 別解として、多進数の性質を用いて、基数の候補を絞っていく。 この方法の場合、最後に、十分条件として、実際に題意を満たすことを示す必要がある。 まず、数字に 5 が使われているから r≧6 である。 また、 555[r]=365[10]<555[10] より r≦9 となる。 さらに両辺を 5 で割って、 73[10]=111[r] を得る。 さらに両辺から 1 を引いて、 72[10]=110[r] を得る。 よって、 r は 72 の約数である。すなわち、 6, 8, 9 のいずれかである。 また、 100[r]=r2<110[r]=72, 200[r]=2r2>111[r]=73 より、 r=8 と求められる。 実際、 365[10]=555[8] が成立し、題意を満たす。

13 第06節 [3] 多進法の応用問題 【例題2】 80[10] を何進法で表すと各桁が同じ数字の2つ以上の並びになるか。
【例題2】 80[10] を何進法で表すと各桁が同じ数字の2つ以上の並びになるか。 4 3=64≦80<52=125 より、 80が r 進表記で 3 桁以上になるのは、 r≦4 のときである。 80[10]=1100[4]=2222[3]= [2] より、 r=3 は題意に適する。 80が r 進表記で数字 a が 2 桁並ぶ数となるとすると 80=a(r+1) である。 ただし 、 1≦a≦r-1 である。 したがって、 a と r+1 は 80 の約数であり、 a は 80-a の約数である。 すなわち、 r の候補は 79, 39, 19, 15, 9, 7 であり、 80[10]=11[79]=22[39]=44[19]=55[15]=88[9] なお、 r=7 のときは、 a=10>r-1 より不適。 以上をまとめると、 r=3, 9, 15, 19, 39, 79 となる。

14 第06節 [4] 多進法の応用問題 【例題3】 u 進法で表すと 47 となり、v 進法で表すと 74 になるような、
題意から、 47[u]=74[v] より 4u+7=7v+4 で、 一次不定方程式 4u-7v=-3 を立てる。 4u-7v=4(u-2v)+v w=u-2v とおいて 4w+v=-3 これから、具体解 w=0, v=-3 さらに、 u=w+2v=-6 これから、整数パラメタ t を用いて、 一般解 <u,v>=<-6+7t, -3+4t> が得られる。 ここで、多進法の桁の数字より 8≦v<u でなければならない。 よって、 8≦-3+4t<-6+7t より t≧3 を得る。 ここで、 t-3 を改めてパラメタ t と置き直して、 解 <u,v>=<15+7t, 9+4t> ; t≧0 を得る。

15 第06節 [5] 多進法の応用問題 【例題4】 1108 を r 進法で表すと 31a2 となるとき、a と r を求めよ。
題意より、 3000[r]=3r3<1108<4000[r]=4r3 が成立するから、 247<r3<369+1/3 となる。 73=343 より、 r=7 となる。 下図のホーナー法より (1108-2)÷7=158=31a[7] で a=158%7=4 別解として、多進数の性質から求める。 1108=31a2[r] の両辺から2を引くと、 1106=31a0[r] となる。 したがって、基数 r は、 1106=2×7×79 の約数である。 r 進数が 10 進数より大きくなっているから、 r≦9 であり、 r=7 と決まる。 より、 158=31a[7] となる。 158=7×22+4 より、 a=4 と求まる。 実際、 1108=3142[7] が成立し、題意を満たす。 7 3 22 158 1108 1 a 2


Download ppt "香川大学工学部 富永浩之 tominaga@eng.kagawa-u.ac.jp 情報数学1 第3-1章 多進法の原理と変換算法 香川大学工学部 富永浩之 tominaga@eng.kagawa-u.ac.jp."

Similar presentations


Ads by Google