Python中的埃及分数方程

时间:2013-05-28 16:26:31

标签: python fractions

某种函数可以找到给定埃及分数的标准分数表示法。

例如:

input: 3, 15
output: 2/5

解释了那些不熟悉埃及分数的人:

(1/3 + 1/15) = 18/45 = 2/5

什么样的等式可以做到这一点?如果不是一个等式那么什么样的操作呢?

2 个答案:

答案 0 :(得分:2)

from fractions import Fraction

def egyptian(a, b):
    frac = (Fraction(1.0/a) + Fraction(1.0/b)).limit_denominator()
    return frac.numerator, frac.denominator

egyptian(3, 15)
>>> (2L, 5L)

答案 1 :(得分:1)

这看起来更像是数学问题,而不是Python问题,但我会给你一些提示:

  1. 将您的输入拆分为令牌(str.split
  2. 将您的令牌解析为整数(int(x)
  3. 应用添加分数的公式
  4. 转换为不可挽回的分数(除以gcd,你可以使用euclid的方法)
  5. 利润
  6. 用于添加分数:a/b + c/d = (ad+cb)/bdac为1,简化为(d+b)/db

    如果您对添加和减少分数感到懒惰,请查看this