检查算法中数值精度的最佳做法是什么? 是否有任何建议的技术来解决问题“我们如何知道我们计算的结果是否正确”? 如果可能的话:C ++中有一些数值精度增强的例子吗?
感谢您的任何建议!
答案 0 :(得分:2)
Math::BigFloat / Math::BigInt会有所帮助。我必须说有很多图书馆都这样做,我不知道哪个是最好的。也许其他人对你有一个很好的答案。
一般情况下,你可以写两次:一次是无限精度,一次没有,然后验证两者。这就是我用我写的科学软件做的事情。然后我会写第三个做更高速的速度增强功能。这样我可以验证这三个。请注意,我知道三人并不完全相同,但他们应该有足够的重要证据。
实际上知道难以准确获取多少错误 - 浮点数的记录顺序可能会导致很大的差异。它确实是特定于问题但如果您知道某些数字的相对大小,您可以更改操作的顺序以获得准确性(例如,按排序顺序乘以列表)。有两个值得研究的地方是,
答案 1 :(得分:0)