我正在尝试使用Python 3解决Project Euler问题,我遇到了这个问题。我想找到生成器生成的无限系列中的第n个元素,其中n = 10 15 这里是生成器:
def test_gen():
yield 1
yield 1
sum_till_now = 1
while True:
sum_till_now += sum_of_digits(sum_till_now)
yield sum_till_now
该系列是1,1,2,4,8,16,23,28 ......并且由发电机精细生产
我尝试了以下方法:
def cal():
for index, item in enumerate(a):
if index == 1000000000000000:
print(item)
return
但解决它需要太多时间。当n非常大时,有没有更快的方法来找到生成器的第n个元素?如果我的发电机效率低下,请告诉我。如果我的方法本身是错误的,我不想要问题的正确答案。谢谢你的帮助。