计算器是如何对结果如何进行自然显示(显示根号和分数)

发布于 2022-08-25 00:29:54 字数 240 浏览 32 评论 0

hi all!
有些计算器,例如卡西欧991,能将计算得到的答案进行自然显示,即能显示出根号和分数。
例如:
fx82deplus_grafik_display.jpg
我想知道它背后的原理和算法是怎么样的?
:)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

长安忆 2022-09-01 00:29:54

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

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

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

-柠檬树下少年和吉他 2022-09-01 00:29:54

那我还想问计算机、手机等屏幕为什么能显示那么丰富的内容呢。

计算器里面有计算模块,键入的内容扔进计算模块,然后把计算结果扔给显示驱动,显示驱动解析数据并且以适当的方式显示出来。只是背后的原理和算法我真不知道。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文