你想知道生活中有甚麼數學嗎?

2016年3月26日 星期六

也許小一數學題太難 家長出動電腦程式助找答案

 | 
選擇文章: 
一條小一數學題目難倒萬千家長。近日網上流傳一條小一數學挑戰題,要求學生嘗試破解算式中各英文字母所代表的數字,使得算式成立,連立法會議員毛孟靜也轉載該圖,並表示小一的數學題竟如此十分深奧感到不解。
(圖膠聞 專頁)(圖膠聞 專頁)
相關文章

家長寫程式解小一數題 專家促讓小學生動腦作答:挑戰題助長智能

【01百科】什麼是「七橋問題」?答案是什麼?

小一數學功課600字閱讀理解 小三問「七橋難題」 家長批太深

面對謎一般的功課,香港家長自然不會坐以待斃,任由子女交白卷。網民Raytheon Lui 決定以「自己的方式」撰寫電腦程式找答案,並表示答案多於一組。看似複雜的程式,Raytheon Lui 卻表示自己只是「即興」編寫,無使用特別的程式套,並聲稱用 Python 程式語言的話,只需要寫5行程式碼即可破解答案。


網民Raytheon Lui破解小一數學題的程式(Raytheon Lui Facebook)網民Raytheon Lui破解小一數學題的程式(Raytheon Lui Facebook)
接下來,多名網民亦先後以電腦程式挑戰這條小一數學題,例如網民「熊大地產經紀 」於網上討論區貼出其以 Python 程式語言的解答方法。

網上討論區 網友 熊大地產經紀 貼文網上討論區 網友 熊大地產經紀 貼文
另有網民更一口氣以6種不同程式語言,包括C++、Clojure、Haskell、Java、Prolog 和 Python去解答這條小一數學挑戰題解答方法

各程式中有不少均涉及以 permutation (排列)的概念,去窮舉可能的英文字母對應數字的組合,再找出符合條件的排列。

網民 mingchuno 整理程式碼集合網民 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)


沒有留言:

張貼留言