And*_*nck 6 c# math
在保留尽可能多的精度的同时转换两个C#BigIntegers的商的最佳方法是什么?我目前的解决方案是:
Math.Exp(BigInteger.Log(dividend) - BigInteger.Log(divisor));
我猜这不是最理想的.
Ale*_* C. 3
首先阅读这篇文章。它包含您想做的事情。
然后,计算被除数/除数的连分数展开式,当达到想要的精度时停止。您不需要完整昂贵的除法运算(我想它是 O(n log^2 n) 或类似的东西),您只需要整数除法/余数。
尽管如此,只要 BigInteger.Log 返回双精度数, exp(log a / log b) 就会很好地工作,而且我认为它可能比连分式扩展更快。您需要两次转换为双倍(可能很快),并且在整个操作过程中保持准确性(即使对数除数和对数被除数彼此非常接近)。
归档时间:
14 年,11 月 前
查看次数:
613 次
最近记录: