python - 包含函数的序列的递归公式

标签 python recursion sequence

我要编写一个递归序列并打印它的 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)

最佳答案

您只需在每次迭代时用 4/3 覆盖 x:

def g(n):
    for i in range(1, n+1):
        x = 4/3
        x = h(x)
        print(x)

Simply move the statement above the loop:

def g(n):
    x = 4/3
    for i in range(1, n+1):
        x = h(x)
        print(x)

也许您还想在进入循环之前print(x)

不过,您可以在某些方面改进您的代码:首先我不会打印结果:打印有副作用。在程序中,您通常会尝试区分计算函数和具有副作用的函数。

接下来,在相同的上下文中,我将使用 generator不返回列表或其他内容。您可以简单地为任意数量的索引定义序列:

def g():
    x = 4/3
    while True:
        x = h(x)
        yield x

现在您可以向 g 询问前 10 个元素,或执行过滤器,...元素进一步延迟生成。

关于python - 包含函数的序列的递归公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41615446/

相关文章:

检测循环最终迭代的 Pythonic 方法

C++递归实例讲解

sql-server - TSQL 使用序列插入表

sql - 为什么 Oracle 的序列在尝试重新创建序列时会跳过它们的缓存值?

python - 无法将 Pandas pct_change 与日期一起使用

python - 通过类型注释对 Python 中的类型构造函数进行抽象

python - 在 Django 中创建用户 : User, Staff, SuperUser

c# - 递归树映射

python - 递归计算字符

scala - 在 Future.sequence 的成功上的片状