将舍入小数转换为(近似)根本值?

时间:2010-02-19 06:19:42

标签: algorithm language-agnostic math

我已经做了很多随机数学课程来帮助我完成我的作业(合成部门是最有趣的),现在我想要扭转一个激进的表达。

例如,在我方便的TI计算器中,我得到了

.2360679775

好吧,我想将这个数字转换成等效的无理表达式,即

sqrt(5)-2

我意识到我可以强行扼杀它......但是当你考虑浮点的显着舍入误差时,它会带来乐趣,并且几乎不那么容易。

那你怎么做的?有一个简单的算法吗?

2 个答案:

答案 0 :(得分:5)

Inverse Symbolic Calculator

(我最初链接到似乎已经消失的this。)

答案 1 :(得分:1)

嗯,您的示例实际上并未将输入转换为 等效的无理表达式,而是转换为 等效的无理表达式。正如反向符号计算器所示,在您的示例中,在十进制数的容差范围内有许多候选无理表达式,并且在您指定的任何十进制数的任何容差范围内都会存在尽可能多的非理性表达式。这与数字线上的非理性密度有关。

所以回答你的问题:

  • 我会限制自己使用一些术语,例如sqrt(2),sqrt(3),sqrt(小素数),e,pi和整数,加上小分母的有理数和用小数点近似的小数基于那些加上四个基本算术运算符的几个术语;
  • 这个算法是微不足道的吗?你决定。但总的来说,我认为不可能找到一种算法来确定任何小数部分的规范表示,作为一系列无理的术语和整数,原因很简单,就是没有这样的规范表示。

然而,我的真实和非理性的数学非常生疏,我期待证明我错了,反例。

相关问题