《计算机常用算法与程序设计案例教程》习题解答:分数分解算法详解
版权申诉
168 浏览量
更新于2024-02-23
收藏 1.97MB PDF 举报
《计算机常用算法与程序设计案例教程》中的习题11-1要求实现一个分数分解算法,将真分数a/b分解为若干个分母为整数,分子为1的埃及分数之和。算法的具体步骤如下:
1. 首先找到并输出小于a/b的最大埃及分数1/c。
2. 如果c大于900000000,则退出算法。
3. 如果c小于等于900000000,将差值a/b-1/c整理为一个新的分数a/b。若a/b已经是埃及分数,则输出结果并结束。
4. 如果a/b不是埃及分数,则继续执行第1、2、3步骤。
在算法描述中,我们设定d = int(b),这里int(x)表示取正数x的整数部分。注意到d < b < d+1,然后利用等式aaa=1+a(d+1)-bbd+1b(d+1)来迭代计算得到新的分数。
具体算法描述如下:
```
Algorithm Fraction_Decomposition(a, b)
d = int(b)
while True:
c = int(b / a) + 1
if c > 900000000:
return
else:
print(1/c)
a = a*c - b
b = b*c
if a == 1:
return
```
这段算法的核心是通过反复迭代计算,将原始分数a/b逐步转化为多个埃及分数的和。在每次迭代中,根据当前的a和b的值计算出一个新的分母c,并将其添加到结果中。当a等于1时,输出最终结果。算法的时间复杂度取决于a和b的大小,但在一般情况下可以接受。
这个算法的实现不仅帮助我们更深入理解埃及分数的概念,还能够提高我们对整数分解等基本数学概念的理解。通过学习这个算法,我们可以更好地理解和应用数学知识于实际问题中。
185 浏览量
498 浏览量
288 浏览量
2021-09-19 上传
131 浏览量
228 浏览量
hhappy0123456789
- 粉丝: 77
- 资源: 5万+
最新资源
- 珠算练习题.珠算练习题珠算练习题
- BWTC-开源
- side-projects-in-flask
- 常用的css3 button彩色按钮样式代码
- 调制解调GUI.rar_GUI 2FSK_ZOM_ask_qpsk_fsk_qam_ask调制解调
- DynaWeb:DynaWeb是一个Dynamo软件包,它提供对一般与interwebz(特别是与REST API)交互的支持。
- sparse-unet:Keras中稀疏的U-Net实施
- hic-bench:一组用于Hi-C和ChIP-Seq分析的管道
- 行业文档-设计装置-一种折叠式太阳能电池包装盒.zip
- WeatherDashboard
- lugref.zip_IUTR_MATLAB仿真_luGre_lugref_摩擦模型
- 赣极方棋动物、赣极方棋动物代码
- PayOrDie:using使用Sketch的支付应用程序原型
- 行业文档-设计装置-一种拉式找平铁锨.zip
- Brain Derived Vision on IBM CELL-开源
- 初级认证实践.rar