陳新龍
找次品是一道經典的小學奧數題,通過“找次品”理解優化思想,培養推理能力,讓學生充分感受到數學與日常生活的緊密聯系,以往我們是通過畫圖、列表的形式來進行解答,現在我們要通過Scratch編程來完成解題,這需要對問題有清晰的認識,學會建立合適的數學模型。
找次品:7個零件中有一個次品(次品重一些),假如用天平稱重,至少稱幾次能保證找出次品呢?
稱重方法:(1)將7個零件分成3份(3,3,1),天平兩邊各放3個零件。如果天平平衡,則進行第(2)步,如果不平衡,則進行第(3)步。

(2)此時天平平衡,則次品一定是剩余的一個零件。一共稱了一次。
(3)如果天平不平衡,那么將重的一邊零件分成三份(1,1,1),任取兩個零件放在天平的兩邊,如果此時天平平衡,那么剩下的就是次品,如果天平不平衡,那么重的一邊就是次品。一共稱了兩次。
經過多次的實驗統計,“三分法”是“找次品”最佳方法,盡量將物體分成3份,如果遇到無法平分的,就讓其中一份比其他兩份多1或者少1,然后將數列最大的繼續分成三等份,直到最后分成了(1,1,1)或者(1,1)的結果,中間分了幾次,那么稱的次數就是幾次。
除了上面的作圖法我們還可以用列表法,計算出稱重的過程,當物品個數在1-3個時候,至少要稱重1次。當物品數量在4-9個的時候,至少稱重2次。當物品數量在10-27個的時候,至少稱重3次。根據規律我們可以推導出符合規律的數據模型:3a 1
編程思路:用戶通過鍵盤輸入物品的個數,系統自動判斷,找到符合數據模型的值,根據“三分法”將物品數量拆分三個數存在列表中,從列表中查找最大的值,繼續進行拆分,將新的值的結果覆蓋原來的結果,顯示在列表中,直到最后三個數的和小于或者等于3結束。


主程序用來控制所有的模塊運行,首先詢問輸入的產品總數,獲取產品數量,接下來利用我們數據模型公式創建一個函數模塊“3的冪次方”主要用來計算稱重次數,根據公式3
當收到廣播通知后,利用“三分法”的思路,將待測物品的數量不斷分成3個數,前兩個數四舍五入產品數量除以3,最后一個數利用數量總和減去前兩次的結果,計算出來的結果保存在列表中,根據解題思路,拆分做到最壞的打算,選擇列表中最多的物品數量,繼續進行拆分,直到最終的產品數量的值為1結束程序。
本次的實驗程序還是有一定難度的,很考驗數學邏輯思維能力,需要先進行推理和建立數學模型,然后根據數學模型完成編程模塊。