日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个男的和计算机对话,父与子的对话:计算机算法

發布時間:2024/7/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个男的和计算机对话,父与子的对话:计算机算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一封信我提到了電腦必須有三樣要素:輸入、輸出和算法。算法是最核心的部分。沒有算法,電腦不會知道你的輸入究竟該返回什么樣的輸出。你 最近數學期中考考得相當不錯,你應該注意到,“應用題”這種題目,本質上考的就是算法。題目本身可以視為是一種輸入,你需要給出一個答案,這算是一個輸 出。但如果你的應用題只寫一個答案,而沒有計算過程的話,那你這道題會被扣去很大一塊分數,即便你的答案是正確的。解題步驟,或者說計算過程,就是你的算 法,老師是要看算法滴!

算法這個詞,是一個極其復雜的概念, 老爸

我其實研究得不深,2011年的時候,還有一幫非常頂尖的數學家在法國開的一個會上,繼續爭論究竟什么叫算法。在我看來,簡單的理解,算法就是一種“計算的方法”,一種在已知的一些輸入素材前,該返回什么樣的輸出。

算法這個詞的來歷很有些年頭了,大概就在9世紀的時候,有一個波斯的數學家提出了這個概念,當時主要指的阿拉伯數字的運算法則。你還記得學 習加減乘除時候的法則嗎?比如加法交換律、乘法結合律,等等。1842年,有一個叫艾達拜倫的人寫了一個求解某種方程的程序,這個人被視為這個世界上的第 一個程序員。呵呵,記住了,這個人是個女的。是的,史上第一個程序員是位女性,而且她是一位詩人的女兒,真是完美的文理科結合啊!這位女性很有名,將近兩 百年后的今天,我們依然用各種方式來紀念她。

另外一個特別有名的人叫圖靈,他在1954年就過世了,只活了42歲。但這個人才華橫溢,至今世界上最頂尖的數學獎就是以他名字命名的:圖 靈獎。圖靈提出過一個被稱為“圖靈機”的模型,很多人視為這是一個對算法這個概念的重大貢獻。但也有人認為,這個模型解決的問題是“可計算性”,而不是算 法。可計算性指的是那一堆輸入的材料是不是可以計算。比如你做一道應用題,題目是“學校有男生500人,問女生有多少?”,顯然這道題目是無法計算的,所 以沒有可計算性。如果再加上“學校總共有950名學生”,那就可以計算了。在可計算的基礎上,才有所謂算法。圖靈機試圖回答的問題是:究竟什么是電腦可以 計算的。

看到這里,小寶你可能會發現,都是數字的計算啊,我打的游戲和算法有什么關系?植物大戰僵尸里有什么算法?老爸我這里用一個豌豆射手消滅一個僵尸的過程,來向你說明算法在這里面的作用。

整個電腦屏幕,是由極多的像素點組成的,每個像素點,都有兩個由縱橫兩個數字組成的位置數值。豌豆射手所發射出的一粒豌豆,是在運動的。在 運動的過程中,豌豆的位置一直在變。不過它不能上下飛行,只能水平飛行,也就是說,它的位置縱向數字不會變,它的橫向數字在變化,而且只能從左到右。同樣 的,那個搞笑的僵尸也有它的位置,縱向數字不變,橫向數字在變化,而且只能從右到左。當豌豆的橫向位置的數值,和僵尸身體的數值一樣時,說明豌豆擊中了僵 尸,根據事先定義的規則:僵尸被擊中一次,失去1/3血,擊中兩次,一只手掉下來,擊中三次,僵尸死亡。所以,豌豆消滅僵尸,無非就是豌豆的位置數字和僵 尸的位置數字相同三次罷了。

在電腦的世界里,任何一個東西都要被轉化成數字,因為只有數字是可以計算的。文字、圖像都可以轉化成數字。字母A,其實就是一個數字,數值 為65。但如果是字母a,數值就變成97。這種轉化方法叫“ASCII碼”。當然,你也可以編一套自己的轉化規則,比如把A定義為數字89。不過,你的規 則如果別人不懂,那就沒法用于實踐。ASCII碼是今天世界上大家都遵守的編碼規則。

A=65,這個65是十進位制中的數字。十進位制就是逢十就要進位。我們有從0到9的十個數字,如果一個數字比9大1怎么辦?進位:10。這個方法對你來說已經根深蒂固,你可能以為數字世界本來就是這樣的。但其實除了十進位制以外,我們還有其它進位制度。

比如說二進位制,也就是我們只有0和1兩個數字,如果比1大1怎么辦?十進位制的表示方法就是“2”,但二進位制的表示方法就是“10”, 就像在十進位制里9后面是10一樣,二進位制里1后面就是10了。二進位制的3,就是11,不用進位,但如果是4,沒轍,又得進位,變成100。所以 A=65,在二進位制里,65是啥啊?

好復雜啊,小寶你可能都算不過來了(我打賭你要計算65的二進位制表達,可能需要費時好幾個小時,還極有可能算錯,哈哈),不過電腦最不怕的就是這種有規律的運算。可能你要問,好好的十進位制為啥不用,非得搞這么復雜的二進位制?

這和電腦可識別的信號有關。對于我們人來說,我們可以辨識各種各樣的符號加以理解。但電腦不會。電腦是用電的,它能感知到電壓的高低,所謂 高電平低電平。高電平就是1,低電平就是0,電腦去感知二進位制是最容易的。知道為啥我們人容易學習十進位制嗎?因為我們有十個指頭,別笑,真的。其實理 解十進位制所要求的智商比理解二進位制來得高,嗯,是的,電腦其實智商很低,最好的電腦的理解力甚至不如三歲小孩,電腦的強項是有算法的計算速度。

所以電腦是把所有的東西變成二進位制的數字進行運算,但有些東西計算不了。你可以在電腦里畫出(其實是算出)一個漢堡包并通過屏幕輸出,但你不可能讓電腦的屏幕真給你變出一個漢堡包——這沒法計算啊。

那么,電腦是通過什么裝置來進行運算的?這就是我下封信要和你討論的話題:芯片。

哦,對了,A在二進位制里是1000001——順便說一句,我也不是算出來的,而是查ASCII碼表的,呵呵。

總結

以上是生活随笔為你收集整理的一个男的和计算机对话,父与子的对话:计算机算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。