回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我对编程比较陌生,我正试图用这个公式生成一个数字列表。在</p>
<p>如果“i”是列表的索引,则公式为list[i]=list[i-2]+list[i-3]。如果从1,1,1开始,前几个数字应该是这样的。在</p>
<p>1,1,1,2,2,3,4,5,7,9,12,16,21,28,37,49,65,86等。要得到每个数字(在1,1,1之后),你可以向后跳一个数字,然后取前两个数字的和,例如49是21和28的和。在</p>
<p>寻找这些数字的过程类似于斐波那契,但这些数字是世界上不同的。在</p>
<p>我的代码如下:</p>
<pre><code>start = [1,1,1] #the list must start with three 1's
list1 = start #list1 starts with 'start'
newList = []
ammountOfNumbers = int(raw_input("Enter the ammount of numbers to be generated(n >= 3): "))# to dictate length of generated list
def generateList(newList, aList, ammountOfNumbers, *a):
while len(aList) <= ammountOfNumbers: #while length of list is less than or = size of list you want generated
for x in range((ammountOfNumbers-1)):
newList.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(x) #this puts value of x in index '0'
newList[x] = aList[len(aList)-1] + aList[len(aList)-2] # generate next number
aList += newList #add the next generated number to the list
x+=1
print
#print "Inside: ", aList #test
#print "Length inside: ",len(aList) #test
print
return aList
final = generateList(newList, list1, ammountOfNumbers) # equal to the value of list1
print"Final List: " , final
print
print"Length Outside: ", len(final) #wrong value
</code></pre>
<p>它现在显然不能正常工作。我希望能够生成一个大约500个这样的数字的列表。有人有什么建议吗?
谢谢!在</p>