數學解題:火車載客問題
這篇要來寫程式解答創意運動會數學領域的「快樂高雄號」問題,如果用人腦算會應用到等差數列的公式,那電腦呢?下面就來看看我的作法。
Last updated
這篇要來寫程式解答創意運動會數學領域的「快樂高雄號」問題,如果用人腦算會應用到等差數列的公式,那電腦呢?下面就來看看我的作法。
Last updated
遊樂場設計了一種趣味的遊園火車,名叫「快樂高雄」號,上頭掛上了20 節車 廂,從第1 節車廂開始,車廂依序分別標上編號1 到20;從車站起點開始出發 遊園一圈後會再回到起點乘載下一批客人,重複循環,火車遊園一圈我們稱呼火車行駛「一趟」。
待解問題:如果第1 節車廂有11 個座位,第2 節車廂有12 個座位,依序到第20 節車廂有 30 個座位。火車空車等待載客,從入口算起排隊隊伍中你是第321 位,每一個座 位上都有乘客,請問你會坐到第幾號的車廂?
讓我們以運算思維的第一步「將大問題拆解成小問題」來思考,先試著用電腦算看看,快樂高雄號的20節車廂一趟能載送多少旅客呢?
車廂載客數從11開始,加入清單第一項,接著+1,變成12加入清單第二項,可以看到清單很清楚模擬快樂高雄號的載客情形,到第20節車廂會有30人
這段程式碼裡有兩個很重要的變數,「車廂」在點擊綠旗後已經被初始化設為1,所以會從清單的第一項內容11開始累加
第二個重要變數是「總和」,也是在點擊綠旗後初始化設為0,所以迴圈第一次時,總和為「0+11」,變成11。迴圈第二次時,變成「11+12」=23,第三次迴圈則變成「23+13」=36,依此類推執行20次,加到清單的第二十項。
使用詢問的程式積木,如果人數超過第一趟的載客數410怎麼辦呢?例如845,那只要除以410,剩下的餘數就是還要從第一車廂開始從分配的數量了。
先前學的是計算20節車廂的總載客數,但現在只要算到輸入的321人,所以累計的迴圈只要執行到大於或等於321就可以了,要注意的是,這時的車廂已經是超過321人的那節,所以最後的答案要減 1哦。
寫出來後,執行看看第321位和第845位旅客分別在第幾車廂吧