最貴的演算法
A. 貪心演算法及其應用
求解一個問題時有多個步驟,每個步驟都選擇當下最優的那個解,而不用考慮整體的最優解。通常,當我們面對的問題擁有以下特點的時候,就可以考慮使用貪心演算法。
比如,我們舉個例子,倉庫裡面總共有五種豆子,其對應的重量和總價值如下,現在我們有一個可以裝100KG重量的袋子,怎麼裝才能使得袋子中的豆子價值最大?
我們首先看看這個問題是否符合貪心演算法的使用場景?限制值是袋子100KG,期望值是袋子裡面的價值最高。所以是符合的。那麼我們嘗試著應用下貪心演算法的方法,每一個步驟都尋找當下的最優解,怎麼做呢?
把倉庫裡面的每種豆子價值除以重量,得出每種豆子的單價,那麼當下的最優解,肯定是盡可能最多地裝單價最貴的,也就是先把20KG的黃豆都裝上,然後再把30KG的綠豆都裝上,再裝50KG的紅豆,那麼此時正好裝滿袋子,總價值將是270元,這就是通過貪心演算法求解的答案。
貪心演算法的應用在這個問題上的求解是否是最優解需要一個很復雜的數學論證,我們不用那樣,只要心裡舉幾個例子,驗證下是否比它更好即可,如果舉不出例子,那麼就可以認為這就是最優解了。
雖然貪心演算法雖然在大部分實踐場景中都能得到最優解,但是並不能保證一定是最優解。比如在如下的有向帶權圖中尋找從S到T的最短路徑,那麼答案肯定就是S->A->E->T,總代價為1+4+4=9;
然而,實際上的最短路徑是S->B->D->T,總代價為6。
所以,不能所有這類問題都迷信貪心演算法的求解,但其作為一種演算法指導思想,還是很值得學習的。
除了以上袋子裝豆子的問題之外,還有很多應用場景。這種問題能否使用貪心演算法來解決的關鍵是你能否將問題轉換為貪心演算法適用的問題,即找到問題的限制值和期望值。
我們有m個糖果要分給n個孩子,n大於m,註定有的孩子不能分到糖果。其中,每個糖果的大小都不同,分別為S1,S2,S3...,Sm,每個孩子對糖果的需求也是不同的,為N1,N2,N3...,Nn,那麼我們如何分糖果,才能盡可能滿足最多數量孩子的需求?
這個問題中,限制值是糖果的數量m,期望值滿足最多的孩子需求。對於每個孩子,能用小的糖果滿足其需求,就不要用大的,避免浪費。所以我們可以給所有孩子的需求排個序,從需求最小的孩子開始,用剛好能滿足他的糖果來分給他,以此來分完所有的糖果。
我們有1元、5元、10元、20元、50元、100元紙幣各C1、C5、C10、C20、C50、C100張,現在要購買一個價值K元的東西,請問怎麼才能適用最少的紙幣?
這個問題應該不難,限制值是各個紙幣的張數,期望值是適用最少的紙幣。那麼我們就先用面值最大的100元去付錢,當再加一張100元就超過K時,就更換小面額的,直至正好為K元。
對於n個區間[L1,R1],[L2,R2]...[Ln,Rn],我們怎麼從中選出盡可能多的區間,使它們不相交?
我們需要把這個問題轉換為符合貪心演算法特點的問題,假設這么多區間的最左端點是Lmin,最右端點是Rmax,那麼問題就是在[Lmin,Rmax]中,選擇盡可能多的區間往裡面塞,並且保證它們不相交。這里,限制值就是區間[Lmin,Rmax],期望值就是盡可能多的區間。
我們的解決辦法就是每次從區間中選擇那種左端點>=已經覆蓋區間右邊端點的,且該區間右端點盡可能高小的。如此,我們可以讓未覆蓋區間盡可能地大,才能保證可以塞進去盡可能多的區間。
貪心演算法最重要的就是學會如何將要解決的問題抽象成適合貪心演算法特點的模型,找到限制條件和期望值,只要做好這一步,接下來的就比較簡單了。在平時我們不用刻意去記,多多練習類似的問題才是最有效的學習方法。
B. 黃金分割是什麼
黃金分割點約等於0.618:1
是指分一線段為兩部分,使得原來線段的長跟較長的那部分的比為黃金分割的點。線段上有兩個這樣的點。
利用線段上的兩黃金分割點,可作出正五角星,正五邊形。
2000多年前,古希臘雅典學派的第三大算學家歐道克薩斯首先提出黃金分割。所謂黃金分割,指的是把長為L的線段分為兩部分,使其中一部分對於全部之比,等於另一部分對於該部分之比。而計算黃金分割最簡單的方法,是計算斐波契數列1,1,2,3,5,8,13,21,...後二數之比2/3,3/5,4/8,8/13,13/21,...近似值的。
黃金分割在文藝復興前後,經過阿拉伯人傳入歐洲,受到了歐洲人的歡迎,他們稱之為"金法",17世紀歐洲的一位數學家,甚至稱它為"各種演算法中最可寶貴的演算法"。這種演算法在印度稱之為"三率法"或"三數法則",也就是我們現在常說的比例方法。
其實有關"黃金分割",我國也有記載。雖然沒有古希臘的早,但它是我國古代數學家獨立創造的,後來傳入了印度。經考證。歐洲的比例演算法是源於我國而經過印度由阿拉伯傳入歐洲的,而不是直接從古希臘傳入的。
因為它在造型藝術中具有美學價值,在工藝美術和日用品的長寬設計中,採用這一比值能夠引起人們的美感,在實際生活中的應用也非常廣泛,建築物中某些線段的比就科學採用了黃金分割,舞台上的報幕員並不是站在舞台的正中央,而是偏在台上一側,以站在舞台長度的黃金分割點的位置最美觀,聲音傳播的最好。就連植物界也有採用黃金分割的地方,如果從一棵嫩枝的頂端向下看,就會看到葉子是按照黃金分割的規律排列著的。在很多科學實驗中,選取方案常用一種0.618法,即優選法,它可以使我們合理地安排較少的試驗次數找到合理的西方和合適的工藝條件。正因為它在建築、文藝、工農業生產和科學實驗中有著廣泛而重要的應用,所以人們才珍貴地稱它為"黃金分割"。
把一條線段分割為兩部分,使其中一部分與全長之比等於另一部分與這部分之比。其比值是一個無理數,取其前三位數字的近似值是0.618。由於按此比例設計的造型十分美麗,因此稱為黃金分割,也稱為中外比。這是一個十分有趣的數字,我們以0.618來近似,通過簡單的計算就可以發現:
1/0.618=1.618
(1-0.618)/0.618=0.618
這個數值的作用不僅僅體現在諸如繪畫、雕塑、音樂、建築等藝術領域,而且在管理、工程設計等方面也有著不可忽視的作用。
讓我們首先從一個數列開始,它的前面幾個數是:1、1、2、3、5、8、13、21、34、55、89、144…..這個數列的名字叫做"菲波那契數列",這些數被稱為"菲波那契數"。特點是即除前兩個數(數值為1)之外,每個數都是它前面兩個數之和。
菲波那契數列與黃金分割有什麼關系呢?經研究發現,相鄰兩個菲波那契數的比值是隨序號的增加而逐漸趨於黃金分割比的。即f(n)/f(n-1)-→0.618…。由於菲波那契數都是整數,兩個整數相除之商是有理數,所以只是逐漸逼近黃金分割比這個無理數。但是當我們繼續計算出後面更大的菲波那契數時,就會發現相鄰兩數之比確實是非常接近黃金分割比的。
一個很能說明問題的例子是五角星/正五邊形。五角星是非常美麗的,我們的國旗上就有五顆,還有不少國家的國旗也用五角星,這是為什麼?因為在五角星中可以找到的所有線段之間的長度關系都是符合黃金分割比的。正五邊形對角線連滿後出現的所有三角形,都是黃金分割三角形。
由於五角星的頂角是36度,這樣也可以得出黃金分割的數值為2Sin18
利用線段上的兩黃金分割點,可作出正五角星,正五邊形。
2000多年前,古希臘雅典學派的第三大算學家歐道克薩斯首先提出黃金分割。所謂黃金分割,指的是把長為L的線段分為兩部分,使其中一部分對於全部之比,等於另一部分對於該部分之比。而計算黃金分割最簡單的方法,是計算斐波契數列1,1,2,3,5,8,13,21,...後二數之比2/3,3/5,4/8,8/13,13/21,...近似值的。
黃金分割在文藝復興前後,經過阿拉伯人傳入歐洲,受到了歐洲人的歡迎,他們稱之為"金法",17世紀歐洲的一位數學家,甚至稱它為"各種演算法中最可寶貴的演算法"。這種演算法在印度稱之為"三率法"或"三數法則",也就是我們現在常說的比例方法。
其實有關"黃金分割",我國也有記載。雖然沒有古希臘的早,但它是我國古代數學家獨立創造的,後來傳入了印度。經考證。歐洲的比例演算法是源於我國而經過印度由阿拉伯傳入歐洲的,而不是直接從古希臘傳入的。
因為它在造型藝術中具有美學價值,在工藝美術和日用品的長寬設計中,採用這一比值能夠引起人們的美感,在實際生活中的應用也非常廣泛,建築物中某些線段的比就科學採用了黃金分割,舞台上的報幕員並不是站在舞台的正中央,而是偏在台上一側,以站在舞台長度的黃金分割點的位置最美觀,聲音傳播的最好。就連植物界也有採用黃金分割的地方,如果從一棵嫩枝的頂端向下看,就會看到葉子是按照黃金分割的規律排列著的。在很多科學實驗中,選取方案常用一種0.618法,即優選法,它可以使我們合理地安排較少的試驗次數找到合理的西方和合適的工藝條件。正因為它在建築、文藝、工農業生產和科學實驗中有著廣泛而重要的應用,所以人們才珍貴地稱它為"黃金分割"。
黃金分割〔Golden Section〕是一種數學上的比例關系。黃金分割具有嚴格的比例性、藝術性、和諧性,蘊藏著豐富的美學價值。應用時一般取1.618 ,就像圓周率在應用時取3.14一樣。
發現歷史
由於公元前6世紀古希臘的畢達哥拉斯學派研究過正五邊形和正十邊形的作圖,因此現代數學家們推斷當時畢達哥拉斯學派已經觸及甚至掌握了黃金分割。
公元前4世紀,古希臘數學家歐多克索斯第一個系統研究了這一問題,並建立起比例理論。
公元前300年前後歐幾里得撰寫《幾何原本》時吸收了歐多克索斯的研究成果,進一步系統論述了黃金分割,成為最早的有關黃金分割的論著。
中世紀後,黃金分割被披上神秘的外衣,義大利數家帕喬利稱中末比為神聖比例,並專門為此著書立說。德國天文學家開普勒稱黃金分割為神聖分割。
到19世紀黃金分割這一名稱才逐漸通行。黃金分割數有許多有趣的性質,人類對它的實際應用也很廣泛。最著名的例子是優選學中的黃金分割法或0.618法,是由美國數學家基弗於1953年首先提出的,70年代在中國推廣。
|..........a...........|
+-------------+--------+ -
| | | .
| | | .
| B | A | b
| | | .
| | | .
| | | .
+-------------+--------+ -
|......b......|..a-b...|
通常用希臘字母 表示這個值。
黃金分割奇妙之處,在於其比例與其倒數是一樣的。例如:1.618的倒數是0.618,而1.618:1與1:0.618是一樣的。
確切值為根號5+1/2
黃金分割數是無理數,前面的1024位為:
1.6180339887 4989484820 4586834365 6381177203 0917980576
2862135448 6227052604 6281890244 9707207204 1893911374
8475408807 5386891752 1266338622 2353693179 3180060766
7263544333 8908659593 9582905638 3226613199 2829026788
0675208766 8925017116 9620703222 1043216269 5486262963
1361443814 9758701220 3408058879 5445474924 6185695364
8644492410 4432077134 4947049565 8467885098 7433944221
2544877066 4780915884 6074998871 2400765217 0575179788
3416625624 9407589069 7040002812 1042762177 1117778053
1531714101 1704666599 1466979873 1761356006 7087480710
1317952368 9427521948 4353056783 0022878569 9782977834
7845878228 9110976250 0302696156 1700250464 3382437764
8610283831 2683303724 2926752631 392473 1671112115
8818638513 3162038400 5222165791 2866752946 5490681131
7159934323 5973494985 0904094762 1322298101 7261070596
1164562990 9816290555 2085247903 5240602017 2799747175
3427775927 7862561943 2082750513 1218156285 5122248093
9471234145 1702237358 0577278616 0086883829 5230459264
7878017889 9219902707 7690389532 1968198615 1437803149
9741106926 0886742962 2675756052 3172777520 3536139362
1076738937 6455606060 5922...
黃金分割對攝影畫面構圖可以說有著自然聯系。例如照相機的片窗比例:135相機就是24X36即2:3的比例,這是很典型的。120相機4.5X6近似3:5,6X6雖然是方框,但在後期製作用,仍多數裁剪為長方形近似黃金分割的比例。只要我們翻開影集看一看,就會發現,大多數的畫幅形式,都是近似這個比例。這可能是受傳統的影響,也養成了人們的審美習慣。另外,也確實因為它具有悅目的性質,所以有時人們在時間中並非注意到這個比例,而特意去運用它,但往往就不自覺中,進入了這個法則之中。這也說明了,黃金分割的本身就存在有美的性質。在攝影實踐中,運用黃金分割法則,主要表象在黃金分割點、線、面的運用中。黃金分割點,在全景構圖中,多是主要表現對象,或是視覺中心所處的位置,在中、近景構圖中,多是景物主要部位所處的位。在人像構圖中常常是將人的眼睛處理在近於黃金分割點的位置。黃金分割線,多用作地平線、水平線、天際線所處的位置。
《夢幻曲》是一首帶再現三段曲式,由A、B和A′三段構成。每段又由等長的兩個4小節樂句構成。全曲共分6句,24小節。理論計算黃金分割點應在第14小節(240.618=14.83),與全曲高潮正好吻合。有些樂曲從整體至每一個局部都合乎黃金比例,本曲的六個樂句在各自的第2小節進行負相分割(前短後長);本曲的三個部分A、B、Aˊ在各自的第二樂句第2小節正相分割(前長後短),這樣形成了樂曲從整體到每一個局部多層復合分割的生動局面,使樂曲的內容與形式更加完美。大、中型曲式中的奏鳴曲式、復三段曲式是一種三部性結構,其他如變奏曲、迴旋曲及某些自由曲式都存在不同程度的三部性因素。黃金比例的原則在這些大、中型樂曲中也得到不同程度的體現。一般來說,曲式規模越大,黃金分割點的位置在中部或發展部越*後,甚至推遲到再現部的開端,這樣可獲得更強烈的藝術效果。莫扎特《D大調奏鳴曲》第一樂章全長160小節,再現部位於第99小節,不偏不依恰恰落在黃金分割點上(1600.618=98.88)。據美國數學家喬巴茲統計,莫扎特的所有鋼琴奏鳴曲中有94%符合黃金分割比例,這個結果令人驚嘆。我們未必就能弄清,莫扎特是有意識地使自己的樂曲符合黃金分割呢,抑或只是一種純直覺的巧合現象。然而美國的另一位音樂家認為。"我們應當知道,創作這些不朽作品的莫扎特,也是一位喜歡數字游戲的天才。莫扎特是懂得黃金分割,並有意識地運用它的。"貝多芬《悲愴奏鳴曲》Op.13第二樂章是如歌的慢板,迴旋曲式,全曲共73小節。理論計算黃金分割點應在45小節,在43小節處形成全曲激越的高潮,並伴隨著調式、調性的轉換,高潮與黃金分割區基本吻合。肖邦的《降D大調夜曲》是三部性曲式。全曲不計前奏共76小節,理論計算黃金分割點應在46小節,再現部恰恰位於46小節,是全曲力度最強的高潮所在,真是巧奪天工。我們再舉一首大型交響音樂的範例,俄國偉大作曲家裡姆斯-柯薩科夫在他的《天方夜譚》交響組曲的第四樂章中,寫至辛巴達的航船在洶涌滔天的狂濤惡浪里,無可挽回地猛撞在有青銅騎士像的峭壁上的一剎那,在整個樂隊震耳欲聾的音浪中,樂隊敲出一記強有力的鑼聲,鑼聲延長了六小節,隨著它的音響逐漸消失,整個樂隊力度迅速下降,象徵著那艘支離破碎的航船沉入到海底深淵。在全曲最高潮也就是"黃金點"上,大鑼致命的一擊所造成的悲劇性效果懾人心魂。
黃金律歷來被染上瑰麗詭秘的色彩,被人們稱為"天然合理"的最美妙的形式比例。世界上到處都存在數的美,對於我們的眼睛,尤其是對我們學習音樂的人的耳朵來說,"美是到處都有的,不是缺乏美,而是缺少發現"。
"0.618"還始終與軍事發展有不解之緣,而且常常與戰爭不期而遇。無論是古希臘帕特農神廟的美輪,還是中國古代的兵馬俑,它們的垂直線與水平線之間的關系竟然完全符合1∶0.618的比例。成吉思汗的蒙古騎兵橫掃歐亞大陸令人驚嘆。經過研究發現,蒙古騎兵的戰 斗隊形與西方傳統的方陣大不相同,在他的五排制陣型中,重騎兵和輕騎兵為2∶3,人盔馬甲的重騎兵為2,快捷靈活的輕騎兵為3,兩者在編配上恰巧符合黃金分割律。歐洲人是最早有意識地把黃金分割律運用於宗教和藝術方面的,而在軍事上的應用是從黑火葯時期開始的。那時滑膛槍呈現出取代長矛之勢,率先將滑膛槍 兵和長矛兵對半混編的荷蘭將軍摩利士未能突破傳統陣型的羈絆,瑞典國王古斯 塔夫對這種正面強翼側弱的陣型進行調整後,使瑞典軍隊變成了當時歐洲戰鬥力最強的軍隊。他的做法是,在摩利士將軍原來的216名長矛兵與198名滑膛槍兵混 合編組的基礎上,再增加96名滑膛槍兵,這一改變,順應了科技發展和武器裝備 進步對戰術發展的影響規律,突出了火器在戰斗中的作用,使之跨越了冷熱兵器時代的分水嶺。198+96名滑膛槍兵與216名長矛兵之比,讓我們又一次看到了黃金 分割律的神奇作用。1812年6月,拿破崙進攻俄國;9月,他在博羅金諾戰役後進入莫斯科,這時的拿破崙並未意識到天才和運氣正從他身上一點一點地消失,他一生事業的頂峰 和轉折點正同時到來。一個月後,法軍便在大雪紛飛中撤離莫斯科,三個月的勝 利進軍加上兩個月的盛極而衰,從時間軸線上看,拿破崙腳下正好踩在了黃金分割線上。
130年後的另一個6月,納粹德國啟動了針對蘇聯的"巴巴羅薩"計劃,在長 達兩年多的時間里,德軍一直保持進攻勢頭,直到1943年8月,"城堡"行動結束,德軍從此轉攻為守,再也沒有能對蘇軍發起一次戰役規模的進攻行動。被所有 戰史學家公認為蘇聯衛國戰爭轉折點的斯大林格勒戰役,就發生在戰爭爆發後的 第17個月,正是德軍由盛而衰的26個月時間軸線的黃金分割點.海灣戰爭中,美軍一再延長空襲時間,持續38天,直到摧毀了伊拉克在戰區內4280輛坦克中的38%、2280輛裝甲車中的32%、3100門火炮中的47%,也就是將伊 拉克軍事力量削弱到黃金分割點上後,才抽出"沙漠軍刀"砍向薩達姆,地面作戰只用100個小時就達成了戰爭目的。
透過戰爭中的一些零散戰例,依稀可見"0.618"的影子在晃動、在徘徊。如 果孤立地看待它們,好似偶然巧合,但是如果太多的偶然遵循著同一個軌跡,那 就成為規律,就特別值得人們深入研究了。
一次無意中和同學在操場上打球,順手測量了雕相牛頓的鼻子,其鼻孔間的距離和到鼻樑的比剛好接近於0.618。之後又測量了幾個人的鼻子,結果符合黃金分割點。接下來的生活中對0.618變得很敏感,經過同學的推想與實踐,我們發現了多彌樂古牌的長寬之比,蝴蝶的身體部位之比,漂亮花瓣的長寬之比也都符合這一規律。查詢了很多的相關資料例如埃及金字塔便是這一規律的最好應用。
想像一下如何讓一根很普通的細橡皮筋發出「哆來咪」的聲音?把它拉緊,固定住,撥動一下,就是「1」,然後量出其長,作一道初三幾何題——把這條「線段」進行黃金分割, 可以測出「分割」得到的兩條線段中較長的一段,約是原線段長度的0.618倍。捏住這個點,撥動較長的那段「弦」,就發出「2」;再把這段較長線進行黃金分割,就找到了「3」, 以此類推「4、5、6、7」同樣可以找到。
你從電視中見過碧水輕流的安大略湖畔的加拿大名城多倫多嗎?這個高樓大廈鱗次櫛比的現 代化城市中,最醒目的建築就是高聳的多倫多電視塔,它器宇軒昂,直沖雲霄。有趣的是嵌 在塔中上部的扁圓的空中樓閣,恰好位於塔身全長的0.618倍處,即在塔高的黃金分割點上。它使瘦削的電視塔顯得和諧、典雅、別具一格。多倫多電視塔被稱為「高塔之王」,這個 奇妙的「0.618」起了決定性作用。與此類似,舉世聞名的法蘭西國土上的「高塔之祖」——埃菲爾鐵塔,它的第二層平台正好坐落在塔高的黃金分割點上,給鐵塔增添了無窮的魅力。
氣勢雄偉的建築物少不了「0.618」,藝術上更是如此。舞台上,演員既不是站在正中間, 也 不會站在台邊上,而是站在舞台全長的0.618倍處,站在這一點上,觀眾看上去才愜意。我們所熟悉的米洛斯的「維納斯」、「雅典娜」女神像及「海姑娘」阿曼達等一些名垂千古的 雕像中,都可以找到「黃金比值」——0.618,因而作品達到了美的奇境。
達·芬奇的《蒙娜麗莎》、拉斐爾筆下溫和俊秀的聖母像,都有意無意地用上了這個比值。因為人體的很多部位,都遵循著黃金分割比例。人們公認的最完美的臉型——「鵝蛋」形,臉寬與臉長的比值約為0.618,如果計算一下翩翩欲仙的芭蕾演員的優美身段,可以得知,他們的腿長與身 長的比值也大約是0.618,組成了人體的美。
我國一位二胡演奏家在漫長的演奏生涯中發現 ,如果把二胡的「千斤」放在琴弦某處,音色會無與倫比的美妙。經過數學家驗證,這一點恰恰是琴弦的黃金分割點0.618!黃金比值,在創造著奇跡!�
偶然嗎?不,在人們身邊,到處都有0.618的「傑作」:人們總是把桌面、門窗等做成長方形、寬與長比值為0.618。在數學上,0.618更是大顯神通。0.618,美的比值、美的色彩、美的旋律,廣泛地體現在人們的日常生活中,與人們關系甚密。0.618,奇妙的數字!它創造了無數的美,統一著人們的審美觀。
愛開玩笑的0.618,又製造了大量的「巧合」。在整個世界中,無處不閃耀著0.618那黃金一樣熠熠的光輝!人們時時刻刻在有意無意創造著一個個的黃金分割。只要稍微留心一下便可發現它離我們的生活有多近!數學離我們很近,無時不刻地在應用著它!
我們要首先感受並體會到數學學習中的美。數學美不同於其它的美,這種美是獨特的、內在的。這種美,正如英國著名哲學家、數理邏輯學家羅素所說:「數學,如果正確地看它,不但擁有真理,而且也具有至高無上的美,正象雕刻的美,是一種冷而嚴肅的美。這種美不是投合我們天性的微弱的方面,這種美沒有繪畫或音樂那樣華麗的服飾,它可以純凈到崇高的地步,能夠達到嚴格的只有偉大的藝術能顯示的那種完滿的境界。」課堂上老師經常給我們講數學美,通過高等數學的學習,我漸漸地領略到數學美的真正含義,這種感覺是奇異的、微妙的,是可以神會而難以言傳的,數學,對我來說,是那樣的富有魅力……在生活中只要我們善於觀察,善於思考,將所學的知識與生活結合起來將會感到數學的樂趣。生活中處處都應用著數學的知識。