为了账号安全,请及时绑定邮箱和手机立即绑定

我想知道计算器背后的原理和算法是怎么样的???

我想知道计算器背后的原理和算法是怎么样的???

拉风的咖菲猫 2023-04-26 19:15:19
hi all!有些计算器,例如卡西欧991,能将计算得到的答案进行自然显示,即能显示出根号和分数。例如:
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

这个其实可以简单地推一下。

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) 对于可以不损失精度的计算,利用加法、乘法的结合律、分配律、交换律等逐一对式子中的每个项进行处理即可。

对于根号内还嵌套根号的情况更复杂一些,不过思路是一致的,不展开细说了。


查看完整回答
反对 回复 2023-04-29
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信