我正在尝试根据以下公式创建一个生成数字的代码...
T [n] = 1 + T [n-1] * 2
numList = []
numLisst.append (1)
#Begins with a term 1.
def numSequence ():
while True:
for i in range (1,12):
#Temporally set numbers from 1 to 12
numList[i] == 1+(numList[i-1]*2)
break
print (numList)
numSequence()
首先,这会带来一个错误,列表索引超出索引
我希望看到这段代码产生斐波那契序列,例如,
1,3,7,15,31,63,127,......
我希望如果我使用这个递归程序,我将能够找出数组中数字的特定顺序, 例如如果我想在数组中找到第3个数字,那么应该是7还是15(这取决于我将如何设置它)
答案 0 :(得分:3)
假设您的基本案例为T(1) = 1
def T(n):
if n == 1:
return 1
else:
return 1 + T(n-1)*2
一些例子
>>> [T(i) for i in range(1,10)]
[1, 3, 7, 15, 31, 63, 127, 255, 511]
>>> T(15)
32767
答案 1 :(得分:0)
解决这个问题的一种方法(不是大多数Pythonic实现,但是......)
# T[n] = 1 + T[n-1] * 2
def nextFibonachi(n,i):
n = 1 + n*2
print(str(i)+": "+str(n))
return n,i
fibArr = []
for i in range(0,100):
if i == 0:
n = 0
n,i = nextFibonachi(n, i)
fibArr.append(n)
print(fibArr)
m = 10
print("\n"+str(m)+": "+str(fibArr[m]))