python 方程式编程帮助
python programming help for equation
我是 python 的新手,正在尝试学习一些代码。这是我第一次使用 python 进行编程尝试。我有一个序列S和一个序列T(这也是一对递推关系方程的关系)其中
Sn=2S(n-1)+S(n-2)+4T(n-1)
且T=S(n-1)+T(n-1)。
S0=1,S1=2,T0=0 且 T1=1。
我如何编写一个函数 returns S 和 T 序列的第 n 个值,其中该函数将 n 作为参数并且 returns Sn,Tn 作为调用该函数的结果的元组?
递归函数如下:
def T(n):
if n == 0:
return 0
if n == 1:
return 1
return S(n - 1) + T(n - 1)
def S(n):
if n == 0:
return 1
if n == 1:
return 2
return 2 * S(n - 1) + S(n - 2) + 4 * T(n - 1)
def tuple_func(n):
return(S(n), T(n))
介于 n == 20
和 n == 30
之间的某个地方,这变得非常慢,具体取决于您的荒谬阈值。
"For fun" 我已将递归函数转换为迭代版本。在我的电脑上,它最多可以在大约一秒钟内完成 n == 50,000
。
def tuple_func(n):
S = [1, 2]
T = [0, 1]
if n < 0:
return(None, None)
if 0 >= n < 2:
return(S[n], T[n])
for n in range(2, n + 1):
S.append(2 * S[n - 1] + S[n - 2] + 4 * T[n - 1])
T.append(S[n - 1] + T[n - 1])
return(S[n], T[n])
我是 python 的新手,正在尝试学习一些代码。这是我第一次使用 python 进行编程尝试。我有一个序列S和一个序列T(这也是一对递推关系方程的关系)其中
Sn=2S(n-1)+S(n-2)+4T(n-1)
且T=S(n-1)+T(n-1)。
S0=1,S1=2,T0=0 且 T1=1。
我如何编写一个函数 returns S 和 T 序列的第 n 个值,其中该函数将 n 作为参数并且 returns Sn,Tn 作为调用该函数的结果的元组?
递归函数如下:
def T(n):
if n == 0:
return 0
if n == 1:
return 1
return S(n - 1) + T(n - 1)
def S(n):
if n == 0:
return 1
if n == 1:
return 2
return 2 * S(n - 1) + S(n - 2) + 4 * T(n - 1)
def tuple_func(n):
return(S(n), T(n))
介于 n == 20
和 n == 30
之间的某个地方,这变得非常慢,具体取决于您的荒谬阈值。
"For fun" 我已将递归函数转换为迭代版本。在我的电脑上,它最多可以在大约一秒钟内完成 n == 50,000
。
def tuple_func(n):
S = [1, 2]
T = [0, 1]
if n < 0:
return(None, None)
if 0 >= n < 2:
return(S[n], T[n])
for n in range(2, n + 1):
S.append(2 * S[n - 1] + S[n - 2] + 4 * T[n - 1])
T.append(S[n - 1] + T[n - 1])
return(S[n], T[n])