當前位置:
首頁 > 最新 > 打開新世界大門,用演算法理解世界

打開新世界大門,用演算法理解世界

你有沒有注意到,現代生活已經在不經意間被某種力量所支配。

當我們尋找愛情,網上購物,

週遊世界,甚至拯救生命的時候,

幕後正有一步步的指示悄悄地運作。

不可否認,

它們已逐漸「滲入」我們的生活點滴。

它們稱為演算法。演算法無處不在。

因為它們是無形的,

我們傾向於理所當然地接受,

甚至對它們有所誤解。

程序界有個公式:程序=演算法+數據結構。

那我們可以理解「編程」這個詞了:編程也就是編寫程序,是運用合適的演算法和合適的數據結構去解題。用什麼來寫呢,即計算機能識別的語言,就是C語言、Java、Python等等這些語言。

那演算法又該如何理解呢?

此處強烈安利BBC紀錄片《現代生活的秘密法則:演算法》,看了它必然會對演算法有更深入的了解。

數學家兼紀錄片主持人Marcus,日常工作是擔任牛津大學數學系教授。

「演算法的挑戰是找到最短路徑回到起點。即使烤蛋糕,我們其實也一直在遵循演算法。」

這個紀錄片展示了他最喜歡的一些演算法並揭示他們來自何處。

演算法就是數學么?是,也不是。

01

數學是一個分支浩瀚的基礎學科,而演算法是應用數學的一個分支,它跟概率、序列、最優解、檢索等等數學問題密切相關,但其實是一套解決方案,一種模型,一串計算機可以識別的方法論,它的任務是解決的一個具體問題。

它可以應用在計算機科學上,也可以應用在其他學科里。

演算法不僅是按部就班地解決問題,而是出奇漂亮地利用數學規則來支撐宇宙的運作。

02

舉一個演算法應用的簡單例子,我們大多數人攜帶手機。你可能注意到用手機拍照時,人臉周圍會出現一個框,這是特殊臉部檢測演算法的結果,有助於拍照時進行面部對焦。

和所有演算法一樣,它的目標是解決問題,在這裡是發現人臉。要做到既能不被水果製成的臉迷惑,又要檢測到照片中的人臉,它是如何實現的呢?

此演算法根本上就是一系列步驟指令,通過有序地掃描照片來工作,尋找四個關聯人臉的抽象圖案,這些圖案一個個被檢測到後,演算法表明發現了一張人臉。

這個過程的關鍵就是不受大小或形狀的影響,快速找到所有人臉背後的共通點。

最好的演算法是發現隱蔽在問題中的數學結構。

03

我們傾向於把演算法與計算機、手機、網路相關,但它們不只應用於科技世界。

數學遊戲也同樣是它的表現方式。Marcus邀請自己的學霸學生們做試驗。

桌子上是一大罐巧克力和一根辣椒,每人在罐子里可以選擇拿一個或者兩個或者三個巧克力,誰最後拿到辣椒誰就吃掉。

Marcus總是獲勝的那個,原因就在於他有自己的演算法。

演算法是計算機領域最能體現創造力的一環。但它不需要每次都被重新發明,它讓某類事情有了通用的解決方案。

04

發明演算法需要難以置信的創造力,但一旦創造出來了,用技術實現它們,反而不是那麼困難了。

諸如我們已知最古老的演算法——歐幾里得演算法,該演算法就是找到最大公約數的方法。

最大的共同除數,可以整除一對數字,比如4可以整除8和12。當然數字小的時候很容易,面對大數字時就會棘手很多。

眾所周知,歐幾里得是古希臘最偉大的數學家,但人們不知道的是,憑藉演算法他沒準還能成為一名「一絲不苟」的瓦工。

想像下有個長方形地板,你要找到鋪設方磚的最高效方法。換句話說,填滿地板不留空隙方磚最大多少?事實上,這就是最大公約數的幾何版本。

地板的長寬是兩個數,我們要找的方磚尺寸是它們的最大公約數。用歐幾里得的方法,開始是用尺寸里最小邊大小的方磚鋪設,然後對剩下的矩形做完全相同的事情。每一步演算法選擇對應矩陣最短邊的方磚,這樣不斷重複,方磚最終會填滿全部剩餘空間。

利用這種簡單的步驟,不論地板多大都能找到最高效合宜的鋪設方式。

歐幾里得演算法看起來像個數學技巧,但它符合演算法的所有標準。發明演算法無需做重複的無用功,一個演算法一旦被發明出來就可以應用於解決任何相同的問題。這個標準對從古到今任何一個演算法都適用。

那麼,談到青少年編程,特別是針對「學習編程越早越好的」的說法來講,難道要讓一個剛上小學的孩子去學代碼么?字都不認識,抽象思維都沒形成,怎麼可能?讓他們去學數據結構怎麼高效存儲么?等他們長大了技術不知道迭代幾百輪了。能讓孩子儘早接觸的,只有自古以來就有且在現代社會煥發了新生命的演算法了。

對於專業的程序員來說,演算法在他們的領域是很理論的。是不接地氣的,是既成模型(演算法)的應用,而選擇不同的演算法在特定情境中懂得怎麼敲代碼才是編程。還有,現在計算機的數據處理能力越來越強,有些程序是不停試錯不停調試之後出來的結果,至於內在演算法邏輯是怎麼樣的,也許程序員自己也搞不明白了。

然而在「計算機領域」之外的人群,目前最需要掌握的並不是編程本身,不是用哪門語言去寫代碼,而是用演算法理論去理解世界,這才是我們需要給孩子打開的那扇大門。

資料來源:

BBC紀錄片《現代生活秘密法則:演算法》

《演算法是數學?編程是演算法?未來的孩子必學編程?不如看看這部紀錄片。》

《推薦一部紀錄片 BBC 演算法現代生活的秘密規律》

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全國中小學生創造大賽 的精彩文章:

TAG:全國中小學生創造大賽 |