from fractions import Fraction
def f(start, end):
fractions = []
for i in range(start, end + 1):
fractions.append(Fraction(1, i))
unique_fractions = []
for i in range(2 ** len(fractions)):
subset = [fractions[j] for j in range(len(fractions)) if (i & (1 << j))]
if sum(subset) == 1 and len(subset) > len(unique_fractions):
unique_fractions = subset
return " + ".join(str(f) for f in unique_fractions)
print(f(1, 10))
最后一行是可以使用的分母范围。
问题是它需要很长时间才能完成,甚至
print(f(1, 25))
大约需要 5 分钟,我希望能够达到数百个,但不可能像这样。
我研究了记忆化和动态规划,但两者看起来都非常困难,所以我被困住了。