僅僅二年級的小寶馬呂斯,卻能輕鬆對付滑鐵盧大學的Beaver計算機競賽五六年級組的所有問題。學習能力之強,從他善於抽象總結可略見一斑。
計算機世界隻有三樣東西:順序執行,分支判斷,循環。這節課,小寶馬呂斯活學活用循環變量,並在課後發表“四妙招”。
金拇指:
今天小寶同學腦洞大開,在書寫循環變量表達式的時候反應神速,一氣嗬成。顯示了強大的數學功底。
課結束時,小寶大聲說:“其實另一半棋子用大寫表示也是有妙招的,下節課我來教你“。這是今晚我第四次對他服氣。
馬呂斯:
分享幾個小妙招:
1,列排公式:小數 + i * 大數與小數的差
2,有幾行,寫“for loop”時就是0...幾
3,黑色與紅色列排數不變
4,紅色橫排是0200003,黑色就是9799996。
這些都是幫你增加效率的。
金拇指:
妙招實在太妙了。感謝分享。
馬爹:
這是什麽意思啊?誰能解釋下?
金拇指:
我不妨稱之為出自最年輕的數學愛好者之手的數學論文。
背景介紹:利用循環往中國象棋初始棋盤上擺棋子。棋盤有九列(0,1,2,3,4,5,6,7,8),十行(0,1,2,3,4,5,6,7,8,9)。
馬呂斯妙招(1):說的是比如兩顆馬所處的列 1 和 7,對於從 0 循環到 1 的循環變量 i 來說,可以表達成 1 + i * 6,其中 6 是 7 和 1 之差。再比如兩顆象所處的列 2 和 6,對於從 0 循環到 1 的循環變量 i 來說,可以表達成 2 + i * 4,其中 4 是 6 和 2 之差。
馬呂斯妙招(2):說的是在用 for 循環改進之前,重複的代碼行有 n 個,循環變量 i 的範圍就可以寫成 0..
馬呂斯妙招(3):說的是黑棋和對應的紅棋所處的列一樣,不必重複計算。
馬呂斯妙招(4):說的是在上方的紅色棋子的行的序號分別為五個 0 (將用一個,車馬象士每對各用一個),一個 2(一對炮),一個 3(五顆卒子);在下方的黑色棋子的行的序號分別為五個 9 (帥用一個,車馬相仕每對各用一個),一個 7(一對炮),一個 6(五顆兵)。很顯然作者注意到了9 - 2 = 7,9 - 3 = 6 這樣的內在聯係。