也許小一數學題太難 家長出動電腦程式助找答案
發佈日期: 2016-03-25 14:48
最後更新日期: 2016-03-25 15:43
撰文: 簡浩德
葉天佑
選擇文章:
一條小一數學題目難倒萬千家長。近日網上流傳一條小一數學挑戰題,要求學生嘗試破解算式中各英文字母所代表的數字,使得算式成立,連立法會議員毛孟靜也轉載該圖,並表示小一的數學題竟如此十分深奧感到不解。
(圖膠聞 專頁)
面對謎一般的功課,香港家長自然不會坐以待斃,任由子女交白卷。網民Raytheon Lui 決定以「自己的方式」撰寫電腦程式找答案,並表示答案多於一組。看似複雜的程式,Raytheon Lui 卻表示自己只是「即興」編寫,無使用特別的程式套,並聲稱用 Python 程式語言的話,只需要寫5行程式碼即可破解答案。
網民Raytheon Lui破解小一數學題的程式(Raytheon Lui Facebook)
網上討論區 網友 熊大地產經紀 貼文
另有網民更一口氣以6種不同程式語言,包括C++、Clojure、Haskell、Java、Prolog 和 Python去解答這條小一數學挑戰題解答方法。
各程式中有不少均涉及以 permutation (排列)的概念,去窮舉可能的英文字母對應數字的組合,再找出符合條件的排列。
網民 mingchuno 整理程式碼集合
至於Raytheon Lui 口中的5行 Python 程式碼,也由網友 Adrian Iain Lam將之公諸於世:
from itertools import permutations
p = permutations(range(1,10))
for i in p:
if i[0]*10+i[1] - i[2]*10-i[3] == i[4]*10+i[5] and i[4]*10+i[5] + i[6]*10+i[7] == i[8] *111:
print(i)
p = permutations(range(1,10))
for i in p:
if i[0]*10+i[1] - i[2]*10-i[3] == i[4]*10+i[5] and i[4]*10+i[5] + i[6]*10+i[7] == i[8] *111:
print(i)
沒有留言:
張貼留言