找規律是常見的數學題型。目的是讓學生發現圖形和數字的排列規律,從而理解并掌握找規律的方法,培養學生的觀察及推理能力。例如數列1,2,4,7,11,16,(X),(Y)……其中X和Y的值分別為多少呢?數列中兩數之間的差成一個等差數列關系,相差為:1,2,3,4,5,6……因此X的值為22,Y的值為29。
今天我們用Python解決一道奧數找規律問題:現有一組數列為1,2,5,13,34,(z)。請問z的值為多少呢?
這個數列的規律你發現了嗎?第N個數字等于它前一個數字加前面所有數字的和,例如5=2+2+1,13=5+5+2+1,34=13+13+5+2+1。那么如何用Python表示出這個數列呢?并求出需要的答案呢?
首先設變量a=1表示第一個數字。設置兩個循環變量i和num用來統計元素是否達到規定的個數,這種變量也稱為計數器,并且定義列表arr用于存放輸出的結果。
控制while循環設置計數器和產生元素的個數,在每次循環結束前加1,在循環過程中,數值不斷累加,計數器也加1,第i次循環加上一次的結果,計算出結果后將計算出的新元素添加到arr列表中,并且把元素i清零,這樣下次循環又是從第一個數字開始累加,依次循環,直到全部結束為止,每循環一次,打印顯示列表值,用于觀察(圖1)。

通過分析,我們可以用Python計算出有規律的數列,并且有序將每次的列表中的值輸出,那么現在增加難度:如果我們想求出該數列中第100個數的值是多少?前100個數值之和為多少呢?大家趕緊動手編寫代碼吧。