python如何';是否实现s分数的分母限制?
这不应该像尝试a/999、b/998、c/997。。并找到最佳近似值。分数模块是用Python编写的,您只需查看源代码即可。它包含以下评论python如何';是否实现s分数的分母限制?,python,fractions,Python,Fractions,这不应该像尝试a/999、b/998、c/997。。并找到最佳近似值。分数模块是用Python编写的,您只需查看源代码即可。它包含以下评论 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 a
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)
#算法说明:对于任何实数x,定义一个*最佳上限
#将x近似为有理数p/q,从而:
#
#(1)p/q>=x,以及
#(2)如果p/q>r/s>=x,那么对于任何有理r/s,s>q。
#
#类似地定义*最佳下近似值*。那就可以了
#证明了有理数是最佳上下数
#对x的逼近当且仅当它是收敛的或
#(唯一最短)连分式的半收敛性
#关联到x。
#
#寻找具有分母的最佳有理逼近类似于二进制搜索,在“最佳下”和“最佳上”近似之间压缩x
# 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.