作為初二的學生,數學題總是令我苦惱的問題。尤其是我們這裡的預備班考試(即我們這裡最好的兩所高中提前一年招生,選拔尖子生的考試)將近,我所面對的數學題越發令人頭疼。
這不,麻煩來了:
如圖,在正方形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]的最小值嘛!這是一個求代數式最小值的問題。
可是……越看越不對勁。這個代數式是個分式,而我們常接觸的同類型題涉及的都只是整式。憑著我對六本初中數學書的印象,我不禁提出疑問:這真的是初中的內容嗎?書上似乎只字未提吧?
但是,本著埋頭苦干的老黃牛精神,我就在那裡毫無結果地和這道題目耗了幾個小時。最終,我放棄了。
但也許是夢裡來的靈感,第二天早上,我突然想到:何不通過一個Python程序來逐個列舉,從中選擇近似值呢?
於是,第一個程序出來了:
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。這樣,我們就可以求得最值了。
總體思路 : 數獨九行九列,一個list裝一行,也就需要一個嵌套兩層的list 初始會有很多數字,我可不想一個一個賦值 那就要想辦法偷懶啦 然後再是窮舉,如何科學的窮舉 第一部分:錄入 某在線數獨網站 ...
原文:https://blog.csdn.net/yunzifengqing/article/details/81941592 問題描述:有6名犯罪嫌疑人A.B.C.D.E.F,已知如下事實: A.B ...
前言 在上一篇文章[python進階]詳解元類及其應用1中,我們提到了關於元類的一些前置知識,介紹了類對象,動態創建類,使用type創建類,這一節我們將繼續接著上文來講~~~ 5.使⽤type創建帶有 ...
python collections模塊詳解 原文:http://www.cnblogs.com/dahu-daqing/p/7040490.html 1.模塊簡介 collections包含了一些特 ...
Python基於回溯法解決01背包問題實例 這篇文章主要介紹了Python基於回溯法解決01背包問題,結合實例形式分析了Python回溯法采用深度優先策略搜索解決01背包問題的相關操作技巧,需要的朋友 ...
python基礎——枚舉類 當我們需要定義常量時,一個辦法是用大寫變量通過整數來定義,例如月份: JAN = 1 FEB = 2 MAR = 3 ... NOV = 11 DEC = 12 好處是簡單 ...
Python 字符串方法詳解 本文最初發表於賴勇浩(戀花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙轉載,敬請保留全文完整,切勿去除本聲明和作者信息. ...
/*===================================== 完美立方 總時間限制: 1000ms 內存限制: 65536kB 描述 a的立方 = b的立方 + c的立方 + d的立 ...
快速查找素數 時間限制:1000 ms | 內存限制:65535 KB 難度:3 描述 現在給你一個正整數N,要你快速的找出在2.....N這些數裡面所有的素數. 輸入 給出一個正整數數N(N ...
python time模塊詳解 轉自:http://blog.csdn.net/kiki113/article/details/4033017 python 的內嵌time模板翻譯及說明 一.簡介 ...
眾所周知,Switch循環比if...else...循環效率要好的多,當case有相同代碼結構的時候,怎麼樣來簡化代碼結構,能讓代碼更具有通用性呢? 在網上找了一下,好多都是復制粘貼,還有的看起來太復 ...
BufferedImage img = removeBackgroud(file);//去除重影 //bufferedimage 轉換成 inputstream ByteArrayOutputStre ...
閱讀方法:將網頁放大到200%. 如果你用過用過word應該知道按住ctrl鍵使用鼠標滾輪縮放.
expr "text.sh" : ".*\.sh" &>/dev/null && echo "yes" ||e ...
when you install windows 7 OS, the system ask for you enter username and password, then you have not ...
private List<FMDS_FarmPlotNewInfo> GetSame(List<FMDS_FarmPlotNewInfo> lst) { List<FMD ...
恆生技術之眼 作者 林景忠 大家對於一個業務系統的運行關心有如下幾個方面:功能性.穩定性.效率.安全性.而一個系統的性能有包含了網絡性能.應用性能.中間件性能.數據庫性能等等. 今天從數據庫性能的角度 ...
由於公司項目的需要,改為WPF開發,因此需要學習WPF,遇到的第一個問題就是在顯示的圖片的時候,寫絕對路徑,圖片顯示沒有問題,但是寫相對路徑的時候,發現圖片無法正常顯示,在網上搜了一下,得到的答案是需 ...
一.卸載刪除 mysql 1 sudo apt-get autoremove --purge mysql-server-5.02 sudo apt-get remove mysql-server3 s ...
1 taskDelay taskDelay(n)使調用該函數的任務延時n個tick(內核時鐘周期).該任務在指定的時間內主動放棄CPU,除了taskDelay(0)專用 於任務調度(將CPU交 ...
2021 year 9 month Python Analy