Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用斐波那契算法的埃及分数_Python_Algorithm_Fibonacci_Fractions - Fatal编程技术网

Python 使用斐波那契算法的埃及分数

Python 使用斐波那契算法的埃及分数,python,algorithm,fibonacci,fractions,Python,Algorithm,Fibonacci,Fractions,我有一个问题,我们试图用斐波那契算法找到一个埃及分数。对于分子,它总是必须等于一。然后,我们必须确定底部是否是一个实际数字 我们有2个用户输入,他们给我们的数字必须是正数 我已经找到了一种方法来确定有理数的底数是否是一个实际数。一个非常相似的例子:但是我不知道如何把它转换成一个埃及分数 在说明书中,它指出我们应该根据我们的分形列表找到最大的分数。例如:如果有理数为5/8,则8的因子为[1,2,4]。可以从中减去的最大分数是1/2 我甚至不知道从哪里开始转换。我只知道,如果用户输入的第二个数字是一

我有一个问题,我们试图用斐波那契算法找到一个埃及分数。对于分子,它总是必须等于一。然后,我们必须确定底部是否是一个实际数字

我们有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不是一个编码或教程服务。你被困在哪里?您已经非常接近于在您的描述中说明整个算法。