作为一名初二的学生,数学问题总是困扰着我。尤其是随着我们预科考试(也就是我们两所最好的高中提前一年招生和挑选尖子生的考试)的临近,我面临的数学问题变得越来越麻烦。
[En]
As a student in the second year of junior high school, math problems always bother me. Especially as our preparatory class exam (that is, the exam for recruiting students in two of our best high schools one year in advance and selecting top students) is approaching, the math problems I face are becoming more and more troublesome.
这不,麻烦来了:
如图,在正方形ABCD中,E在射线BC上,连接AE、CE,则DE/AE的最小值为__.
拿到这题,信心满满的我从容淡定地设AB:CE为1:x,即AB=k,CE=xk,于是原式(设为y)=[k^2+(xk)^2]^0.5/[k^2+(k+xk)^2]^0.5(这里的”^”代表乘方)。这不就只要求[k^2+(xk)^2]/[k^2+(k+xk)^2]的最小值嘛!这是一个求代数式最小值的问题。
可是……越看越不对劲。这个代数式是个分式,而我们常接触的同类型题涉及的都只是整式。凭着我对六本初中数学书的印象,我不禁提出疑问:这真的是初中的内容吗?书上似乎只字未提吧?
然而,本着一个辛勤工作的老黄牛的精神,我花了几个小时在这个问题上毫无结果。最后,我放弃了。
[En]
However, in the spirit of an old scalper who worked hard, I spent hours there fruitlessly on the subject. Finally, I gave up.
但也许是梦里来的灵感,第二天早上,我突然想到:何不通过一个Python程序来逐个列举,从中选择近似值呢?
于是第一个节目问世了:
[En]
So the first program came out:
k=1
answer=100
myx=0
for x in range(10):
y=(k**2+(x*k)**2)**0.5/(k**2+(k+x*k)**2)**0.5
if y<answer:
answer=y
myx=x
print(answer,myx)
输出结果:
0.6324555320336759 1
唉,怎么越看越不对劲?
最后,我终于发现问题的所在:像这样遍历x,它的值都是整数,而事实上最小的y所对应的x不一定是整数。
那好,我们改:
k=1
answer=100
myx=0
for x in range(10000):
x=x/1000
y=(k**2+(x*k)**2)**0.5/(k**2+(k+x*k)**2)**0.5
if y<answer:
answer=y
myx=x
print(answer,myx)
输出:
0.6180339889095493 0.618
这个总没有问题了吧?还是有问题。你怎么能确定x的区间?
这个问题看似很致命,但并非完全不可解。我们可以大致推断,y的变化趋势应该是先下降后上升或先上升后下降(这个推理对我来说是本能的,以至于我自己都无法详细解释过程,但确实可以推理得到这个结论),而既然是求最小值,那自然是前者。因此,由于x从o.618到1是在增加,所以x一定在0.618或其以下,而这些数显然我们已经遍历到了(至少在某个精度上)。接下来,我们所需要的只是提高精度,以此来得到更接近真实值的结果,并凭借它猜测正确答案。
最终,在较高的精度下(程序与前面大致相同,只是加大了遍历的数值与x缩小的倍数,在此不列出),我们得到结果:
0.6180339887498948 0.618034
我们都知道,黄金分割比的小数点后前65位等于0.6180339887498948482045868343656381177203091798057628621354486227,这个数的前面几位和我们遍历的结果完全吻合。我们有理由相信,答案是黄金分割比(5^0.5-1)/2。于是,我们完美地用Python解决了这个问题。
当然,后来我们老师为我们讲解了这题不需要程序的解决方法:设法将式子中未知部分化为x+a/x的形式,这个式子永远不会小于2a^0.5。这样,我们就可以求得最值了。
Original: https://www.cnblogs.com/godforever/p/16428461.html
Author: GodForever
Title: Python之枚举法解数学题
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/499175/
转载文章受原作者版权保护。转载请注明原作者出处!