1

某种函数可以找到给定埃及分数的标准分数符号版本。

例如:

input: 3, 15
output: 2/5

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

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

什么样的方程式可以做到这一点?如果不是一个方程,那么什么操作集?

4

2 回答 2

3
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)
于 2013-05-28T19:34:50.907 回答
2

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

  1. 将您的输入拆分为标记 ( str.split)
  2. 将您的标记解析为整数 ( int(x))
  3. 应用添加分数的公式
  4. 转换为不可约分数(除以gcd,可以使用euclid的方法)
  5. 利润

加分数:a/b + c/d = (ad+cb)/bd, as aand care 1, 简化为(d+b)/db

如果您对添加和减少分数感到懒惰,或者看看这个

于 2013-05-28T16:33:20.127 回答