python Tutorial 9| pyramidStar

阿嬤
Apr 24, 2021

--

前言

今天天氣好來寫個經典的程式題,不管你在哪都會寫到的程式:「星星金字塔」牽涉到一點點的一元一次的數學觀念。

程式

倒立式三角形

for i in range(12):
print("_"*i + "*"*(12-i)+"*"*(12-i))

首先這種程式絕對會使用到以下幾點

  1. 迴圈
  2. 字串組合

首先前提是底線的用意是為了取代空格,再來重複十二次先把底線印出來,會像這樣子:

以黃色線表示

再來,就是把星星加上去,由字串和迴圈的方式來表示,不然星星會直接移至下一排又會者直接給你顯示不成立,那麼我們會分成兩邊來寫,首先先做其中一邊⋯⋯效果會像這:

以黃色現表示

再來以次類推再把字串和迴圈的方式把程式寫下來,就大功告成啦。

以黃色線表示

黃色:底線設定

藍色:左半部分三角形設定

紅色:右半部分三角形設定

正三角形

for i in range(12):
print(("_"*(12-i) + "*"*(i)+ "*"*(i)))

它的原理跟倒三角形是一樣的,差別就在於重複的順序,但字串這元素依舊保留著。情況就跟顛倒三角形類似,這裡就不多講了。

數列原理

這裡你們可能會想,他的運作方式是怎麼樣的,他的加減又是如何計算出來的,首先,一半以上是亂湊出⋯不是啦我是說!首先我們再以倒三角形當做例子

我們可以看出他每一排星星的規律是2, 4, 6, 8, 10,這些全部都是偶數,以等差級數(偶數排列)的方式排列,發現彼此的差距都是2,代表第n個數可用2+2+2….+ 2,總共是n個2。

再來我們就可以把它簡化使用乘法,這樣就會是 n個2 =2*n

n = 紅色匡起來的地方

EX:迴圈倒數(三聲)應用

我們的目標要做出,12 ,11 ,10 ,9 ,8……1,可運用12-i

#迴圈第一個i為0,則12-i=12–0=12

另一種方法就是直接讓你迴圈幫你倒數

for i in range(12, 0, -1)

#從12開始,到1節數,每步走-1。

菱形

for i in range(12+1):
print(("_"*(12-i) + "*"*(2*i+1)))
for i in range(12+1):
print("_"*i + "*"*(12-i+1)+"*"*(12-i))

延續剛剛講的,這裡的話其實只要把正的三角形和倒的三角形合併再一起,排列方式也跟剛剛不相同,都是1, 3, 5, 7,…….之類的排列,他的規律是這樣:2n + 1話是奇數 。

接下來這程式被匡起來的部分透過 i(迴圈)會變動的數字就是紅匡的數字,概念是2*n + 1的應用。

結語

這次運用到了數列概念,數學好難 。

--

--

阿嬤
阿嬤

Written by 阿嬤

歡迎來到湯阿嬤的帝國,如果對體制外的學生的學習精華就來這裡吧,想了解一個體制外學生的日常嗎?想了解繪畫相關的知識嗎?而且,如果有對繪畫有任何的挫折或者阻礙這裡最適合你們!或許你會覺得這裡只是一個憨批在這裡發一些沒有意義的文,但其實,我才是國中生喔!!所以有對這裡有興趣的話,就來這裡吧!

No responses yet