趣味数学
2021-09-13
柯西平均值定理作为已经被证明的数学难题,在高中数学中就有应用。它又叫柯西不等式,也称为柯西均值定理,一般表述为:n个正数的几何平均值不大于这些数的算术平均值。
设有n个非负实数X1,X2,X3……Xn,则有
今天我们用Python、Scratch和APPInventor来做简单验证。
一、创意来源
在Python学习中,解决数学问题可以帮助我们显著提高学习效果。近几期我们一直在分享研究历史数学难题的收获,希望对大家有所帮助。
二、设计思路
定理内容比较简单,就是需要计算算术平均值和几何平均值。算术平均值,就是n个正数的和除以n得到的结果。几何平均值,是n个正数的积,开n次方得到的结果。
让程序先产生n个随机数,再计算两个平均值,最后进行比较即可。
但随机数如果都是正整数,验证结果受限,还要用小数来验证。为了产生n位的小数,将范围扩大10n倍,产生随机数后,再缩小10n倍,这样便可用整数和小数来验证。
在实际运行过程中,却出现了一个问题。那就是小数位数有上限,三种语言都出现了这种情况,比如Python就是17位有效数字。所以在程序中都需要根据语言环境进行相应的处理。
三、程序设计过程
(一)Python程序设计
本例涉及等级考试二级内容。通过键盘输入范围、数据个数和小数位数后,首先做范围处理,如果范围的位数和小数位数的和超出17位,则不做验证(图1)。
然后随机生成n个数p位小数,添加到列表中,再计算算术平均值和几何平均值。最后做比较,输出结果。
程序不是很难,主要是用到了两个函数。一个是random库中的randint()函数产生一定范围内的随机整数,还有一个是pow(x,y)函数,是求x 的y次方,我这们这里利用这个函数做开n次方运算,即y值在(0,1)之间的值为开方运算,比如pow(2,1/2),即是求2的平方根。
(二)Scratch程序设计
1.首先初始化,键盘输入范围、个数和小数位数(图2)
同时清空数据列表,将4个变量初始化。
2.产生n个随机数并计算
循环“个数”次,产生的n个随机数,进行加法和乘法运算,保存在变量中,同时将数据添加到列表中,以备查看(图3)。
3.求出几何平均值和算术平均值
算术平均值就是用n个数的和除以n,得到的结果(图4)。
几何平均值是将n个数的积,开n次方根的结果。因为Scratch里没有提供开n次方根的积木块,这里利用了指数和对数的性质。公式中n就是数据的个数,“积”为保存n个数积的变量。
4.输出结果
先判断几何平均值是不是超出范围,再判断小数位数和扩大范围后的值,是不是超出范围,如果都没有超出范围,则判断几何平均值是否小于或等于算术平均值,如果满足条件,则说明柯西平均值定理成立,说:“柯西平均值定理成立”5秒,否则说“柯西平均值定理不成立”5秒(图5、图6)。
(三)APPInventor程序設计
1.UI设计
界面设置参考APP运行结果。注意设置3个文本输入框的提示信息。
2.变量与初始化
变量6个,功能如下。验证数据列表,存储随机产生的验证数据。随机数,即保存每次产生的随机数。其他4个变量如名字(图7)。