据我所知,这使得算法更快,占用的存储空间更少,而且这些功能一直是软件在前几十年的硬件上运行的关键功能,但这仍然是一个重要特性吗?如果使用精确的有理算法进行计算,则根本不存在舍入误差,这将简化许多算法,因为您不再需要担心灾难性取消或类似的事情。
答案 0 :(得分:3)
浮点比任意精度和符号包快得多,对于要求非整数计算相关的科学/工程应用,12-16个有效数字通常很多。
答案 1 :(得分:2)
编程语言ABC
尽可能使用有理数(x / y,其中x和y为整数)。
有时计算会变得非常慢,因为分子和分母已经非常大。
事实证明,如果你不对分子和分母施加某种限制,这是一个坏主意。
答案 2 :(得分:1)
许多数值算法仍需要固定精度的数字才能表现得足够好。这种计算可以在硬件中实现,因为数字完全适合寄存器,而任意精度计算必须在软件中实现,并且两者之间存在巨大的性能差异。问任何一个以数字为生的人,他们是否会对运行X量较慢的事情感到满意,他们可能会说“不,这完全不可行。”
另外,我认为你会发现任意精度是不切实际甚至是不可能的。例如,小数位数可以足够快地增长,你可以放弃一些。然后你又回到原点:数字问题!
最后,有时超出一定精度的数字无论如何都无关紧要。例如,通常有效数字的数字应该反映实验不确定性的水平。
那么,你有哪些算法?
答案 3 :(得分:1)
在绝大多数计算中,精确计算答案所需的数字大小将快速增长到计算值得付出的点,并且在许多计算中它将超出精确计算甚至可能的点。可能。考虑到即使在十几次迭代中运行类似于简单的三阶IIR滤波器之类的东西,也需要在分母中具有数千位的分数;运行算法进行几千次迭代(几乎不是一次异常的操作)可能需要分母中的位数多于宇宙中存在的原子。
答案 4 :(得分:0)
传统的整数运算在硬件中实现起来更容易,更便宜(在模具上占用的空间更少,因此可以在那里安装更多的单元)。特别是当你进入DSP领域时,这会产生很大的不同。