小数 0. 75 を分数に変換
0. ሶ14285 ሶ7 を分数に変換
•
数𝑎
を0. ሶ14285 ሶ7
と置く𝑎 = 0. ሶ14285 ሶ7 = 0.142857142857142 ⋯
• 10
6掛けて小数点をずらしたものから引くことで循環節 を取り除くことができる1000000𝑎 = 142857.142857142857142 ⋯ 𝑎 = 0.142857142857142 ⋯
•
両辺引く999999𝑎 = 142857
•
両辺999999
で割って𝑎
を求める𝑎 = 142857
999999 = 3
3∙ 11 ∙ 13 ∙ 17
3
3∙ 7 ∙ 11 ∙ 13 ∙ 17 = 1 7
素因数分解して約分した
分数が有限小数になる条件
•
既約分数(それ以上約分できない分数)の分母が素 因数分解で2
𝑖5
𝑗, (𝑖, 𝑗 = 0,1,2, ⋯ )
の形になれば,その 分数は有限小数になる例)
7
250 = 7
2
15
3= 7 ∙ 2
22
35
3= 7 ∙ 2
22 ∙ 5
3= 28
10
3= 0.028
•
既約分数の分母に2,5
以外の素因数が1
つでも入って いると有限小数にはならない例)
7
150 = 7
2
13
15
2= 7 ∙ 2
12
23
15
2= 14
3 ∙ 2 ∙ 5
2= 14 3 ∙ 10
2足りない2や5を 補って分母を10𝑛 の形にできる
3が邪魔で2や5を 補っても分母を10𝑛 の形にできない
10進法の分母にしたい10𝑛の素因数が2と5のみで構成されてることがポイントで、分子の値は何でも話は同じ
10 進法の小数のまとめ
• 10 を素因数分解すると 10 = 2 × 5
• 既約分数 𝑎/𝑏 について
◦ 𝑏
の素因数が2,5
のみの時𝑏 = 2 𝑖 5 𝑗
,(𝑖, 𝑗
は𝑖 ≥ 0, 𝑗 ≥ 0
の整数で𝑖 + 𝑗 ≥ 1
) 分数𝑎/𝑏
は有限小数◦ 𝑏
の素因数に2,5
以外の素因数も含まれるとき𝑏 = 2 𝑖 5 𝑗 𝐵
, (𝑖, 𝑗
は𝑖 ≥ 0, 𝑗 ≥ 0
の整数)(
𝐵
は2,5
以外の素数の積)分数
𝑎/𝑏
は循環小数分母
𝑏
の素因数に2,5
以外の素数が1
つでも混じってると循環小数になる無限小数の注意点
丸め誤差について
•
無限小数を扱うときはどうしても有限の桁で四捨五入 するなどの操作で近似を行う必要がある。そのためど うしても打切り誤差(丸め誤差)というものがある。0.333333333 ⋯ ⟹ 0.33333
•
電卓での計算には丸め誤差があり、例えば3 × 1
3 = 1
3 × 3 = 1
のような順番を変えた計算が成り立たないことがある 次の
2
通りの電卓のボタン操作を比較してみよう3 × 1 ÷ 3 = 1 ÷ 3 × 3 =
表示精度よりも高い内部精度を持つ電卓だと,どちらも同じ結果に表示される.
高級な電卓の中には分数で値を保持してるものもある.
どの桁で打ち切るかで 精度が変わる
2 進法の注意
•
電卓やコンピュータでは内部の数値表現に2
進法を用い ている(別スライド「小数に関する更なる補足」参照)。そ のため10
進法での画面の表示以外にも誤差の原因が ある。•
例えば10
進法で0.1
を入力すると、コンピュータの内部で は2
進法に変換した次の循環小数0.0 ሶ001 ሶ1 = 0.00011001100110011 ⋯
を途中で打ち切って内部メモリに数値を保持してる。
•
精度が悪い計算方法だと◦ 10
進法の0.1
を2
進法に変換(丸め誤差が生じる)◦ 10
回足す(丸め誤差が10
回分たまる)◦ 10
進法に戻して表示丸め誤差がたまり
1
になるべき答えが1.0000000149
・・・になってし まうことがある。 倍精度実数のdoubleではなく
単精度実数のfloatでプログラミング
電卓やコンピュータの注意
• 割り算や小数を扱ったら必ず丸め誤差があると 考え、下の方の桁の数値は信用しないこと。
• 割り算や小数の計算を上手く避けるか、割り算 や小数を使う計算順序をなるべく後にすること。
• 問題の答えを「どれくらいの精度で答えるか」と いう「有効桁」を設定すること。
途中の計算では有効桁より 2,3 桁以上多く打込
み計算する。答えを出す際には有効桁以下を
四捨五入した数値のみを採用する。
小数まとめ
•
小数は小学校の早い段階で叩き込まれるので簡単そうに 思えるが、歴史的には比較的新しい概念。無限が絡んでく ると難しくなる。•
分数では正確に扱えた値でも、小数で表現すると、無限循 環小数になってしまう場合がある。どの分母の分数が無限 循環小数になるかは何進法を使うかで変わる。• 10
進小数の良い所は数字の大きさが感覚的にすぐに分か る所(小学校の早い段階で習って慣れている為)•
数値の精度にさえ気を付ければ小数は非常に有用•
正確な扱いが難しい無理数(分数では表せない数)に関し ても小数を使えば設定内の精度で扱うことができる。(無理数に関しては や𝜋などを後期にやる予定)
•
小数の発明が今の科学の基礎を築いたと考えられ、人類の文明のレベルを大きく引き上げたと思われる。
練習問題
79
37 を小数に変換
79
37 = 2 × 37 + 5
37 = 2 + 5 37
5
37 = 50
37 × 1
10 = 1 × 37 + 13
37 × 1
10 = 1
10 + 13
37 × 1 10 13
37 = 130
37 × 1
10 = 3 × 37 + 19
37 × 1
10 = 3
10 + 19
37 × 1 10 19
37 = 190
37 × 1
10 = 5 × 37 + 5
37 × 1
10 = 5
10 + 5
37 × 1 10 2.13513 ⋯
37 79
− 74 50
− 37 130
− 111 190
− 185 50
− 37 130
− 111 19
同じパターンの繰り返し
同じ パターン の繰り返し
同じ パターン の繰り返し
前ページの式を下から順に見ていく 19
37 = 5
10 + 5
37 × 1 10 13
37 = 3
10 + 19
37 × 1
10 = 3
10 + 5
10 + 5
37 × 1
10 × 1
10 = 3
10 + 5
102 + 5
37 × 1 102 5
37 = 1
10 + 13
37 × 1
10 = 1
10 + 3
10 + 5
102 + 5
37 × 1
102 × 1
10 = 1
10 + 3
102 + 5
103 + 5
37 × 1 103
= 0.135 + 5
37 × 1 103
5
37は循環節
3
の循環小数5
37 = 0.135 + 5
37 × 1 10
3= 0.135 + 0.135 + 5
37 × 1
10
3× 1 10
3= 0.135 + 0.000135 + 5
37 × 1 10
6= 0.135135 + 0.135 + 5
37 × 1
10
3× 1 10
6= 0.135135135 + 5
37 × 1 10
979
37 = 2 + 5 37
= 2 + 0. ሶ13 ሶ5
= 2. ሶ13 ሶ5
5/37自身を次々と 代入していく
ドキュメント内
割り算と小数
(ページ 40-51)