【问题标题】:How to calculate U(n) in a recursive sequence?如何在递归序列中计算 U(n)?
【发布时间】:2021-03-19 18:00:19
【问题描述】:

我正在制作一个解决“序列”(荷兰语直译)的程序,但是我不知道如何使用递归“序列”来解决这个问题。

递归序列示例:U(n) = U(n-1) * 3 + 2 * n 所以,如果你想 f.e.知道 U(3),你首先需要知道 U(2),然后再知道 U(1)(这是给定的)。

如果用户想知道 f.e.,我不知道如何告诉 python。 U(7) 首先计算所有先前的。 我相信它可能是一个 for ... while 循环,但我不知道它是如何工作的。 这就是为什么“答案”变量上有问号的原因,我不知道python中的公式/ for...while循环是什么。

这是我的问题你需要知道的代码部分。

v = int(turtle.textinput("What is v?", "v= "))
square = int(turtle.textinput("Is 'n' squared? (if not --> 1)", "square= "))
multiple = int(turtle.textinput("What is 'n' multiplied with? ", "multiple= "))

if (v != 0 and square != 0 and multiple != 0):

    WhatToKnow = int(turtle.textinput("Which U(n)?", "U(n)= "))
    answer = ????
    turtle.write(f"U({WhatToKnow}) is {answer}", font=('Courier', 30, 'italic'), align='center')

elif ...

总结我的问题:如何在递归“序列”中计算 U(n)。

【问题讨论】:

  • 那么最低的n 应该是1?

标签: python math sequence turtle-graphics python-turtle


【解决方案1】:

这里是函数U(n) = U(n-1) * 3 + 2 * n的实现,带有for循环

val = U(1) # the starting value
for i in range(2, n+1): # loop from 2 to n
    val = val * 3 + 2 * i

print(val)

【讨论】:

    【解决方案2】:

    你写的几乎和你在描述中说的一样。

    def U(n):
        if n == 1:
            return whatever-the-value-for-1-is
        return U(n-1) * 3 + 2 * n
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-30
      • 2010-12-01
      • 2014-05-02
      • 2015-08-29
      • 2014-12-14
      相关资源
      最近更新 更多