<p class="ql-block">EXCEL是在電腦上做表格文件的工具。我們可以利用EXCEL附帶的計算功能,解決中小學奧數中常見的一些計算難題,比如一題有多解,需要大量計算的題,同類題的通解,等等。EXCEL計算要用到函數,你只需要會加減乘除,再要用哪項計算,可以用百度搜索對應的函數和用法,現學現賣就夠用,不需要熟知EXCEL所有的計算功能。</p><p class="ql-block">先看下面這道題:</p><p class="ql-block">有30個人,其中有男人、女人和小孩,他們在一家小飯館里共花了50先令;每個男人花3先令,每個女人2先令,每個小孩1先令;問男人、女人和小孩各有多少?(《馬克思數學手稿》)</p><p class="ql-block">這道題看起來不難,但符合條件的解太多,計算起來很麻煩。用EXCEL來解,很簡單。</p><p class="ql-block">設男人、女人、小孩數分別為x、y、z,列方程:</p><p class="ql-block">x+y+z=30</p><p class="ql-block">3x+2y+z=50</p><p class="ql-block">消元得到:</p><p class="ql-block">2x+y=20</p><p class="ql-block">接下來,在下面的EXCEL工作表中,我們在“x+y+z”下的A3單元格填入“30”,在“x的系數”下的B3單元格填入“2”,在“y的系數”下的C3單元格填入“1”,在“等式右邊”下的D3單元格填入“20”。</p> <p class="ql-block">自動計算的結果即時顯現:一共得到11組自然數解。</p><p class="ql-block">這是如何實現的呢?</p><p class="ql-block">我們從表中第6行第2列“x”之下的B6單元格起依次向下填入數字“0”、“1”、“2”、“3”、“4”……;</p><p class="ql-block">在第3列“y”之下的C6單元格輸入“=(d3-b6*b3)/c3”;</p><p class="ql-block">在第4列“z”之下的D6單元格輸入“=IF(c6=INT(c6),a3-b6-c6,“非正整數解””,換成普通話就是:“如果c6格中的數是整數,則d6格的數等于a3格中的30減去b6中的數再減去c6中的數;若不是整數,則在d6格中輸入“非整數解””。</p><p class="ql-block">實際效果就是,當x=1時,y=(20-2×1)÷1=18;z=30-1-18=11;</p><p class="ql-block">x=2時,……</p><p class="ql-block">上面輸入的函數式中使用了四則運算符號--“+”、“-”、“*”、“/”和“=”,邏輯函數“IF”,還有整數函數“INT”。</p><p class="ql-block">輸入第一行的函數后,下面各行函數可以通過向下填充得到,函數式中的“b6”依次自動換成“b7”、“b8”、“b9”、……。</p><p class="ql-block">現在我們有了一個解題模板,可以用來自動解同類型題。</p><p class="ql-block">如古代《算經》中的“百雞問題”:</p><p class="ql-block">雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一.百錢買百雞.問雞翁母雛各幾何?(譯:每一只公雞價值是5個錢,每一只母雞價值是3個錢,每三只小雞價值是1個錢,現有100個錢想買100只雞。問公雞,母雞和小雞各應買幾只?)</p><p class="ql-block">設公雞、母雞、小雞數分別為x、y、z,列方程:</p><p class="ql-block">x+y+z=100</p><p class="ql-block">5x+3y+1/3z=100</p><p class="ql-block">消元得到:</p><p class="ql-block">7x+4y=100</p><p class="ql-block">我們將模板中需要填入已知條件的四個單元格中的數字分別改為“100”、“7”、“4”、“100”,答案秒出,得到自然數解共4組,見下面的工作表:</p> <p class="ql-block">接著用EXCEL解題,換一種類型。</p><p class="ql-block">迎春杯小學數學競賽題:</p><p class="ql-block">在圖中七個小圓圈中各填入一個自然數,同時滿足以下要求:</p><p class="ql-block">(1)使所填的七個自然數的和是1997;</p><p class="ql-block">(2)使圖中給的每個數都是相鄰兩個○中所填數的差。</p> <p class="ql-block"> ○</p><p class="ql-block"> 7 1</p><p class="ql-block"> ○ ○</p><p class="ql-block"> 6 2</p><p class="ql-block"> ○ ○</p><p class="ql-block"> 5 3</p><p class="ql-block"> ○ 4 ○</p><p class="ql-block"> </p> <p class="ql-block">設最上面圓圈內的數為x,其它六個數大于或小于x的那部分數值之和為y,列出等式:</p><p class="ql-block">7x+y=1997</p><p class="ql-block">上式中,求出y值即可得出x值。</p><p class="ql-block">y值是x之外的六個數各自與x的差的總和,因此首先要確定這六個數各自與x的差。七個數中,第一個是x,它和第七個數相差7,即第七個數與第一個數的差是±7。于是有下面這個等式,需要在等式左邊的每個數字之間加入加減號,使等式成立。</p><p class="ql-block">1 2 3 4 5 6=±7</p><p class="ql-block">一共有八種加減號的添加方式,形成八種相鄰差的組合,相鄰差還要轉換成對x的增減值,其和即y值。如此,得到七個不同的y值。</p><p class="ql-block"><span style="font-size:18px;">在1 2 3 4 5 6=7的等式中填入加減號,有以下四種組合:</span></p><p class="ql-block">組合1:1+2-3-4+5+6</p><p class="ql-block">轉換成y值:1+3+0-4+1+7=8</p><p class="ql-block">組合2:1-2+3+4-5+6</p><p class="ql-block">轉換成y值:1-1+2+6+1+7=16</p><p class="ql-block">組合3:1-2-3-4-5+6</p><p class="ql-block">轉換成y值:1-1-4-8-13-7=-32</p><p class="ql-block">組合4:-1+2+3+4+5-6</p><p class="ql-block">轉換成y值:-1+1+4+8+13+7=32</p><p class="ql-block"><span style="font-size:18px;">在1 2 3 4 5 6=-7的等式中填入加減號,也有四種組合:</span></p><p class="ql-block">組合5:-1+2-3-4+5-6</p><p class="ql-block">轉換成y值:-1+1-2-6-1-7=-16</p><p class="ql-block">組合6:-1-2+3+4-5-6</p><p class="ql-block">轉換成y值:-1-3+0+4-1-7=-8</p><p class="ql-block">組合7:-1-2+3-4+5+6</p><p class="ql-block">轉換成y值:-1-3+0-4+1+7=0</p><p class="ql-block">組合8:1+2-3+4-5-6</p><p class="ql-block">轉換成y值:1+3+0+4-1-7=0</p><p class="ql-block">本題給出的總數是1997,我們從上面的組合中找到符合題意的y=16(1997-16能被7整除)。由y=16,計算出x=283。其它六數的值可通過組合2中各數對x的增減值(1-1+2+6+1+7)計算出來。</p><p class="ql-block">整個做題過程很繁瑣:先要找到所有的加減符號添加方式,一一轉換成y值,并從所有y值中挑選出滿足題意的y值,再由y值計算出x值,最后通過符合條件的添加方式計算出其它六個數的值。</p><p class="ql-block">下次再遇到這種題時,比如把總數改為8995,其它條件不變。解題的時候,你不可能記住上面所有的加減符號添加方式和y值,你仍然要重復上面的步驟,花費一樣多的時間。</p><p class="ql-block">下面,我們利用總數除以7的余數、相鄰差的加減與y值之間的相互關系,用EXCEL建立一個計算模板。輸入總數,秒出答案。</p><p class="ql-block">實際計算見下表:</p> <p class="ql-block">我們在”總數”下的B5單元格中輸入數字8995,MOD函數在”余數”下的C5單元格中計算出該數除以7余數為0,用IFS函數確定余數0對應的y值(D5單元格)也為0,并在”x”下的E5單元格中用算術函數自動算出x的值1285。</p><p class="ql-block">注:D5單元格中輸入的函數公式:</p><p class="ql-block">=IFS(C5=1,8,C5=2,16,C5=3,-32,C5=4,32,C5=5,-16,C5=6,-8,C5=0,0),意思是,如果表示余數的C5單元格中的數字為0-6之一時,則本單元格D5中填入該余數所對應的y值,例如,余數是1,則y值是8。</p><p class="ql-block">在接下來的第8-15行的列表中,0-6的七個余數對應著八種加減關系,即八種計算模式。EXCEL的IF函數從中找到余數為0的兩種計算模式,并在所在行的B列單元格中自動填入x的值,在C-H列的單元格中根據對應的計算模式計算出后六個數,如此得到七個數的兩組解。</p><p class="ql-block">注:B列中從上至下8個單元格,以第7個單元格為例,該單元格內輸入的函數公式是:=IF(C5=A12,E5),意思是,如果C5單元格的數值等于A12單元格的數值,則本單元格(B12)的數值等于E5單元格x的數值。</p><p class="ql-block">換一個數,比如總數改為998877,答案亦秒出,見下表:</p> <p class="ql-block">(注:為避免七個得數中出現負數,隨機輸入的數字應大于66。)</p><p class="ql-block">繼續用EXCEL解題。</p><p class="ql-block">韓信點兵是中小學數學競賽中常見的一類題,例如,一隊士兵,三個三個一排多兩個,五個五個一排多三個,七個七個一排多兩個,問至少有多少士兵?</p><p class="ql-block">這類題屬于同余問題,通解用公式法。上題中,幾個幾個一排就是除以幾,幾個是除數(數學術語稱之為“模數”),多幾是余數。</p><p class="ql-block">選一道古書中除數(模)多的題:二數余一,五數余二,七數余三,九數余五,問本數。(楊輝:《續古摘奇算法》)</p><p class="ql-block">上題中,“二數”是“兩個兩個一數”的意思。“數”之前的數字二、五、七、九分別是模1(m1)、模2(m2)、模3(m3)、模4(m4)的值,“余”之后的數字一、二、三、五分別是余數1(b1)、余數2(b2)、余數3(b3)、余數4(b4)的值。由于是用EXCEL解題,要適用所有情形,無法使用奧數中的各種靈活解法,而是采用公式法。</p><p class="ql-block">設本數為x,通解公式是:</p><p class="ql-block">x=模2×模3×模4×乘率1×余數1+模1×模3×模4×乘率2×余數2+模1×模2×模4×乘率3×余數3+模1×模2×模3×乘率4×余數4。</p><p class="ql-block">公式看上去很復雜,實際上是由四個相似的乘式相加組成,每一個乘式都是由四個模數中的三個模數相乘,再與乘率以及余數相乘。</p><p class="ql-block">乘率不是已知條件,需要計算出來。當四個模數中的三個模數相乘的積除以另一個模數,余數不是1時,需要再乘以一個數,使它們的積再除時余數為1,再乘的這個數就是乘率。以乘率4為例:模1、模2、模3相乘等于70,70除以9(模4),余數為7,不是1。7再乘4等于28,28除以9余1,倒推出乘率4的值是4。乘率1、乘率2、乘率3的確定以此類推。</p><p class="ql-block">公式中不同的三個模數相乘的乘積,分別用M1、M2、M3、M4表示,M是四個模數的乘積。乘率1至4,分別用M'1、M'2、M'3、M'4表示。</p><p class="ql-block">計算過程見下面的工作表:</p> <p class="ql-block">本題已知條件共有八個數字,模數2、5、7、9,余數1、2、3、5,分別填入上表中第3行的八個單元格中。第7行中是自動計算出的M、M1、M2、M3、M4的值。</p><p class="ql-block">表中第23行以下,第一列A列(試數)從1往下依次加1;</p><p class="ql-block">第二列B列,計算出試數乘以M1再除以m1的余數,此處(B23單元格)輸入:=MOD(A23*A10,A4);</p><p class="ql-block">第三列C列,當第二列的得數為1時,同一行第一列的試數就是乘率1(M'1),此處(C23單元格)輸入:=FILTER(A23:A43,B23:B43=1),意思是說,B23到B43范圍中的數等于1,則此單元格內的數等于A23到A43范圍中相對應的數,即乘率1。</p><p class="ql-block">用同樣的方法在第五列E列得到乘率2,第七列G列得到乘率3,第九列I列得到乘率4。</p><p class="ql-block">乘率1至4的值,我們只取第一行的數,自動填入第13行的四個單元格中。在F16單元格中按照通解公式用算術函數計算出x的一個值;在G16中用MOD函數計算出x的最小值。第19行顯示x的所有解,即437、437+630、437+630×2、437+630×3 ………。</p><p class="ql-block">再用EXCEL計算下面這道有五個除數(模數)的余數題。</p><p class="ql-block">今有數不知總,以5累減之剩3,以715累減之剩538,以247累減之剩174,以391累減之剩109,以187累減之也剩109,問總數若干。(黃宗憲:《求一術通解》)</p><p class="ql-block">解同余式組,要求模數兩兩互質,即任意兩個模數中均不得含有除了1之外的共同因數。上題不符合兩兩互質的要求,需要轉化為兩兩互質并與原式有相同解的形式。</p><p class="ql-block">上題原式:</p><p class="ql-block">X≡3 (mod 5)</p><p class="ql-block">X≡538 (mod 5×11×13)</p><p class="ql-block">X≡174 (mod 13×19)</p><p class="ql-block">X=109 (mod 17×23)</p><p class="ql-block">X≡109 (mod 11×17)</p><p class="ql-block">轉換為兩兩互質的形式:</p><p class="ql-block">X≡3 (mod 5)</p><p class="ql-block">X≡109 (mod 11×13)</p><p class="ql-block">X≡3 (mod 19)</p><p class="ql-block">X≡17 (mod 23)</p><p class="ql-block">X≡7 (mod 17)</p><p class="ql-block">”≡”是同余符號。“X≡3 (mod 5)”表示X與3同除以5有相同的余數3。</p><p class="ql-block">轉換后新的同余式組,用現代文字描述為:自然數x,除以5余1,除以143余109,除以19余3,除以23余17,除以17余7,求x。</p><p class="ql-block">自動計算結果見下表:</p> <p class="ql-block">上表第4行逐一輸入模1-模5和余數1-余數5的值。</p><p class="ql-block">其中乘率2的計算,計算量較大。用M2除以m2,即37145除以143,得到余數108。用108乘以一個數,使乘積除以143余1,經過從1試算到49才得到M'2的值。由于是自動計算,計算步驟再多也感覺不出來。</p><p class="ql-block">上面的EXCEL模板,解鎖了這一類同余式方程組的所有題解。需要注意的是,此類題要求模數(除數)兩兩互質,滿足這個條件才能用上面的模板自動計算。</p><p class="ql-block">為什么要用EXCEL做題?</p><p class="ql-block">計算器是計算工具,普及了計算器之后,筆算和珠算就淡出了。而EXCEL就像一個超級計算器,用了它,計算器就多余了。經常有考試禁止帶計算器入場,小學應用題不讓用方程解題的規定,這些限制毫無意義。數學是用來解決問題的,解決問題不應當限制工具的使用。</p>
主站蜘蛛池模板:
白水县|
琼中|
肥乡县|
阿荣旗|
当阳市|
湖北省|
司法|
克山县|
丹寨县|
巴林右旗|
光山县|
改则县|
静海县|
泰州市|
蓬溪县|
江达县|
磴口县|
阿图什市|
漠河县|
泗洪县|
临安市|
诏安县|
中山市|
留坝县|
子长县|
肇庆市|
尉犁县|
昭苏县|
涟水县|
那坡县|
阳山县|
建昌县|
方城县|
新宁县|
茌平县|
临海市|
镇原县|
固安县|
临高县|
大余县|
大方县|