柯西平均值定理作為已經(jīng)被證明的數(shù)學難題,在高中數(shù)學中就有應用。它又叫柯西不等式,也稱為柯西均值定理,一般表述為:n個正數(shù)的幾何平均值不大于這些數(shù)的算術(shù)平均值。
設有n個非負實數(shù)X1,X2,X3……Xn,則有
今天我們用Python、Scratch和APPInventor來做簡單驗證。
在Python學習中,解決數(shù)學問題可以幫助我們顯著提高學習效果。近幾期我們一直在分享研究歷史數(shù)學難題的收獲,希望對大家有所幫助。
定理內(nèi)容比較簡單,就是需要計算算術(shù)平均值和幾何平均值。算術(shù)平均值,就是n個正數(shù)的和除以n得到的結(jié)果。幾何平均值,是n個正數(shù)的積,開n次方得到的結(jié)果。
讓程序先產(chǎn)生n個隨機數(shù),再計算兩個平均值,最后進行比較即可。
但隨機數(shù)如果都是正整數(shù),驗證結(jié)果受限,還要用小數(shù)來驗證。為了產(chǎn)生n位的小數(shù),將范圍擴大10n倍,產(chǎn)生隨機數(shù)后,再縮小10n倍,這樣便可用整數(shù)和小數(shù)來驗證。
在實際運行過程中,卻出現(xiàn)了一個問題。那就是小數(shù)位數(shù)有上限,三種語言都出現(xiàn)了這種情況,比如Python就是17位有效數(shù)字。所以在程序中都需要根據(jù)語言環(huán)境進行相應的處理。
本例涉及等級考試二級內(nèi)容。通過鍵盤輸入范圍、數(shù)據(jù)個數(shù)和小數(shù)位數(shù)后,首先做范圍處理,如果范圍的位數(shù)和小數(shù)位數(shù)的和超出17位,則不做驗證(圖1)。
然后隨機生成n個數(shù)p位小數(shù),添加到列表中,再計算算術(shù)平均值和幾何平均值。最后做比較,輸出結(jié)果。
程序不是很難,主要是用到了兩個函數(shù)。一個是random庫中的randint()函數(shù)產(chǎn)生一定范圍內(nèi)的隨機整數(shù),還有一個是pow(x,y)函數(shù),是求x 的y次方,我這們這里利用這個函數(shù)做開n次方運算,即y值在(0,1)之間的值為開方運算,比如pow(2,1/2),即是求2的平方根。
1.首先初始化,鍵盤輸入范圍、個數(shù)和小數(shù)位數(shù)(圖2)
同時清空數(shù)據(jù)列表,將4個變量初始化。
2.產(chǎn)生n個隨機數(shù)并計算
循環(huán)“個數(shù)”次,產(chǎn)生的n個隨機數(shù),進行加法和乘法運算,保存在變量中,同時將數(shù)據(jù)添加到列表中,以備查看(圖3)。
3.求出幾何平均值和算術(shù)平均值
算術(shù)平均值就是用n個數(shù)的和除以n,得到的結(jié)果(圖4)。
幾何平均值是將n個數(shù)的積,開n次方根的結(jié)果。因為Scratch里沒有提供開n次方根的積木塊,這里利用了指數(shù)和對數(shù)的性質(zhì)。公式中n就是數(shù)據(jù)的個數(shù),“積”為保存n個數(shù)積的變量。
4.輸出結(jié)果
先判斷幾何平均值是不是超出范圍,再判斷小數(shù)位數(shù)和擴大范圍后的值,是不是超出范圍,如果都沒有超出范圍,則判斷幾何平均值是否小于或等于算術(shù)平均值,如果滿足條件,則說明柯西平均值定理成立,說:“柯西平均值定理成立”5秒,否則說“柯西平均值定理不成立”5秒(圖5、圖6)。
1.UI設計
界面設置參考APP運行結(jié)果。注意設置3個文本輸入框的提示信息。
2.變量與初始化
變量6個,功能如下。驗證數(shù)據(jù)列表,存儲隨機產(chǎn)生的驗證數(shù)據(jù)。隨機數(shù),即保存每次產(chǎn)生的隨機數(shù)。其他4個變量如名字(圖7)。