c++将小数化为二进制_无限循环小数和分数为什么能互相转化

A QUARK

扯闲篇儿

无限循环小数和分数为什么能互相转化

在我们的小学课本上有这样一句话:

分数能除尽等于有限循环小数,除不尽等于无限循环小数

不知道大家是否想过

为什么?

无限循环小数化为分数

先看一个著名的等式

0.99...=1

这是无限小数化为分数的一个特例,可以这样来证明:

设:

x=0.99...

∴10x=9.99...

∴9x=10x-x

∴9x=9

∴x=1

用这个方法,可将所有的无限循环小数化为分数

设:

x为无限循环小数,循环节为a,

即x=0.aa...

且a为n位数

∵x=0.aa...

∴10nx=a.aa...

∴(10n-1)x=a

∴x=a/(10n-1)

0.aa...=a/(10n-1)

例如

0.11...=1/9

0.1212...=12/99

0.123123...=123/999

分数化为无限循环小数

通过上面的式子,我们也可以将分母为(10n-1)的分数化成无限循环小数,那分母不是由一堆9组成的分数怎么办呢

当然是把它的分母变成(10n-1)了

我们知道一个分数的分子分母同时乘以相同的数(0除外),分数大小不变。

那么我们可以将分子分母同时乘以一个数,使其分母变为(10n-1)的形式

因为(10n-1)的个位为9,而5的倍数个位为0或5,2的倍数个位一定是偶数,所以当分母为2或5的倍数时,只要将分子单独乘上几个10,使其分母不含因数2和5,将其化为小数后再把乘上的10除回来就可以了。

寻找n的值

当分数的分母不含因数2和5时,为什么一定有一个(10n-1)为分母的倍数呢

事实上,对于任意不含因数2和5自然数c,当n为不大于c且与c互素(即只有1一个公因数,也称互质)的数的个数时,(10n-1)一定是c的倍数

例如

1,2,3,4,5,6都小于7,且与7互素

则(106-1)为7的倍数(可以自己算算试试)

据此,我们可以得到:

对于任意分数b/c(c不含因数2和5),设n为不大于a且与a互素的数的个数,m=b(10n-1)/c,则有

b/c=0.mm...

例如

5/7=0.714285 714285...

7/15=0.4666...

当b/c为有限小数时,用此公式算出来的也是无限小数的形式,但如上面所说,他们的大小都是一样的

例如

1/1=0.99...

1/2=0.499..

2/1=1.99...

至于为什么当n为不大于c且与c互素的数的个数时,(10n-1)一定是c的倍数,我们以后有空再说

未完待续

▲▲▲

关注微信公众号:夸克欧氏几何

翻译《几何原本》的

9c341e84ecfe7a0cbc14d0e0474a74e5.png
4653ca13e4487fd27840f143dfaa5693.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值