牛小強說道這里稍作停頓,組織了一下語言后接著說道:“稍微懂得一些計算機知識的人都知道,計算機程序必須要具有嚴密的邏輯性,邏輯性越高的程序,就越是穩定和安全,如何實現高度的邏輯性呢?這需要從編程入手。”
“編程是一個很枯燥的過程,需要進行周密的數學運算,然后再把運算出來的結果用編程語言編寫成計算機程序,想要實現高度的邏輯性,首先要做的就是確保你在編程之前的數學運算不要出錯。”
“簡單的錯誤可能不會影響程序的運行,但重大的錯誤卻一定會造成程序的崩潰。在這里我想用人腦和計算做一個比較,人類的大腦要是崩潰了,就會變成精神病,計算機程序要是崩潰了,則會得出兩種結果,第一是計算機徹底死機,無法運轉,第二是計算機還能運行,但無論你輸入什么指令,它得出的都會是錯誤的結果。”
“從這里不難看出編程的重要性,我剛才提到了計算機算法這個概念,這個概念主要針對的是計算機編程,所謂的算法,指的就是編程時進行的數學運算。”
“任何程序在編寫之前,都需要確定它是用來干什么的,我管這個叫做‘程序的指向性’,說白了就是你需要先確定一個結果,然后通過數學運算,在編程的時候把這個結果的運算過程用計算機語言完整的展現出來,這其中數學運算的過程,就是我所說的算法。”
牛小強說到這里稍作停頓,讓大家有消化和吸收的時間。
他剛才講的這些內容來自計算機系的教授們全都明白,不太明白的是那些教授夫人和其他學科的教授。牛小強既然已經承諾要讓大家都能盡量聽懂,當然要照顧一下這些外行們了。
停頓了將近十秒,牛小強這才接著說道:“打個比方說,如果你想要在程序中輸入數字2這個結果,最簡單的最直白的運算過程應該是1+1=2,如果你使用了其他的算法,比如說你的計算過程是0.75+1.25=2,這無疑將會大大增加程序的臃腫和復雜性,程序要是變得臃腫和復雜了,就很容易產生邏輯性漏洞。”
牛小強說到這里看向了泰格:“我剛才就是通過試探摸清楚了斯坦福大學在編程中使用了哪種算法,然后再根據自己得到的結果推導出了深藍后續的邏輯運算過程,因此我才能如此精準的提前預判后續的所有步驟,很遺憾,斯坦福大學使用的算法跟我剛才所說的后者差不多,你們沒有使用1+1=2這種最簡單最科學的算法,而使用了0.75+1.25=2來進行程序語言的匯編,所以我才會說你們的算法很落后,并被我找到了漏洞,這才發生了剛才那種看似不可思議的事情。”
牛小強打的這個比方通俗易懂,就算是不懂計算機的人,基本也都能夠聽懂。
在場的人全都露出恍然大悟的神色,紛紛點頭表示自己已經明白了牛小強的意思。
牛小強并未就此打住,他接著說道:“編程算法是為編程服務的,在確保程序的功能性不受影響的前提條件下,越是簡練的算法就越能提升程序的執行效率,該如何做到這點呢?在我看來有兩個途徑。”
這話一說出口,在場的計算機系的教授們全都打起了精神。此刻的他們已經全部擺正了自己的心態,真的把牛小強當成自己的老師看待。
牛小強雖然還是個大學生,但僅僅從他剛才的發言來看,他對于編程的理解已經高深到了一個十分恐怖的地步。