我已決定開始使用 for 回圈計算 An 和 Bn 的值,但是我似乎無法弄清楚我應該從哪里開始,或者甚至需要使用下標,我不能使用變數名,因為我希望值按順序排列的 n 在回圈中遞增 1。因為計算 An 和 Bn 的方法是使用 a0 和 b0 的值并減去 n 在 python 中實作這一點非常令人困惑,因為我希望 n 的值增加,任何人都可以提供幫助,給我提示和指導如何解決這個問題在網上很難學習。有一個方程的影像在此處輸入影像描述
a0 = int(input('enter a value:')
b0 = int(input('enter a value:')
N = int(input('enter a value:')
n = 0
for i in range(0,N):
n = n 1
An=a(n-1) 10
Bn =10*(b(n-1))
print(An,Bn) # For reference to see if it worked
uj5u.com熱心網友回復:
雖然另一個答案在技術上是正確的,但首先,如果您要運行回圈增量n,那么進行非記憶化遞回首先是非常低效的,因為它O(n^2)在時間和空間上都非常低效,其次可能會破壞您的堆疊如果n足夠高(它可能不會)。
相反,首先,使用一些非常基本的數學,您可以將 a_n 的公式轉換為不需要遞回定義的直接公式 - 它只是a_0 10n. 你可以對 b_n 做同樣的事情,它只是b_0 * 10 ** n.
其次,你的語法沒有任何意義。f(x)是 python 中的函式呼叫,因此b(n - 1)意味著您正在呼叫b引數上的函式n - 1。如果你想要索引值,你應該使用一個陣列并做b[n - 1]但在這種情況下 a) 你可以只對每個值使用閉式公式nb) 如果你跟蹤你的當前值a并b從輸入開始,您可以為每次回圈保留一個累加器,只需執行a = 10和b *= 10。
這就是我要怎么做。首先,你的括號不平衡。
a0 = int(input('enter a value:'))
b0 = int(input('enter a value:'))
N = int(input('enter a value:'))
那么,既然你的值n每次都在i增加,為什么每次都回圈增加n然后忽略i?只需運行一個回圈n。
a = a0
b = b0
for n in range(1, N 1):
a = 10
b *= 10
# do something with a and b, the current a_n and b_n values
uj5u.com熱心網友回復:
假設 a 和 b 是>0整數。
這就是你將如何做到這一點。
def nth_a(n):
if n <= 0:
return a0 # Base case
return nth_a(n - 1) 10
在線試試吧!
對于 b 做同樣的事情:
def nth_b(n):
if n < 2:
return b0 # Base case
return nth_b(n - 1) * 10
在線試試吧!
如果你已經注意到了, an并且bn是根據自己的定義來定義的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324834.html
上一篇:對角線主教用蟒蛇在棋盤上移動
