故事如下:可愛的小翊萱蹦蹦跳跳的跑到正在看卡通海綿寶寶笑的很開心的我旁邊,叔叔、叔叔可以問你一個數學問題嗎?當然啦!可愛的小翊萱問我問題哪有拒絕的道理勒,看到題目,”數學動動腦”,不看還好,一看差點就昏倒
一個很簡單敘述的數學問題–
題目如下:
將□內任意填入+、-、×、÷ 四個運算符號,並將運算結果為117通通列舉出來
1□2□3□4□5□6□7□8□9□10=117
例如: 1+2+3*4+5+6-7+8+9*10=117
1+2-3+4*5+6-7+8+9*10=117
….
很簡單吧,我是說題目說的很簡單,難度根本就是靠北,我很懷疑這個可以用人腦求解出答案嗎?這絕對要用電腦求解吧! 4^9 組合;共有262144配對組合,老師到底是要考小朋友還是要考小朋友的父母的阿,難怪上次新聞報導小學生國文學修辭,原來所言不假。因此我很認真的問小翊萱說,妳們老師是男生還是女生啊,是不是漂不漂亮啊 ^___^ ……..
好,重點不是這個,重點是如何寫這道數學題目,一開始想到是窮舉法(即暴力破解法)利用9個迴圈代入算式,但是卻忽略了先乘除後加減的問題,導致後來驗證時發現求解不正確,也不知道是何原因,搞了快一下午,還好我夠宅,才能忘卻時間對我的影響,反正用利用迴圈求解的流程就是,將有乘除的符號先求出解來,之後再求出的解代入原式子便可求出正確結果
例:1+2+3×4÷5-6×7+8×9+10 =?
=>先整理乘除之解3×4÷5=2.4 6×7=42 8×7=42
=>再代入原式 1+2+2.4-42+72+10 =? 117
EXCEL 迴圈求解範例1 下載
後來試著利用遞迴的方式,比起利用迴圈來求解可以剔除很多條件式的流程,可以簡省很多時間去想條件式的規則,但是奇怪的是比起迴圈求解還要來的快,這是我沒辦法理解的,照理說應該是遞迴求解比較會花時間在處理Stack上,怎麼會反而是遞迴來的求解速度快哩?還是我迴圈寫的太多贅詞導致求解時間太慢? 反正這問題就留給之後的我在去傷腦筋吧,還是遇到高手再請教一下看看問題出在哪邊。
EXCEL 遞迴求解範例2 下載
後記:1.翊萱後來說了一句,我們老師生了兩個可愛小寶寶把我嘴給堵住了…
2.海綿寶寶是一部真的是很好笑的卡通,有時我們全家還會一起觀賞