孫子演算法
⑴ 我國古代名著孫子算經中記載的三大數學趣題指的是什麼
「隔牆算」、「剪管術」、「秦王暗點兵」。
「秦王暗點兵」原題為:"今有物不知其數,三三數之二,五五數之三,七七數之二,問物幾何?" 這道題的意思是:有一批物品,不知道有幾件。如果三件三件地數,就會剩下兩件;如果五件五件地數,就會剩下三件;如果七件七件地數,也會剩下兩件。問:這批物品共有多少件?
(1)孫子演算法擴展閱讀
對後世的影響最為深遠,如下卷第31題即著名的「雞兔同籠」問題,後傳至日本,被改為「鶴龜算」。
今有雉、兔同籠,上有三十五頭,下有九十四足。問:雉、兔各幾何?答曰:雉二十 三,兔一十二。
術曰:上置三十五頭,下置九十四足。半其足,得四十七,以少減多,再命之,上三 除下三,上五除下五,下有一除上一,下有二除上二,即得。又術曰:上置頭,下置足,半其足,以頭除足,以足除頭,即得。
在《非正式會談》中,副會長楊迪搬出小學二年級的一道暑假奧數題,他說:「我不得不承認這題好難!」面臨「雞兔同籠」這道頗有中國特色的數學題,12位外國代表能否成功解出呢?
魔性錢多多居然算出620隻雞和120隻兔子的答案,遭到楊迪的無情吐槽,「620隻雞為什麼只有30個頭呢?是有多少只無頭雞混在裡面?」惹得大家捧腹大笑。
而學霸功必揚更是傲嬌寫出「畢業了」三個大字,「我畢業了所以不用寫作業」。學霸任性逃避,考慮過學渣的感受嗎?
法國小伙宋博寧倒是動作神速,唰唰唰地寫滿了題板,更是搬出微積分的大牛演算法,看起來很厲害的樣子,然而也無濟於事。只有「冠軍貝」不論做什麼都是有模有樣,不僅用方程式成功解題,並且邏輯清晰講解流暢,享受眾人膜拜的目光。
⑵ 孫子演算法
我們首先需要先求出三個數:
第一個數能同時被3和5整除,但除以7餘1,即15;
第二個數能同時被3和7整除,但除以5餘1,即21;
第三個數能同時被5和7整除,但除以3餘1,即70;
然後將這三個數分別乘以被7、5、3除的余數再相加,即:15×2+21×3+70×2=233.
最後,再減去3、5、7最小公倍數的整數倍,可得:233-105×2=23.或105k+23(k為正整數).
由於物數量在100至200之間,故當k=1時,105+23=128
故答案為:128
⑶ 孫子算經的原文和譯文
《孫子算經》
約成書於四、五世紀,作者生平和編寫年代都不清楚。現在傳本的《孫子算經》共三卷。卷上敘述算籌記數的縱橫相間制度和籌算乘除法則,卷中舉例說明籌算分數演算法和籌算開平方法。卷下第31題,可謂是後世「雞兔同籠」題的始祖,後來傳到日本,變成「鶴龜算」。書中是這樣敘述的:「今有雞兔同籠,上有三十五頭,下有九十四足,問雞兔各幾何?這四句話的意思是:有若干只雞兔同在一個籠子里,從上面數,有35個頭;從下面數,有94隻腳。求籠中各有幾只雞和兔? 具有重大意義的是卷下第26題:「今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,問物幾何?答曰:『二十三』」。《孫子算經》不但提供了答案,而且還給出了解法。南宋大數學家秦九韶則進一步開創了對一次同餘式理論的研究工作,推廣「物不知數」的問題。德國數學家高斯﹝K.F. Gauss.公元1777-1855年﹞於公元1801年出版的《算術探究》中明確地寫出了上述定理。公元1852年,英國基督教士偉烈亞士﹝Alexander Wylie公元1815-1887年﹞將《孫子算經》「物不知數」問題的解法傳到歐洲,公元1874年馬蒂生﹝L.Mathiesen﹞指出孫子的解法符合高斯的定理,從而在西方的數學史里將這一個定理稱為「中國的剩餘定理」﹝Chinese remainder theorem﹞。另外還有一道,曰:「巍巍古寺在山林,不知寺內幾多僧。三百六十四隻碗,看看用盡不差爭。三人共食一碗飯,四人共吃一碗羹。請問先生明算者,算來寺內幾多僧。」引用 http://ke..com/view/265154.html?wtp=tt
⑷ 中國剩餘定理——孫子定理講的是什麼呢
我國古代的重要數學著作《孫子算經》中有一問題:「今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,問物幾何?」答曰:「二十三。」這段話譯成白話是:「有一堆東西不知有多少個,如果三個三個數,剩二個,如果五個五個數,剩三個,如果七個七個數剩二個。問這堆東西有多少?答案是二十三個。」這個問題的解決,叫「孫子定理」,國外稱為「中國剩餘定理」。
這個問題的解法明朝程大位寫成一首詩是:「三人同行七十稀,五樹梅花廿一枝,七子團圓正半月,除百零五便得知。」這首詩里隱含著70、21、15、105這4個數,只要牢記這4個數,解答此題便輕而易舉了。在《孫子算經》中詳細介紹了這種奇妙演算法:凡是每3個一數最後餘1的,就取1個70,最後餘2的,便取2個70;每5個一數最後餘1的,就取1個21,餘2的,就取2個21;每7個一數最後餘1的,就取1個15,餘2的取2個15。把這些數加起來,如果得數比105大,減去105,所得的兩組數便是眾多答案中最小的一個和第二最小的。比如,上題是取2個70,取3個21,取2個15。由於2×70+3×21+2×15=233,比105大,減去105,再減105,得23。只此寥寥幾步,便解了此題,可謂神奇。
⑸ 孫子演算法(木馬板凳三十三,一百隻腿地上竄,木馬板凳各有多少)
設木馬X個,則板凳為(33-X)張,列方程:
3X+4(33-X)=100
解之,得X=32(個)
則板凳為:33-32=1(張)
小學生的解法:
列出100以內3的倍數,也就是木馬可能的腿數:3,6,9,12......96,99.
列出100以內4的倍數,即板凳可能的腿數:4,8,12,16......96,100.
從以上兩列數中各任意選取一個數相加使他們的和等於100,只有12和88,24和76,36和64,48和52,60和40,72和28,84和16,96和4符合。然後,據此計算木馬和板凳可能的數量:(4和22),(8和19) ,(12和16),(16和13),(20和10),(24和7),(28和4),(32和1)。只有32+1=33,符合題意。
答:木馬有32個,板凳有1張。
⑹ 孫子算經的社會影響
孫子算經,中國南北朝數術著作,《算經十書》之一。 在我國古代漢族勞動人民中,長期流傳著「隔牆算」、「剪管術」、「秦王暗點兵」等數學游戲。有一首「孫子歌」,甚至遠渡重洋,輸人日本:
「三人同行七十稀,五樹梅花廿一枝,
七子團圓正半月,除百零五便得知。」
這些饒有趣味的數學游戲,以各種不同形式,介紹世界聞名的「孫子問題」的解法,通俗地反映了漢族古代數學一項卓越的成就。「孫子問題」在現代數論中是一個一次同餘問題,它最早出現在我國公元四世紀的數學著作《孫子算經》中。《孫子算經》卷下「物不知數」題說:有物不知其數,三個一數餘二,五個一數餘三,七個一數又餘二,問該物總數幾何?顯然,這相當於求不定方程組
N=3x+2,N=5y+3,N=7z+2
的正整數解N,或用現代數論符號表示,等價干解下列的一次同餘組。
N=2(mod3);N=3(mod5);N=2(mod7)
《孫子算經》所給答案是N=23。由於孫子問題數據比較簡單,這個答數通過試算也可以得到。但是《孫子算經》並不是這樣做的。「物不知數」題的術文指出解題的方法多三三數之,取數七十,與余數二相乘;五五數之,取數二十一,與余數三相乘;七七數之,取數十五,與余數二相乘。將諸乘積相加,然後減去一百零五的倍數。列成算式就是:
N=70×2+21×3+15×2-2×105=23。
這里105是模數3、5、7的最小公倍數,容易看出,《孫子算經》給出的是符合條件的最小正整數。對於一般余數的情形,《孫子算經》術文指出,只要把上述演算法中的余數2、3、2分別換成新的余數就行了。以R1、R2、R3表示這些余數,那麼《孫子算經》相當於給出公式
N=70×R1+21×R2+15×R3-P×105(p是整數)。
孫子演算法的關鍵,在於70、21和15這三個數的確定。後來流傳的《孫子歌》中所說「七十稀」、「廿一技」和「正半月」,就是暗指這三個關鍵的數字。《孫子算經》沒有說明這三個數的來歷。實際上,它們具有如下特性:
也就是說,這三個數可以從最小公倍數M=3×5×7=105中各約去模數3、5、7後,再分別乘以整數2、1、1而得到。假令k1=2,K2=1,K3=1,那麼整數Ki(i=1,2,3)的選取使所得到的三數70、21、15被相應模數相除的時候余數都是1。由此出發,立即可以推出,在余數是R1、R2、R3的情況下的情況。
應用上述推理,可以完全類似地把孫子演算法推廣到一般情形:設有一數N,分別被兩兩互素的幾個數a1、a2、……an相除得余數R1、R2、……Rn,即
N≡Ri(mod ai)(i=1、2、……n),
只需求出一組數K,使滿足
1(mod ai)(i=1、2、……n),
那麼適合已給一次同餘組的最小正數解是
(P是整數,M=a1×a2×……×an),
這就是現代數論中著名的剩餘定理。如上所說,它的基本形式已經包含在《孫子算經》「物不知數」題的解法之中。不過《孫子算經》沒有明確地表述這個一般的定理。
孫子問題出現在公元四世紀的中國算書中,這並不是偶然的。我國古代天文歷法資料表明,一次同餘問題的研究,明顯地受到天文、歷法需要的推動,特別是和古代歷法中所謂「上元積年」的計算密切相關。大家知道,一部歷法,需要規定一個起算時間,我國古代歷算家把這個起點叫做「歷元」或「上元」,並且把從歷元到編歷年所累積的時間叫做「上元積年」。上元積年的推算需要求解一組一次同餘式。以公元三世紀三國時期魏國施行的《景初歷》做例,這部歷法規定以冬至、朔旦(朔日子夜)和甲子日零時會合的時刻作為歷元。設a是一回歸年日數,b是一朔望月日數,當年冬至距甲子日零時是R1日,離平朔時刻是R2日,那麼《景初歷》上元積元數N就是同餘組的解。
aN≡Ri(mod 60)≡R2(mod b)
到了南北朝時期,祖沖之《大明歷》(公元462年)更要求歷元必須同時是甲子年的開始,而且「日月合璧」、「五星聯珠」(就是日、月、五大行星處在同一方位),月亮又恰好行經它的近地點和升交點。這樣的條件下推算上元積年,就相當於要求解十個同餘式了。天文歷法數據一般又都十分龐雜,所以,在《孫子算經》成書前後的魏晉南北朝時期,我國的天文歷算家無疑已經能夠求解形式比《孫子算經》「物不知數」題復雜得多的一次同餘式,因而必定掌握了按一定程序計算一次同餘式的方法。《孫子算經》比例題的形式總結、反映了這一事實。以後天文歷算家長期沿用孫子演算法推算上元積年,這中間肯定會引起更加深入的探討。到公元十三世紀,大數學家秦九韶集前法之大成,終於在一次同餘式的研究上獲得了超越前人的輝煌成果。
秦九韶,字道古,生活於南宋時期,自幼喜好數學,經過長期積累和苦心鑽研,干公元1247年寫成《數書九章》。這部中世紀的數學傑作,在許多方面都有創造,其中求解一次同餘組的「大衍求一術」和求高次方程數值解的「正負開方術」,更是具有世界意義的成就。
這里主要介紹秦九韶對一次同餘論的偉大貢獻。
秦九韶在《數書九章》中明確地系統地敘述了求解一次同餘組
的一般計算步驟。秦的方法,正是前述的剩餘定理。我們知道,剩餘定理把一般的一次同餘問題歸結為滿足條件的一組數Ki,的選定。秦九韶給這些數起名叫「乘率」,並且在《數書九章》卷一「大衍總術」中詳載了計算乘率的方法——「大衍求一術」。
為了介紹「大衍求一術」,我們以任一乘率ki的計算作例。如果Gi=>ai,秦九韶首先令ai除Gi,求得余數gi<ai,那麼
Gi≡gi(mod ai),
於是 kiGi≡Kigi(mod ai),
但是因為 kiGi≡1(mod ai),
所以問題歸結為求ki使適合kigi≡1(mod ai)。秦九韶把ai叫「定數」,gi叫「奇數」,他的「大衍求一術」,用現代語言解釋,實際就是把奇數gi和定數ai輾轉相除,相繼得商數q1、q2、……qn和余數r1、r2、……rn,在輾轉相除的時候,隨即算出下面右列的c值:
秦九韶指出,當rn=1而n是偶數的時候,最後得到的cn就是所求乘率ki。如果rn=1而n是奇數,那麼把rn-1和rn相除,形式上令qn+1=rn-1-1,那麼余數rn+1仍舊是1,再作cn+1=qn+1cn+cn-1,qn+1=rn-1-1是偶數,cn+1就是所求的ki。不論哪種情形,最後一步都出現余數1,整個計算到此終止,秦九韶因此把他的方法叫做「求一術」(至於「大衍」的意思,秦九韶本人在《數書九章》序中把它和《周易》「大衍之數」相附會)。可以證明,秦九韶這一演算法是完全正。所有這些系統的理論,周密的考慮,即使以今天的眼光看來也很不簡單,充分顯示了秦九韶高超的數學水平和計算技巧。秦九韶小時曾跟隨他父親到南宋京城杭州,向太史局(主管天確,十分嚴密的。
在秦九韶那個時代,計算仍然使用算籌。秦九韶在一個小方盤上,右上布置奇數g,右下布置定數a,左上置1(他叫它做「天元1」),然後在右行上下交互以少除多,所得商數和左上(或下)相乘並入左下(或上),直到右上方出現1為止。下頁就是秦九韶的一般籌算圖式,右邊是一個數字例子(g=20,a=27,K=C4=23)。
秦九韶在《數書九章》中採集了大量例題,如「古歷會積」、「積尺尋源」、「推計土功」、「程行計地」等等,廣泛應用大衍求一術來解決歷法、工程、賦役和軍旅等實際問題。在這些實際問題中,模數ai並不總是兩兩互素的整數。秦九韶區分了「元數」(ai是整數)、「收數」(ai是小數)、「通數」(ai是分數)等不同情形,並且對每種情形給出了處理方法。「大衍總術」把「收數」和「通數」化成「元數」的情形來計算,而對於元數不兩兩互素的情形,給出了可靠的程序,適當選取那些元數的因子作定數而把問題歸結為兩兩互素的情形
文歷法的機構)的官員學習天文歷法,「大衍求一術」很可能就是他總結天文歷法計算上元積年方法的結果。但是「大衍求一術」似乎沒有為他同時代的人所充分理解。明中葉以後幾乎失傳。一直到清代,「大衍求一術」又重新被發掘出來,引起了許多學者(張敦仁、李銳、駱騰鳳、黃宗憲等)的興趣。他們對「大衍求一術」進行了解釋、改進和簡化,其中黃宗憲《求一術通解》對模數非兩兩互素的情形給出了更加簡明的方法,但是時代已是晚清。
從《孫子算經》「物不知數」題到秦九韶的「大衍求一術」,古代漢族數學家對一次同餘式的研究,不僅在中國數學史上而且在世界數學史上佔有光榮的地位。在歐洲,最早接觸一次同餘式的,是和秦九韶同時代的義大利數學家裴波那契(1170—1250),他在《演算法之書》中給出了兩個一次同餘問題,但是沒有一般的演算法。這兩個問題從形式到數據都和孫子物不知數題相仿,整個水平沒有超過《孫子算經》。直到十八、十九世紀,大數學家歐拉(1707—1783)於公元1743年、高斯(1777—1855)於公元1801年對一般一次同餘式進行了詳細研究,才重新獲得和秦九韶「大衍求一術」相同的定理,並且對模數兩兩互素的情形給出了嚴格證明。歐拉和高斯事先並不知道中國人的工作。公元1852年英國傳教士偉烈亞力(1815—1887)發表《中國科學摘記》,介紹了《孫子算經》物不知數題和秦九韶的解法,引起了歐洲學者的重視。1876年,德國馬蒂生(1830—1906)首先指出孫子問題的解法和高斯方法一致,當時德國著名數學史家康托(1829—1920)看到馬蒂生的文章以後,高度評價了「大衍術」,並且稱贊發現這一方法的中國數學家是「最幸運的天才」。直到今天,「大衍求一術」仍然引起西方數學史家濃厚的研究興趣。如1973年,美國出版的一部數學史專著《十三世紀的中國數學》中,系統介紹了中國學者在一次同餘論方面的成就,作者力勃雷希(比利時人)在評論秦九韶的貢獻的時候說道:「秦九韶在不定分析方面的著作時代頗早,考慮到這一點,我們就會看到,薩頓稱秦九韶為『他那個民族、他那個時代、並且確實也是所有時代最偉大的數學家之一』,是毫不誇張的。」
印度學者對一次同餘論也有過重要貢獻。從公元六世紀到十二世紀,他們發展了一種稱為「庫塔卡」的演算法,用來求解和一次同餘式等價的不定方程組。「庫塔卡」法出現在孫子演算法之後,印度數學家婆羅門復多(七世紀)、摩柯吠羅(九世紀)等人的著作中,都有和物不知數題相同的一次同餘問題。這當然不是要藉此斷言「庫塔卡」法一定受到了孫子演算法的影響,但是有人(如萬海依等)硬說中自的「大衍求一術」來源於「庫塔卡」,就是毫無根據的妄說了。萬海依居然把中國演算法中數碼從左到右橫寫作為「大衍術」受印度影響的重要根據。大家知道,中國古代至遲從春秋戰國時期就開始使用算籌記數,我們今天還可以從現存的公元前三世紀的貨幣上看到這種從左到右的記數方法。由此可見,萬海依的論點多麼荒唐可笑。中國古代數學家對一次同餘論的研究有明顯的獨創性和繼承性,「大衍求一術」在世界數學史上的崇高地位是毋容置疑的,正因為這樣,在西方數學史著作中,一直公正地稱求解一次同餘組的剩餘定理為「中國剩餘定理」。 在中國古算書中,《孫子算經》一直在我國數史佔有重要的地位,其中的「盈不足術」、「盪杯問題」等都有著許多有趣而又不乏技巧算術程式。
孫子算經.卷下第十七問給我們描述的就是著名的「盪杯問題」的程式。題曰:「今有婦人河上盪杯。津吏問曰:『杯何以多?』婦人曰:『有客。』津吏曰:『客幾何?』婦人曰:『二人共飯,三人共羹,四人共肉,凡用杯六十五。不知客幾何?」
很明顯,這里告訴我們這次洗碗事件,要處理的是65個碗共有多少人的問題。其中有能了解客數的信息是2人共碗飯,3人共碗羹,4人共碗肉。通過這幾個數值,很自然就能解決客數問題。因為客數是固定值,因此將其列成今式為N/2+N/3+N/4=65,易得客數六十人。
而該題的解法與今解如出一轍,其有「術曰:置六十五杯,以一十二乘之,得七百八十,以十三除之,即得」可證。
⑺ 《孫子算經》的主要成就
《孫子算經》
約成書於四、五世紀,作者生平和編寫年代都不清楚。現在傳本的《孫子算經》共三卷。卷上敘述算籌記數的縱橫相間制度和籌算乘除法則,卷中舉例說明籌算分數演算法和籌算開平方法。卷下第31題,可謂是後世「雞兔同籠」題的始祖,後來傳到日本,變成「鶴龜算」。書中是這樣敘述的:「今有雞兔同籠,上有三十五頭,下有九十四足,問雞兔各幾何?這四句話的意思是:有若干只雞兔同在一個籠子里,從上面數,有35個頭;從下面數,有94隻腳。求籠中各有幾只雞和兔? 具有重大意義的是卷下第26題:「今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,問物幾何?答曰:『二十三』」。《孫子算經》不但提供了答案,而且還給出了解法。南宋大數學家秦九韶則進一步開創了對一次同餘式理論的研究工作,推廣「物不知數」的問題。德國數學家高斯﹝K.F. Gauss.公元1777-1855年﹞於公元1801年出版的《算術探究》中明確地寫出了上述定理。公元1852年,英國基督教士偉烈亞士﹝Alexander Wylie公元1815-1887年﹞將《孫子算經》「物不知數」問題的解法傳到歐洲,公元1874年馬蒂生﹝L.Mathiesen﹞指出孫子的解法符合高斯的定理,從而在西方的數學史里將這一個定理稱為「中國的剩餘定理」﹝Chinese remainder theorem﹞。另外還有一道,曰:「巍巍古寺在山林,不知寺內幾多僧。三百六十四隻碗,看看用盡不差爭。三人共食一碗飯,四人共吃一碗羹。請問先生明算者,算來寺內幾多僧。」
成書於公元四世紀左右,共三卷.作者不祥,書中系統地記載了籌算記數制度和籌算乘除法則,是一部算術啟蒙書,書中記載了"雞兔同籠"問題,特別是"物不知數"問題,是我國古代數學著作首次出現的一次同餘式問題,成為後來馳名於世的"中國大衍求一術"的源頭.
⑻ 孫子算經『物不知其數』是怎麼解決的
《孫子算經》解這道題目的「術文」和答案是:「三三數之剩二,置一百四十;五五數之剩三,置六十三;七七數之剩二,置三十,並之,得二百三十三,以二百十減之,即得。」
當時雖已有了答案23,但它的系統解法是秦九韶在《數書九章・大衍求一術》中給出的。大衍求一術是中國古算中最有獨創性的成就之一,屬現代數論中的一次同餘式組問題。
(8)孫子演算法擴展閱讀
這種「物不知數(孫子)問題」,在我國古代流傳的演算法名稱很多。宋朝周宓稱它為「鬼谷算」、「隔牆算」(之所以稱「鬼谷算」,大概是因為它與傳說中的哲學家鬼穀子有某些關系);13世紀的大數學家楊輝則稱它為「剪管術」。
《孫子算經》不但提供了答案,而且還給出了解法。南宋大數學家秦九韶則進一步開創了對一次同餘式理論的研究工作,推廣「物不知數」的問題。
德國數學家高斯[K.F. Gauss.公元1777-1855年]於公元1801年出版的《算術探究》中明確地寫出了上述定理。
公元1852年,英國基督教士偉烈亞士[Alexander Wylie公元1815-1887年]將《孫子算經》「物不知數」問題的解法傳到歐洲。
公元1874年馬蒂生[L.Mathiesen]指出孫子的解法符合高斯的定理,從而在西方的數學史里將這一個定理稱為「中國的剩餘定理」[Chinese remainder theorem]。
⑼ 孫子算經的介紹
《孫子算經》是中國古代重要的數學著作。約成書於四、五世紀,也就是大約一千五百年前,作者生平和編寫年不詳。傳本的《孫子算經》共三卷。卷上敘述算籌記數的縱橫相間制度和籌算乘除法,卷中舉例說明籌算分數演算法和籌算開平方法。卷下第31題,可謂是後世「雞兔同籠」題的始祖,後來傳到日本,變成「鶴龜算」。書中是這樣敘述的:「今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?這四句話的意思是:有若干只雞兔同在一個籠子里,從上面數,有35個頭;從下面數,有94隻腳。求籠中各有幾只雞和兔? 此題被義務教育課程標准實驗教科書人教版數學五年級上冊選為補充教材。