■內(nèi)蒙古通遼實驗中學(xué) 姬恩澤
作為《新課程標準》增加的新內(nèi)容,算法走進了中學(xué)數(shù)學(xué)。在中學(xué)數(shù)學(xué)課程的學(xué)習(xí)中,除了要讓同學(xué)們了解算法的基本含義和學(xué)習(xí)基本算法語句,更重要的是讓同學(xué)們體會和應(yīng)用算法思想。新課標不但要求同學(xué)們要掌握算法的基本知識,而且要求將算法思想貫穿到高中數(shù)學(xué)的始終。然而,在具體學(xué)習(xí)過程中,發(fā)現(xiàn)同學(xué)們對“算法”的學(xué)習(xí)重視不夠,對算法概念的認識不夠全面,對簡單的算法問題經(jīng)常出現(xiàn)各類錯誤,下面就舉例辨析在算法初步中常見的易錯點。
要點闡述:把一個n次多項式f(x)=anxn+an-1xn-1+…+a1x+a0改寫成如下形式:f(x)=(…((anx+an-1)x+an-2)x+…+a1)x+a0,求多項式的值時,首先計算最內(nèi)層括號內(nèi)一次多項式的值,即v0=an,然后由內(nèi)向外逐層計算一次多項式的值,即:
v1=v0x+an-1;
v2=v1x+an-2;
v3=v2x+an-3;
……
vn=vn-1x+a0。
這樣,求n次多項式f(x)的值就轉(zhuǎn)化為求n個一次多項式的值。
解題技巧:利用秦九韶算法計算多項式的值,關(guān)鍵是能正確地將所給多項式改寫,然后由內(nèi)到外逐次計算,由于后項計算需用到前項的結(jié)果,故應(yīng)認真、細心,確保中間結(jié)果的正確性。
典型例題1用秦九韶算法求f(x)=x5-5x4+x3-1當x=2時的值。
易錯點辨析:當n次多項式中出現(xiàn)空項時,要把系數(shù)為零的相應(yīng)項補齊,否則,在處理問題時,多項式的運算次數(shù)會達不到對應(yīng)的次數(shù),從而得出錯誤的結(jié)果。
正解:將f(x)改寫為f(x)=x5-5x4+x3+0×x2+0×x-1=((((x-5)x+1)x+0)x+0)x-1,由內(nèi)向外逐層計算一次多項式當x=2時的值,有:
v0=1;
v1=1×2-5=-3;
v2=(-3)×2+1=-5;
v3=(-5)×2+0=-10;
v4=(-10)×2+0=-20;
v5=(-20)×2-1=-41。
所以f(2)=-41。
要點闡述:輾轉(zhuǎn)相除法,又叫歐幾里得算法,是一種求兩個正整數(shù)的最大公約數(shù)的古老而有效的算法。而我國古代的更相減損術(shù)與輾轉(zhuǎn)相除法在本質(zhì)上是有區(qū)別的。
算法步驟:第一步,給定兩個正整數(shù)m,n(m>n)。
第二步,計算m除以n所得的余數(shù)r。
第三步,m=n,n=r。
第四步,若r=0,則m,n的最大公約數(shù)等于m;否則,返回第二步。
典型例題2用輾轉(zhuǎn)相除法求288與123的最大公約數(shù)。
易錯點辨析:輾轉(zhuǎn)相除法的最后一步中的除數(shù)是題目所給兩個正整數(shù)的最大公約數(shù)。輾轉(zhuǎn)相除法通過逐次輾轉(zhuǎn)相除,剩下的兩數(shù)越來越小,但并沒有改變它們的最大公約數(shù)。到最后的兩數(shù),大數(shù)能被小數(shù)整除,說明小數(shù)就是原來兩數(shù)的最大公約數(shù)。
正解:由輾轉(zhuǎn)相除法得:
288=123×2+42;
123=42×2+39;
42=39×1+3;
39=3×13。
故288與123的最大公約數(shù)是3。
歸納總結(jié):由除法的性質(zhì)知,對于任意兩個正整數(shù),上述除法步驟總可以在有限步之后完成,從而總可以用輾轉(zhuǎn)相除法求出它們的最大公約數(shù)。
要點闡述:《九章算術(shù)》是中國古代的數(shù)學(xué)專著,其中的“更相減損術(shù)”也可以用來求兩個數(shù)的最大公約數(shù),即“可半者半之,不可半者,副置分母、子之數(shù),以少減多,更相減損,求其等也。以等數(shù)約之”。最重要一點是若所給的整數(shù)都是偶數(shù),除以若干個2后,最后結(jié)果要乘以相同多個2。
解題步驟:第一步,任意給定兩個正整數(shù),判斷它們是否都是偶數(shù)。若都是偶數(shù),用2約簡;若不是,執(zhí)行第二步。
第二步,以較大的數(shù)減去較小的數(shù),接著把所得的差與較小的數(shù)比較,并以大數(shù)減小數(shù),繼續(xù)這個操作,直到所得的減數(shù)和差相等為止,則第一步中約掉的若干個2與第二步中等數(shù)的乘積就是所求的最大公約數(shù)。
典型例題3用更相減損術(shù)求兩個整數(shù)84與72的最大公約數(shù)。
易錯點辨析:本題所給的兩個整數(shù)84與72都是偶數(shù),除以4后,最后的結(jié)果要乘以4才是原題給的兩個整數(shù)的最大公約數(shù)。
正解:因為84=21×4,72=18×4,
所以21-18=3;
18-3=15;
15-3=12;
12-3=9;
9-3=6;
6-3=3。
所以21和18的最大公約數(shù)等于3。
所以84和72的最大公約數(shù)等于12。
要點闡述:對于程序框圖的客觀題,首先要理清所要實現(xiàn)的算法的結(jié)構(gòu)特點及流程規(guī)則,對于包含條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序框圖,要確定循環(huán)結(jié)構(gòu)的條件或找出循環(huán)次數(shù),然后確定是否能取得“=”。
規(guī)律方法:要注意循環(huán)條件、變量初值、循環(huán)體各語句之間的影響。
(1)注意各個語句順序不同對結(jié)果的影響;
(2)注意各個變量初始值不同對結(jié)果的影響;
(3)要對循環(huán)開始和結(jié)束的變量及結(jié)束時變量的值認真檢驗,以免出現(xiàn)多循環(huán)或漏循環(huán)。
典型例題4(河北省衡水中學(xué)2020屆高三衛(wèi)冕聯(lián)考理科數(shù)學(xué)8)執(zhí)行如圖1所示的程序框圖,則輸出S的結(jié)果為( )。
圖1
易錯點辨析:對于包含條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序框圖,當循環(huán)次數(shù)過多時,尤其注意執(zhí)行最后一次循環(huán)語句時,要對循環(huán)結(jié)束時變量的值認真檢驗,以免出現(xiàn)多循環(huán)或漏循環(huán)。本題當n=2019時執(zhí)行最后一次循環(huán),進入循環(huán)體后,應(yīng)先執(zhí)行語句n=n+1,計算出n=2020,然后計算出,所以S=S+a=S+。
正解:當n=2019時執(zhí)行最后一次循環(huán),進入循環(huán)體,應(yīng)先執(zhí)行語句n=n+1,得n=2020,所以故選C。