商周

啟動成功關鍵,隨時掌握商周.com最新資訊

提供第一手新聞解析、財經趨勢、專屬活動

已加入收藏
已取消收藏
帳號頭像 帳號選單下拉箭頭
/
熱搜內容
現正閱讀
念幼稚園就在學寫程式!兒子從1個提問學到:原來運氣能透過「算式」提升
畫重點
段落筆記
新增筆記
「請稍等」英文別直接中翻英說please wait a minute!一次掌握,常用的電話對談英文
0
/500
不公開分類 公開分類
儲存
至頂箭頭

職場 | 教育趨勢

念幼稚園就在學寫程式!兒子從1個提問學到:原來運氣能透過「算式」提升

念幼稚園就在學寫程式!兒子從1個提問學到:原來運氣能透過「算式」提升
圖/Dreamstime
撰文者:劉潤
劉潤專欄 2019.03.06

我經常出差。但只要在家,都會堅持送我的兒子小米上學,路程大概5分鐘。因為我可以在這段時間裡,跟他溝通和傳授一些觀點,教給他一些概念。我稱之為:5分鍾育兒學堂。

小米正在學編程(編按:程式語言),因為我覺得學編程特別重要。

我之前說過,非常建議所有的家長,不管文科理科,都可以考慮讓小孩子從幼兒園、最晚從小學開始,學習圍棋以及編程。

廣告

學圍棋,可以訓練面對未來的博弈思維,這是一種加上時間軸的戰略思考能力。

學編程,可以訓練搭建系統架構的能力,這是一種基於信仰規律的系統思考能力。

我自己是從小學三年級開始學編程,那時候9歲。小米比我更早,小米大概是在幼兒園就已經開始學編程了。到小學四年級的時候,已經開始要參加信息奧林匹克競賽了。

他的編程已經從畫畫,到中間用些簡單的語言,到現在真的用C++來編程了,所以是一個真正的編程學習者。

廣告

隨機數是怎麼生成的?

有一天,我陪小米去上學的時候,他說,我在學編程的時候遇到一個問題,就是有個函數叫random(),英文的意思就是隨機。

用這個random()函數去生成隨機數,可是隨機數到底是怎麼生成的呀?

他能這麼想,我覺得眼前一亮。

我跟他說太好了,這個問題其實我在小學學編程的時候也遇到過。

我甚至做過一些測試,當時計算機很老舊,兩台計算機如果把它關機再開機,如果用random()這個函數,它生出來的確實是一組看上去很隨機的數字。

但是這兩台計算機生成的隨機數的順序是完全一樣的。

也就意味著它生成的其實並不是隨機數,而是你看上去毫無關係的一組數字。

它們的背後一定有邏輯,一定有規律,一定不是隨機的。

為什麼?

你單從一台電腦上看,以為是隨機數,而兩台電腦生成的數字,它從第一個跟第一個相同,第二個跟第二個相同,到第三個跟第三個相同,是完全一樣的。

所以不是隨機數。

為什麼會這樣?

因為計算機它並不真的能生成隨機數,計算機生成的隨機數的算法,它跟上帝不同,它跟擲骰子不同。

擲骰子或者說拋硬幣,正反兩面幾乎完全是隨機的。

但是計算機它沒有擲骰子,沒有拋硬幣的過程,它其實是用一個函數,來生成的「隨機數」。

看上去隨機就是真隨機嗎?

什麼意思?我就給他舉了個例子。

比如說我們怎麼去生成隨機數?我們如果寫個隨機函數,我們可以怎麼寫呢?

假如我們拿今天此時此刻的時分秒,再加上毫秒,就是千分位的那個秒來做實驗的話。

那麼在任何時候你拿到的一個時分秒和千分位的秒,那個數字都是不一樣的。

然後你用一個函數,所謂的函數就是一種算法。比如說把當前的這個時間數字,乘上3586,再除上4477,再減去32等,做一個算法之後,你發現算出來的一個數字很隨機。

你再算加了下一個毫秒的數字,再取當時的時間再算也很隨機。

你看,其實你不斷拿到毫秒級的時間來算,算出來的數字,都是很隨機的。

但是如果你知道這背後是一個確定的算法,你就知道這個數字其實並不隨機。

是不是真隨機真的重要嗎?

那小米就問了,說這個既然看上去很隨機,那它是不是真的隨機重要嗎?

當然重要!

如果你知道這個算法本身,你知道它不是隨機的,你就可以預測到後面的數字了。

拿銀行密碼來舉個例子。

銀行為了防止你的帳戶被別人盜用,當你在網上去登錄帳號和密碼的時候,同時會發給你一個小的驗證器。

每10秒鐘,小的驗證器上面會出現6個數字,每10秒鐘這6個數字就會被換掉。

這個數字為什麼會這樣?這個數字是怎麼來的?它其實是個隨機數。

你只有在輸入用戶名和密碼的同時,在此時此刻你拿起那個小的驗證器,輸入上面的6個數字。比如說786354,好,你把這個驗證碼786354一輸,你才能登錄進去。

如果你當時沒有驗證器在手邊,你就登錄不進去。

所以驗證器它是用來保證只有拿著驗證器的人才能登錄進去,所以它上面的數字是很重要的隨機數。

如果那個隨機數的算法是可以被你知道的,那你就可以直接算出來這個數字了,那驗證器產生的驗證碼就沒用了。

所以說這個數字是不是真隨機還是非常非常重要的。

如果你不是真隨機而是看上去隨機,那麼你的銀行帳號的安全性,甚至銀行的安全性都會受到特別大的一個影響。

我再舉個例子。

比如說還有什麼辦法來生成一個假隨機數呢?

我就以股市為例,我用下午2:34的股市大盤上的一個數字,用這個數字再用個算法,比如乘上34,減去55,然後再除上377,你看算出來數字看上去很隨機。

但是如果你知道我的算法是這個算法,那麼在明天的此時此刻,你就可以算出來我得到的數字是什麼。

它就不是真隨機了。

所以這個隨機數它是真隨機還是假隨機,真的非常非常重要。

什麼是真隨機?

那麼我們就引申到什麼?

既然你問到隨機數,我們就引申到其實這個世界上我們看到的很多的一些隨機的東西,比如說拋一個硬幣,或擲一個骰子,得到的結果是6是3還是5,這個過程是受很多很多因素影響的。

比如扔上去的力度,當時空氣的阻力,骰子大小,骰子形狀,油漆深淺,落下來之後,這個地方是不是坑坑洼窪,往哪個方向有那麼一點點微弱的力,它是不是彈起來了等等。

所有這些因素都能很微妙的影響這個結果。所以擲骰子最後得到的是哪個數字,我們幾乎是無法控制的。

也就是說擲骰子,我們把它理解為一個算法。

這個算法幾乎是不可模擬的,那這個算法所產生的結果就幾乎是不可預測的,不可控制的。

所以擲骰子是個真隨機。

剛才我們講的那個時間和股市數字的例子,那些算法都是特別簡單的算法,結果是可以被預測,可以被控制的。它是假隨機,而擲骰子是真隨機。

運氣是個真隨機數嗎?

那我們對應到人生上面,對應到我們平常生活上面是什麼道理呢?

當你理解了真隨機、假隨機的概念之後,你就知道,很多時候我們看到別人獲得了成功或別人做對了一件事,他靠的是運氣。

運氣它的本質,若我們去掉情緒化的話,就是概率。所以運氣就是帶有正向情緒的概率。

我們說他靠的是運氣,那你想一想他得到運氣的過程或者說算法,是一個簡單的算法還是複雜的算法?

如果是簡單的算法,那倘若我們也這麼做,也是可以得到好運氣這個結果的。

而如果完全都是他自己都不可控制的複雜算法的話,那就真叫做運氣了。

所以說我們去看別人的時候,我們一定要明白他是真運氣還是假運氣。

什麼叫真運氣?就是他所成功的要素是他完全無法控制的。

倘若他是通過了一些策略,甚至一些努力,甚至一些資源而獲得的成功。

這背後就有算法,那就是假運氣,真努力。

所以我們在看別人成功的時候,一定要明白他是真運氣還是真努力,他背後是不是有我們可以學習的一個算法。

因此我們所謂要獲得成功,就是找到運氣背後的那個真正的算法是什麼。

這叫做概率思維。

※本文獲劉潤公眾號授權轉載,原文:如何利用算法让你的运气爆棚 | 5分钟育儿学堂(33)

責任編輯:黃楸晴
核稿編輯:黃雅苓

下滑箭頭 下滑載入更多報導 下滑箭頭
閱讀能力訓練 緯穎 寫程式 緯創 學寫程式 蝦皮 無法登入 幼稚園
劉潤專欄
劉潤專欄
劉潤
展開箭頭

劉潤

潤米諮詢董事長,網路轉型專家,擁有23萬以上用戶的私人商學院——「得到」專欄《劉潤•5分鐘商學院》創始人。中國最貴的商業轉型諮詢師,前微軟戰略協作總監,海爾、百度、恆基、中遠等眾多大企業的戰略顧問。

工作、公益之外,愛好旅行,徒步戈壁,環騎青海湖,到達珠峰大本營,登上南極大陸,抵達北極點,探訪達爾文島,登頂非洲吉力馬扎羅。

著有《2012,買張船票去南極》、《人生,就是一場突如其來的旅行:從微軟到北極點》《互聯網+》、《互聯網+戰略篇:傳統企業,互聯網在踢門》、《趨勢紅利》。

廣告
留言討論