[英]Python recursive sequence related code
我正在尝试编写一个根据以下公式生成数字的代码...
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,15,31,63,127,....
我希望如果我使用此递归程序,我将能够找出数组中数字的特定顺序,例如,如果我想找出数组中的第三个数字,应该是7还是15(这取决于我将如何设置)
假设您的基本情况为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
解决此问题的一种方法(尽管不是大多数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]))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.