糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 如何用计算机表达无理数 科学网—刘瑞祥:计算机表示无理数的一些设想 - 孙冰的博文...

如何用计算机表达无理数 科学网—刘瑞祥:计算机表示无理数的一些设想 - 孙冰的博文...

时间:2020-08-21 21:06:48

相关推荐

如何用计算机表达无理数 科学网—刘瑞祥:计算机表示无理数的一些设想 - 孙冰的博文...

原则上来说,计算机不能准确地表达无理数,这道理不用我说了吧,但是,通过适当的变通,计算机能不能表达一部分无理数呢?比如我们在中学里常见的无理数。

我认为是可能的,设想如下:

第一步,我们先要找到准确表达有理数的方法。我们必须克服用无限多存储单元表达循环小数的想法,而采取另外的方法。我们知道,所谓有理数,无非就是形如m/n的数,其中m、n都是整数,所以我们可以设计一种对象,包括分子和分母两个数值成员,其中分母为正整数,且默认为1,分子可以为任意整数,只要二者都不超过计算机的长整型数据类型就可以。在此基础上,我们可以重载各种运算符,比如+-×÷<>等等,使这些运算符对这种有理数数据类型起作用。

第二步,再建立一种根式对象,如果觉得麻烦不妨就只建立二次根式对象。假设是后者,不妨以第一步中的有理数对象为成员,而前者还需要再来一个正整数表示被开方的次数。然后我们也重载各种运算符,以实现其计算。

第三,需要实现嵌套功能吗?这可能会极大增加工作量,为简单起见,嵌套的层数不宜太多,最多不要超过两层。比如最复杂的是sqr(sqr(3)+sqr(5))。

还有个问题是关于圆周率pi和欧拉常数e的,其实这没多大关系,只要在中间的运算过程中把这俩符号一直保留着就可以。

这包括了中学阶段的数学,或者说大部分常见的数学,其实这已经很不错了。当然,我们有必要在适当的时候给出这些涉及无理数四则运算的近似值。这时要注意的是,中间过程中要一直用前面介绍的有理数和根式对象,到最后才转为有限小数,这样可以避免累积误差。

这样作的好处是很多的。举个中学会用到的例子:一是比如我们给学生设计自动解二次方程的系统,不能给学生的答案是x=2.41421,而应该是1+(根号2)这类的。

最后要说明的是,我不知道现在的解题软件中是怎么处理无理数的,权当是自己的一个想法吧。

转载本文请联系原作者获取授权,同时请注明本文来自孙冰科学网博客。

链接地址:/blog-3388899-1167098.html

上一篇:刘瑞祥:《流浪地球》观感

下一篇:刘瑞祥:有趣的“圆之吻”,有趣的尺规作图

如果觉得《如何用计算机表达无理数 科学网—刘瑞祥:计算机表示无理数的一些设想 - 孙冰的博文...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。