韓信點兵
漢高祖劉邦曾問大將韓信:“你看我能帶多少兵?”韓信斜了劉邦一眼說:“你頂多能帶十萬兵吧!”漢高祖心中有三分不悅,心想:你竟敢小看我!“那你呢?”韓信傲氣十足地說:“我呀,當然是多多益善囉!”劉邦心中又添了三分不高興,勉強說:“將軍如此大才,我很佩服。現在,我有一個小小的問題向將軍請教,憑將軍的大才,答起來一定不費吹灰之力的。”韓信滿不在乎地說:“可以可以。”劉邦狡黠地一笑,傳令叫來一小隊士兵隔牆站隊,劉邦發令:“每三人站成一排。”隊站好後,小隊長進來報告:“最後一排只有二人。”“劉邦又傳令:“每五人站成一排。”小隊長報告:“最後一排只有三人。”劉邦再傳令:“每七人站成一排。”小隊長報告:“最後一排只有二人。”劉邦轉臉問韓信:“敢問將軍,這隊士兵有多少人?”韓信脫口而出:“二十三人。”劉邦大驚,心中的不快已增至十分,心想:“此人本事太大,我得想法找個岔子把他殺掉,免生後患。”一面則佯裝笑臉誇了幾句,並問:“你是怎樣算的?”韓信說:“臣幼得黃石公傳授《孫子算經》,這孫子乃鬼谷子的弟子,算經中載有此題之演算法,口訣是:
三人同行七十稀,
五樹梅花開一枝,
七子團圓正月半,
除百零五便得知。”
劉邦出的這道題,可用現代語言這樣表述:
“一個正整數,被3除時餘2,被5除時餘3,被7除時餘2,如果這數不超過100,求這個數。”
《孫子算經》中給出這類問題的解法:“三三數之剩二,則置一百四十;五五數之剩三,置六十三;七七數之剩二,置三十;並之得二百三十三,以二百一十減之,即得。凡三三數之剩一,則置七十;五五數之剩一,則置二十一;七七數之剩一,則置十五,一百六以上,以一百五減之,即得。”用現代語言說明這個解法就是:
首先找出能被5與7整除而被3除餘1的數70,被3與7整除而被5除餘1的數21,被3與5整除而被7除餘1的數15。
所求數被3除餘2,則取數70×2=140,140是被5與7整除而被3除餘2的數。
所求數被5除餘3,則取數21×3=63,63是被3與7整除而被5除餘3的數。
所求數被7除餘2,則取數15×2=30,30是被3與5整除而被7除餘2的數。
又,140+63+30=233,由於63與30都能被3整除,故233與140這兩數被3除的餘數相同,都是餘2,同理233與63這兩數被5除的餘數相同,都是3,233與30被7除的餘數相同,都是2。所以233是滿足題目要求的一個數。
而3、5、7的最小公倍數是105,故233加減105的整數倍後被3、5、7除的餘數不會變,從而所得的數都能滿足題目的要求。由於所求僅是一小隊士兵的人數,這意味著人數不超過100,所以用233減去105的2倍得23即是所求。
這個演算法在中國有許多名稱,如“韓信點兵”,“鬼谷算”,“隔牆算”,“剪管術”,“神奇妙算”等等,題目與解法都載於中國古代重要的數學著作《孫子算經》中。一般認為這是三國或晉時的著作,比劉邦生活的年代要晚近五百年,演算法口訣詩則載於明朝程大位的《演算法統宗》,詩中數字隱含的口訣前面已經解釋了。宋朝的數學家秦九韶把這個問題推廣,並把解法稱之為“大衍求一術”,這個解法傳到西方後,被稱為“孫子定理”或“中國剩餘定理”。而韓信,則終於被劉邦的妻子呂后誅殺於未央宮。
請你試一試,用剛才的方法解下面這題:
一個數在200與400之間,它被3除餘2,被7除餘3,被8除餘5,求該數。
(解:112×2+120×3+105×5+168k,取k=-5得該數為269。)
韓信點兵
漢高祖劉邦曾問大將韓信:“你看我能帶多少兵?”韓信斜了劉邦一眼說:“你頂多能帶十萬兵吧!”漢高祖心中有三分不悅,心想:你竟敢小看我!“那你呢?”韓信傲氣十足地說:“我呀,當然是多多益善囉!”劉邦心中又添了三分不高興,勉強說:“將軍如此大才,我很佩服。現在,我有一個小小的問題向將軍請教,憑將軍的大才,答起來一定不費吹灰之力的。”韓信滿不在乎地說:“可以可以。”劉邦狡黠地一笑,傳令叫來一小隊士兵隔牆站隊,劉邦發令:“每三人站成一排。”隊站好後,小隊長進來報告:“最後一排只有二人。”“劉邦又傳令:“每五人站成一排。”小隊長報告:“最後一排只有三人。”劉邦再傳令:“每七人站成一排。”小隊長報告:“最後一排只有二人。”劉邦轉臉問韓信:“敢問將軍,這隊士兵有多少人?”韓信脫口而出:“二十三人。”劉邦大驚,心中的不快已增至十分,心想:“此人本事太大,我得想法找個岔子把他殺掉,免生後患。”一面則佯裝笑臉誇了幾句,並問:“你是怎樣算的?”韓信說:“臣幼得黃石公傳授《孫子算經》,這孫子乃鬼谷子的弟子,算經中載有此題之演算法,口訣是:
三人同行七十稀,
五樹梅花開一枝,
七子團圓正月半,
除百零五便得知。”
劉邦出的這道題,可用現代語言這樣表述:
“一個正整數,被3除時餘2,被5除時餘3,被7除時餘2,如果這數不超過100,求這個數。”
《孫子算經》中給出這類問題的解法:“三三數之剩二,則置一百四十;五五數之剩三,置六十三;七七數之剩二,置三十;並之得二百三十三,以二百一十減之,即得。凡三三數之剩一,則置七十;五五數之剩一,則置二十一;七七數之剩一,則置十五,一百六以上,以一百五減之,即得。”用現代語言說明這個解法就是:
首先找出能被5與7整除而被3除餘1的數70,被3與7整除而被5除餘1的數21,被3與5整除而被7除餘1的數15。
所求數被3除餘2,則取數70×2=140,140是被5與7整除而被3除餘2的數。
所求數被5除餘3,則取數21×3=63,63是被3與7整除而被5除餘3的數。
所求數被7除餘2,則取數15×2=30,30是被3與5整除而被7除餘2的數。
又,140+63+30=233,由於63與30都能被3整除,故233與140這兩數被3除的餘數相同,都是餘2,同理233與63這兩數被5除的餘數相同,都是3,233與30被7除的餘數相同,都是2。所以233是滿足題目要求的一個數。
而3、5、7的最小公倍數是105,故233加減105的整數倍後被3、5、7除的餘數不會變,從而所得的數都能滿足題目的要求。由於所求僅是一小隊士兵的人數,這意味著人數不超過100,所以用233減去105的2倍得23即是所求。
這個演算法在中國有許多名稱,如“韓信點兵”,“鬼谷算”,“隔牆算”,“剪管術”,“神奇妙算”等等,題目與解法都載於中國古代重要的數學著作《孫子算經》中。一般認為這是三國或晉時的著作,比劉邦生活的年代要晚近五百年,演算法口訣詩則載於明朝程大位的《演算法統宗》,詩中數字隱含的口訣前面已經解釋了。宋朝的數學家秦九韶把這個問題推廣,並把解法稱之為“大衍求一術”,這個解法傳到西方後,被稱為“孫子定理”或“中國剩餘定理”。而韓信,則終於被劉邦的妻子呂后誅殺於未央宮。
請你試一試,用剛才的方法解下面這題:
一個數在200與400之間,它被3除餘2,被7除餘3,被8除餘5,求該數。
(解:112×2+120×3+105×5+168k,取k=-5得該數為269。)