我要写一个递归序列并打印它的n个第一个值。
有以下功能:
def f(x):
return x**2 - 4
def h(x):
return (x-(((3-x)*f(x))/(f(3)-f(x))))
现在我要对递归序列进行编码,并打印它的n个第一个值:
xn+1=h(xn)
对于x1=4/3
当然,我的代码不起作用(我收到相同的值n次,但我希望得到类似的值):
def g(n):
for i in range(1, n+1):
x = 4/3
x = h(x)
print(x)
Tags:
只需在每次迭代中用
4/3
覆盖x
:只需将语句移到循环上方:
也许您还想在进入循环之前
print(x)
。你知道吗不过,您可以在以下几点上改进代码:首先,我不会
print
结果:打印有副作用。在一个程序中,你通常试图区分计算函数和有副作用的函数。你知道吗接下来,在相同的上下文中,我将使用generatoran,而不是返回列表或其他内容。您可以简单地为任意数量的索引定义序列:
现在您可以询问
g
例如前10个元素,或者执行过滤器。。。此外,元素的生成也很慢。你知道吗相关问题 更多 >
编程相关推荐