程璞
摘 要:我國(guó)是最早研究不定方程的國(guó)家之一,最古老的不定方程問(wèn)題是《九章算術(shù)》中的“五家共井”問(wèn)題。本文通過(guò)對(duì)“五家共井”問(wèn)題的算例分析、算法描述及上機(jī)實(shí)踐,將這一古老數(shù)學(xué)問(wèn)題與計(jì)算機(jī)技術(shù)相結(jié)合,讓學(xué)生感受算法學(xué)習(xí)的巨大作用。
關(guān)鍵詞:數(shù)學(xué);不定方程;算法
不定方程是數(shù)學(xué)數(shù)論的一個(gè)分支,它有著悠久的歷史與豐富的內(nèi)容。所謂不定方程是指解的范圍為整數(shù)、正整數(shù)、有理數(shù)或代數(shù)整數(shù)的方程組,其未知數(shù)的個(gè)數(shù)通常多于方程的個(gè)數(shù)。我國(guó)是最早研究不定方程的國(guó)家之一,最古老的不定方程問(wèn)題是《九章算術(shù)》中的“五家共井”問(wèn)題,比古希臘丟番圖方程早300多年,繼《九章算術(shù)》之后的《張丘建算經(jīng)》中對(duì)不定方程的論述體現(xiàn)了很高的水平,書(shū)中的“百雞問(wèn)題”是一個(gè)影響至今的不定方程問(wèn)題,另外,《孫子算經(jīng)》中的“物不知數(shù)”問(wèn)題等都是在這方面的杰出成果,體現(xiàn)了中國(guó)古代數(shù)學(xué)的偉大成就,是世界數(shù)學(xué)史中的瑰寶!
“物不知數(shù)”與“百雞問(wèn)題”在《普通高中課程標(biāo)準(zhǔn)實(shí)驗(yàn)教科書(shū)(蘇教版)》(必修3)中以例題或習(xí)題的形式出現(xiàn),下面以《九章算術(shù)》中的“五家共井”問(wèn)題為例談不定方程的算法實(shí)現(xiàn)。
問(wèn)題:“今有五家共井,甲二綆(提水用的井繩)不足如乙一綆,乙三綆不足如丙一綆,丙四綆不足如丁一綆,丁五綆不足如戊一綆,戊六綆不足如甲一綆,各得所不足一綆,皆逮,問(wèn)井深綆長(zhǎng)幾何?!?/p>
這道題譯成白話文是:有一口甲、乙、丙、丁、戊五家共用的水井,不知道井有多深?,F(xiàn)在用這五家的提水繩來(lái)測(cè)量井深,若用甲提水繩的2倍測(cè),還差乙提水繩的長(zhǎng);用乙提水繩的3倍測(cè),還差丙提水繩的長(zhǎng);用丙提水繩的4倍測(cè),還差丁提水繩的長(zhǎng);用丁提水繩的5倍測(cè),還差戊提水繩的長(zhǎng);用戊提水繩的6倍測(cè),還差甲提水繩的長(zhǎng)。問(wèn):井深與提水繩長(zhǎng)各是多少?
下面我們從以下幾個(gè)步驟探析改題的算法解決過(guò)程。
1 感悟算理——“算理”是學(xué)生走向“算法”的橋梁
算理顧名思義是實(shí)施計(jì)算方法的原理,只有把握了算理,才能據(jù)此尋求算法。若只告訴學(xué)生怎么算,忽略理解算理的環(huán)節(jié),如同建造“空中樓閣”,沒(méi)有穩(wěn)固的根基容易使學(xué)生“知其然而不知其所以然”,也就失去了獨(dú)立思考和深層感悟的寶貴機(jī)會(huì)。
這題學(xué)生很自然地想到列方程解決,可設(shè)井深為x,甲、乙、丙、丁、戊的提水繩長(zhǎng)分別為a、b、c、d、e,由五組數(shù)量關(guān)系列五個(gè)方程:
由于未知數(shù)的個(gè)數(shù)多于方程的個(gè)數(shù),可以取無(wú)數(shù)組解,但常識(shí)告訴我們,井深x一般在50寸到1000寸之間,且a、b、c、d、e均為正整數(shù),故方程組有有限組解。
據(jù)此產(chǎn)生如下算法:將x看成“已知數(shù)”,用可能的x值(50到1000間的正整數(shù))——代入試驗(yàn),若a、b、c、d、e均為正整數(shù),則這組數(shù)為方程組的解。由于
因此,只需判斷其中一個(gè)未知數(shù)為正整數(shù),即可確定其它未知數(shù)均為正整數(shù)。這里取a為待檢變量,故需找到x與a之間的關(guān)系,將方程化簡(jiǎn)為265x=721a
2 描述算法——找準(zhǔn)“算理”與“算則”的結(jié)合點(diǎn)
在構(gòu)思了算法之后,必須清楚準(zhǔn)確的將所設(shè)計(jì)的求解步驟記錄下來(lái),即描述算法,常用的描述算法的方法有自然語(yǔ)言,流程圖,程序設(shè)計(jì)語(yǔ)言和偽代碼等。自然語(yǔ)言通俗易懂,直接明了;流程圖直觀形象,能體現(xiàn)算法過(guò)程的結(jié)構(gòu)特征,但除了非常簡(jiǎn)單的算法外,這種描述方法使用起來(lái)非常不方便;偽代碼將各個(gè)流程圖的結(jié)構(gòu)用接近程序語(yǔ)言的算法語(yǔ)句表述,是介于自然語(yǔ)言和程序設(shè)計(jì)語(yǔ)言之間的算法,它采用某一程序設(shè)計(jì)語(yǔ)言的基本算法,操作指令可以結(jié)合自然語(yǔ)言設(shè)計(jì)。至于算法中自然語(yǔ)言成分的多少,取決于算法的抽象級(jí)別,抽象級(jí)別高的偽代碼自然語(yǔ)言多一些。它極小化了描述算法的不必要的技術(shù)環(huán)節(jié),是比較合適的描述算法的方法。
3 上機(jī)實(shí)踐——檢驗(yàn)算法的“試金石”
針對(duì)上面的算法過(guò)程,接下來(lái)必不可少的步驟就是上機(jī)檢驗(yàn),若發(fā)現(xiàn)問(wèn)題,可及時(shí)修改,指導(dǎo)運(yùn)行處正確結(jié)果。這樣不僅能夠驗(yàn)證程序的正確性,也能提高學(xué)生的實(shí)際操作能力,更深刻地感受算法的特點(diǎn),體會(huì)算法與計(jì)算機(jī)天然內(nèi)在的聯(lián)系。
《普通高中數(shù)學(xué)課程標(biāo)準(zhǔn)(實(shí)驗(yàn))》中指出:“本模塊中的算法內(nèi)容是將數(shù)學(xué)中的算法與計(jì)算機(jī)技術(shù)建立聯(lián)系,形式化地表示算法,在條件允許的學(xué)校,使其能在計(jì)算機(jī)上實(shí)現(xiàn)?!彼惴▽W(xué)習(xí)可以與計(jì)算機(jī)等信息技術(shù)課程很好的聯(lián)系在一起。同時(shí),通過(guò)計(jì)算機(jī)實(shí)現(xiàn)算法,解決數(shù)學(xué)問(wèn)題還可以讓學(xué)生看到算法的可行性,應(yīng)用性,激發(fā)學(xué)生學(xué)習(xí)算法的積極性。
參考文獻(xiàn):
[1] 蘇教版高中數(shù)學(xué)教材編寫(xiě)組.普通高中課程標(biāo)準(zhǔn)實(shí)驗(yàn)教科書(shū)(必修3)[M].南京:江蘇鳳凰教育出版社,2019.