【问题标题】:Convert rounded decimal to (approximate) radical value?将四舍五入的小数转换为(近似)激进值?
【发布时间】:2010-02-19 06:19:41
【问题描述】:

我制作了很多随机数学程序来帮助我完成作业(合成除法是最有趣的),现在我想扭转一个激进的表达方式。

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

.2360679775

嗯,我想把这个数字转换成它的等价无理表达式,即

sqrt(5)-2

我意识到我可以暴力破解它......但这会失去乐趣,而且考虑到浮点的显着舍入误差,这几乎不是那么容易。

那你会怎么做呢?有没有简单的算法?

【问题讨论】:

  • 我认为您需要指定更多约束。通过“非理性表达式”,您是否总是期望平方根加整数?或者任何实值表达式​​都是可接受的答案?

标签: algorithm language-agnostic math


【解决方案1】:

Inverse Symbolic Calculator

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

【讨论】:

  • 非常酷。它根据需要解决了发起人的示例,除了示例在最后一个位置偏离了一点。 oldweb.cecm.sfu.ca/cgi-bin/isc/…
  • 这是如何实现的?
  • Earlz, oldweb.cecm.sfu.ca/projects/ISC/isc_info.html 稍微介绍一下。我不知道细节,但它会搜索从一张大表中获取的常量组合,听起来像。
  • 这一步的最后一步使用了 LLL 和相关算法,它们是非常强大的机器。它寻找已知“著名”常量的“短”整数线性组合。另见jstor.org/pss/2589743
  • 看起来这个链接现在已经失效了:'(
【解决方案2】:

好吧,您的示例实际上并没有将输入转换为 等效的非理性表达式,而是转换为 一个 等效的非理性表达式。正如逆符号计算器所示,在您的示例中,在十进制数的容差范围内有许多候选无理表达式,在您指定的任何十进制数的任何容差范围内,都会有同样多的无理数。这与数轴上无理数的密度有关。

所以回答你的问题:

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

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

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多