私はプログラミングに比較的慣れていないので、この式を使用して数値のリストを生成しようとしています。
「i」がリストのインデックスの場合、式は list[i] = list[i-2] + list[i-3] になります。1,1,1 から始めた場合、最初のいくつかの数字は次のようになります。
1,1,1,2,2,3,4,5,7,9,12,16,21,28,37,49,65,86など。各数値を取得するには (1,1,1 の後)、1 つの数値をスキップして、前の 2 つの数値の合計を取得します (例: 49 は 21 と 28 の合計から)。
数字を見つけるプロセスはフィボナッチに似ていますが、これらの数字は世界が異なります。
私のコードは次のようになります。
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.append(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
現在、明らかに正しく動作していません。これらの数字の約 500 のリストを生成できることを望んでいます。誰か提案はありますか?ありがとう!