python的fractions.limit_denominator是如何实现的?

python的fractions.limit_denominator是如何实现的?,第1张

概述limit_denominator(max_denominator=1000000)Finds and returns the closest Fraction to self that has denominator at most max_denominator. This method is useful for finding rational approximations to a g
limit_denominator(max_denominator=1000000)Finds and returns the closest Fraction to self that has denominator at most max_denominator. This method is useful for finding rational approximations to a given floating-point number:>>>>>> from fractions import Fraction>>> Fraction('3.1415926535897932').limit_denominator(1000)Fraction(355,113)

它不应该像尝试/ 999,b / 998,c / 997 ..并找到最佳近似值.

解决方法 分数模块是用Python编写的,您只需查看源代码即可.它包含以下注释.
# Algorithm notes: For any real number x,define a *best upper    # approximation* to x to be a rational number p/q such that:    #    #   (1) p/q >= x,and    #   (2) if p/q > r/s >= x then s > q,for any rational r/s.    #    # define *best lower approximation* similarly.  Then it can be    # proved that a rational number is a best upper or lower    # approximation to x if,and only if,it is a convergent or    # semiconvergent of the (unique shortest) continued fraction    # associated to x.    #    # To find a best rational approximation with denominator <= M,# we find the best upper and lower approximations with    # denominator <= M and take whichever of these is closer to x.    # In the event of a tIE,the bound with smaller denominator is    # chosen.  If both denominators are equal (which can happen    # only when max_denominator == 1 and self is mIDway between    # two integers) the lower bound---i.e.,the floor of self,is    # taken.
总结

以上是内存溢出为你收集整理的python的fractions.limit_denominator是如何实现的?全部内容,希望文章能够帮你解决python的fractions.limit_denominator是如何实现的?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1205206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存