[英]How to implement generator for this function?
对于 function a(0) = 3, a(n) = 2*a(n-1) -1
,生成器应该是这样的:
def p():
b = 3
while True:
yield b
b = 2 * b -1
那么对于 function c(1) = 9, c(n) = 9*c(n-1) + 10**(n-1)- c(n-1)
,如何为这个 function 编写生成器?
对于该序列,您将 c(1) 的值为 9,使用 c(1) 计算 c(0) 的值,结果为 1,然后编写一个生成器,首先生成 c(0),然后 c( 1),然后对于每个下一个值,应用公式,得到下一个值并产生它,最后用下一个值 b1 替换前一个值 b0 以继续序列。
def generate_seq():
b0 = 1
b1 = 9
n=2
yield b0
yield b1
while True:
b1 = 9*b1 + 10**(n-1) - b1
yield b1
b0 = b1
n += 1
seq = generate_seq()
for i in range(10):
print(next(seq))
OUTPUT:
1
9
82
756
7048
66384
631072
6048576
58388608
567108864
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.