Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python递归序列相关代码_Python_Recursion - Fatal编程技术网

Python递归序列相关代码

Python递归序列相关代码,python,recursion,Python,Recursion,我正在尝试制作一个代码,根据以下公式生成数字 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

我正在尝试制作一个代码,根据以下公式生成数字

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

我希望如果我使用这个递归程序,我能找出数组中数字的具体顺序,
e、 g.如果我想找出数组中的第三个数字,应该是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

解决这个问题的一种方法(虽然不是大多数python实现…)


你的程序不是递归的。好吧,这确实是一个递归序列,但不是一个。维基百科说:斐波那契序列的特点是,前两个之后的每个数字都是前两个数字的总和。你可以在循环之前设置
n=0
,如果i==0:
,则删除
。他们明确表示他们在寻找递归解决方案,这是问题的迭代解,我发现如何得到指定项的编号,但我不知道如何得到这些编号的列表。在您的一些示例部分中,T(i)表示范围(1,10)内的i,如何在pyscripter上显示此内容?例如,您可以说范围(1,10)内的i的
:print(T(i))
# 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]))