如何在递归序列中计算 U(n)?

How to calculate U(n) in a recursive sequence?

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

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

不知道怎么说python,如果用户想知道f.e。 U(7) 先计算前面的所有。 我相信它可能与 for ... while 循环有关,但我不知道它是如何工作的。 这就是为什么在“answer”变量处有问号的原因,我不知道公式/for...while 循环在 python.

中是什么

这是您需要了解我的问题的代码部分。

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)。

你写的和你描述的几乎一模一样。

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

这里是函数 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)