Python 使用斐波那契算法的埃及分数
我有一个问题,我们试图用斐波那契算法找到一个埃及分数。对于分子,它总是必须等于一。然后,我们必须确定底部是否是一个实际数字 我们有2个用户输入,他们给我们的数字必须是正数 我已经找到了一种方法来确定有理数的底数是否是一个实际数。一个非常相似的例子:但是我不知道如何把它转换成一个埃及分数 在说明书中,它指出我们应该根据我们的分形列表找到最大的分数。例如:如果有理数为5/8,则8的因子为[1,2,4]。可以从中减去的最大分数是1/2 我甚至不知道从哪里开始转换。我只知道,如果用户输入的第二个数字是一个实际数字,我必须计算出等效的埃及分数 输出应与此类似:Python 使用斐波那契算法的埃及分数,python,algorithm,fibonacci,fractions,Python,Algorithm,Fibonacci,Fractions,我有一个问题,我们试图用斐波那契算法找到一个埃及分数。对于分子,它总是必须等于一。然后,我们必须确定底部是否是一个实际数字 我们有2个用户输入,他们给我们的数字必须是正数 我已经找到了一种方法来确定有理数的底数是否是一个实际数。一个非常相似的例子:但是我不知道如何把它转换成一个埃及分数 在说明书中,它指出我们应该根据我们的分形列表找到最大的分数。例如:如果有理数为5/8,则8的因子为[1,2,4]。可以从中减去的最大分数是1/2 我甚至不知道从哪里开始转换。我只知道,如果用户输入的第二个数字是一
Num1 : 7
Num 2: 8
Denomiator factors: [1,2,4,8]
Num 2 is a practical number.
Fraction can be represented by:
1/2 + 1/4 + 1/8
如有任何初始帮助,将不胜感激。我真的理解这个概念和它的要求-我只是停留在哪里开始。示例代码将非常有帮助。好的。。。我将使用示例7/8来回应您刚才告诉我们的内容 从分数的两部分开始:numer=7,denom=8 确定denom是一个实际数;这包括返回其因子[1,2,4,8]。 对因素进行排序;如果保证分数始终小于1,则可以放弃1因子。 迭代列表,一次一个因素,构建埃及分数的术语。 伪代码:
for factor in factor_list:
weight = denom/factor
while weight < numer:
# Add the fraction 1/factor to the solution;
# reduce numer by weight (subtracting that fraction)
# When you exit these loops,
# numer should be 0, and
# you should have accumulated all of
# the "1/factor" fractions in your solution.
欢迎来到StackOverflow。请阅读并遵循帮助文档中的发布指南。在这里申请。StackOverflow不是一个编码或教程服务。你被困在哪里?您已经非常接近于在您的描述中说明整个算法。