佚名通过本文主要向大家介绍了计算器结果显示分数,计算器计算结果是分数,科学计算器结果是分数,计算器结果是分数,计算器结果为分数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:计算器是如何对结果如何进行自然显示(显示根号和分数)
描述:
解决方案1:
描述:
hi all!
有些计算器,例如卡西欧991,能将计算得到的答案进行自然显示,即能显示出根号和分数。
例如:
我想知道它背后的原理和算法是怎么样的?
:)
解决方案1:
这个其实可以简单地推一下。
a) 一个有理数
可以用2两个整数P、Q表示为 P / Q ,可以表示为:
struct rational { int P, Q; };
b) 一个只带一个根号的无理数
(这里只说根号的,不包括圆周率、sin/cos那种,虽然也可以用类似的思路来实现)可以用2个有理数A, B表示为 sqrt(A) * B
,可以很容易地用类似如下的数据结构表示:
struct irrational_single { struct rational A, B; };
c) 题中的式子只是由n个数据项组成,每个数据项都与b)中的无理数形式一致,并且各自的M/N值不同(相同的则可以合并P/Q),可以表示为:
struct irrational { int n; struct irrational_single *items; };
d) 对于可以不损失精度的计算,利用加法、乘法的结合律、分配律、交换律等逐一对式子中的每个项进行处理即可。
对于根号内还嵌套根号的情况更复杂一些,不过思路是一致的,不展开细说了。