發表文章

目前顯示的是 12月, 2020的文章

「一篇說完資工系四年所學」

圖片
「前言」 最近公司內的新人越來越多,而且很多不是相關工程背景的學生,在教導或是說明一些電腦科學的用詞時,很明顯的她們並不曉得是什麼,這依舊是老問題,自己平常熟悉的事物在其他人眼中卻是另一個世界的內容,因此藉這篇文章機會把整個大學中電腦科學課程中所想要傳達跟教導的事情一起描述完。 「建模:描述名詞並且量化之」 >你怎麼描述愛情是什麼? 這算是種常見的問題,你怎麼完完整整的說明你喜歡某一個人?你可能會說他長得很帥、個性很好、會照顧人、身穿名牌衣服、家裡有錢,既然如此,下一個問題是,你要怎麼把這些資訊放到資料庫裡頭?你要怎麼把長得帥這件事情用資料描述出來? 這個問題的本質是在談建模(Modeling),要怎麼把東西量化(quant)起來變成可以描述的內容,比較常見的情景是,購買商品的評分,或是谷歌地圖上的地點評價,你在嘗試給予這個地方一個量化的標準,當然一個人的評分會十分偏頗,但如果拉一萬個人一起幫忙的話,效果就會大不同。評分會形成某種趨勢存在,有些人會按1分,有些人會按2分,有些人會按3分等,你會得到某種回歸趨勢,為了得到這個趨勢,你需要先把事情量化並且描述下來,而描述下來的東西我們則可以進行管理。 舉例來說:你會想知道,一間雞舍有多少產能,我這個雞舍有好幾排不同品種的雞正在生產雞蛋,為此你會把雞給個編號,給一個ID 好辨識,同時會說這個雞是黑色的、體重多少、多少年齡,嘗試把對於雞的描述記錄下來。 「管理物品最有效的結構:樹狀結構」 >三年五班七號給我過來! 有趣的地方來了,萬物總是會被歸納在一起,如果你整理自己的房間一樣,你會把衣服收在一堆,褲子收在一堆,鞋子收在一堆,這也叫做物以類聚。而為了管理你的房間,你會採用樹狀結構的方式管理房間內容。 一樣的管理管理雞社也是,相同品種或是顏色靠近的雞會被收在一起,你會直覺知道雞在那一個排列底下,用樹狀結構管理是一直以來的作法,而且也是方便管理的,回憶一下,生物中的,界門綱目科屬種,也是為了管理自然界中的各種生物,軍隊治理中也是,我們用班、排、連、營、軍團來管理,這也是某種樹狀結構。 「資工重點項目」 >虛擬世界跟真實世界是做相同的事情 「資料結構」旨是在管理空間用的,方才說過,最好管理的方式是樹狀結構,腦中直覺想到的是網狀結構,但效能不佳,鏈狀則是太慢。可以管理空間後,再來就該提升效率了,也就是「演算法」存在...

F-coin - 架構即AI

圖片
F-Coin 圖說:F幣情境綜合題    『前言』  為了讓新進員工可以快速熟識 OOP 與 FP 之間的思維切換,以及編寫狀況,公司內部細心設計出的題目。其主旨是先從微積分題目出發,逐漸轉型成程式編寫的問題。我們稱之為 F-coin,一個與好友同時在線挖礦的應用題目來做說明。如果是玩遊戲比較多的讀者,比較熟識的會是點擊類型遊戲,又稱為 Incremental Game。 『背景介紹』 F-coin,是一個與好友一起挖礦的應用程式。當你打開 App 時,你可以努力點擊螢幕來賺取金錢,俗話說的好,獨樂樂不如眾樂樂,因此你也找了朋友一同參與挖礦行列。有了朋友的相伴,即使是在無聊的遊戲也會繽紛許多,邊緣人是不會懂這種感覺的。朋友上線時,你可以得到對應的夥伴獎勵,直到朋友下線之前,這獎勵會一直都在,你挖礦的效率會遠比一個人在線上時來的量多。 這大概就是整體情境了,現在我們要開始帶入數字好精準知道,自己到底可以有多少錢入帳。當 app 啟動時候,每一秒鐘可以增加 1 塊錢;當點擊螢幕時,挖礦金額會增加 10 塊錢;一個朋友在線上時候,我可以獲得 每秒增加 0.25 塊錢的獎勵值。 現在我們關注 30 秒鐘的時間長度,朋友在線狀況如下圖所示,我個人點擊的時間點也在圖上呈現,請問在第 30 秒鐘的時候,我總共有多少錢?再來問,如何使用程式來撰寫這個應用程式? 圖說:如何撰寫這個挖礦程式呢?   『頗析問題』  這個題目一頭栽進去勢必很難進入狀況,主因是情況頗為複雜,把狀況細分拆解過後就會簡單容易些,我們可以先從沒有朋友、朋友上線、朋友下線等,狀況逐一去分解與計算,先『歸納』出應該有的情形,再去『推演』複雜狀況,最後再用『反證』來做校正。  情況ㄧ、只有自己的時間與點擊螢幕(對應自己) 這個情境下,狀況都是非常開心的,因為沒有其他人來干擾你,混淆你的計算,單純只有自己,因此,在只有自己與點擊螢幕的狀況下,獲取的金錢量可以輕鬆地被計算出,專注在點擊螢幕後,我們自己可以拿到的錢,距離點擊螢幕事件多長時間除上計算單位,再乘上點擊螢幕倍率,就可以得到總金額。圖上的案例,簡化到,距離點擊螢幕事件只經過1秒。 圖說:情境一,一切都簡單且美好  情況二、自己+已上線朋友(對應甲朋友)  這邊可以注意到我...