發表文章

目前顯示的是有「程式語言」標籤的文章

「笨蛋!重點是那個情境!」

圖片
「前言」 如果我現在給你三個 fact(事實),是否可以猜出我在說什麼?藍藍的、機器人、喜歡吃銅鑼燒,至此,你一定可以很迅速的猜出我在說的是多拉A夢(doraemon)。為什麼?為什麼你可以只依靠這些資訊來猜到我在說什麼?因為你已經把那份感覺帶進去了,你已經熟悉了,所以當我描述這些 fact 的時候,你可以快速的反應出什麼是多拉A夢。 「從瞎拼ABC學講故事能力」 身在台灣,有款綜藝節目一定是經常聽到的,他叫做瞎拼 ABC,遊戲方式是這樣的,主持人會抽出題目來考答題者,題目有很多種來源的名詞,可以是人名、家俱等,請來賓也就是答題者猜出這個名詞是什麼。再舉一個例子,這個人身穿燕尾服,善於表演,可以從帽子抓出兔子,你可以講出這個人是個魔術師,如此一來,你就可以在不直接解析那個職業的情況下,讓對方瞭解魔術師的形象與行為。從側面的方式講解中間的答案是什麼,這本身就是一項說故事能力,你可以用在專有名詞解釋上,把整個故事都闡述完之後,對方也可以理解。 「什麼是多拉A夢?多拉A夢是什麼?」 如果我說多啦A夢是一隻藍色的機器人,你會說不對,這樣一竿子打翻一船人,身為藍色的機器人可多著是,例如說:星際大戰中的 R2D2 就是藍色的、經典遊戲的洛克人也是藍色的。很明顯的,這樣的描述方法太過簡易,所以你會嘗試加入更多東西進行更精準的描述,用最近火紅的 AI 來說明,就是給他更多特徵值。R2D2 就是藍色的會行走胖胖的機器人,可能變成這樣,但這樣其實很耗時而且不夠直覺,而且還量大時還要面對 overfitting ,這時該怎麼做呢?將對方帶入整體環境當中。 「學習心智圖」 上述的這套方法我們稱之為心智圖,回到首圖,你可以看到兩者差別是在箭頭的方向,左邊箭頭向外比較像是我們平日在思考的方式,也就是上面那一大段的多拉A夢是什麼?就跟背單字ㄧ樣,當你看到不熟悉的字眼時,會下意識地去找翻譯強行讓自己記起來,例如下圖所示: bear , 有熊的含義、也有生育的含義、更有承擔的意思,這種時候就是數學上的ㄧ對多,難以直接描述。所以上課的英文老師會怎麼跟你說?要你去看下上文,也就是 context,然後去猜那個不懂的文字是什麼涵義,也就是圖表中,箭頭向內的闡述方法,把你自己帶入那個環境中。 「心智圖應...

[Regular Expression]正規表達式教學,使用狀態機輔助說明-基礎篇

圖片
感謝設計師 Elim 大大幫忙 # ** 目錄** ##**一、前言** ##**二、極度懶人包** ##**三、Regular Expression 介紹** ##**四、基礎語法介紹** ##**五、練習用習題** ##**六、資料來源** # 一、前言 最近被要求幫同事上課(OS: 壓力山大QQQ),為了不讓自己上課沒材料,同時讓部落格有新文章之外,其實也沒啥目的,主要就是把最近學習到關於 Regular Expression(正規表達式)的內容好好記錄下來,在學習過程中發現這玩意兒,其實不只是工程師的工具,也可以是一般人都能以掌握且在日常生活中使用到的,雖然我不曉得什麼時候用得到,但確實 Regular Expression 會出現在許多地方,為此盡可能簡化入手難度而寫出這系列教學,比較屬於工程師的內容還是有,沒相關知識者不去看也沒差XD。 #  二、極度懶人包 下方為沒有時間,習慣於一邊吃飯一邊看影片的人們使用,關於這邊文章中所要提到的知識以及操作。 # 三、Regular Expression 介紹 ## 1.什麼是 Regular Expression? Regular Expression(正規表達式)又可簡寫為 Regex,他不是新的東西,而是大家早已會的技能,他是語言,也可以說是程式語言,也有人會說他是強大的工具,這些都是對的,只是大家又不同的角度去看待 Regex,而有不同的心得,Regex 在數學上是狀態機,電腦實作中是採用樹狀結構方式實現,也因為他是程式語言,就代表是可以被維護,被實作,被重寫的,因此每次在寫新的 Regex 同時,用對待其他語言的方式對待他,就不會覺得他是麻煩而且難以學習的新事物了。Regex 是各位早已熟悉的東西,早已熟悉的存在。 ``` 狀態機補充 狀態機是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型。Regex 中 為判斷接收到的事件是否滿足,如果滿足則移動到下一個狀態,直到整個狀態機滿足為止。 ``` ``` 樹狀結構補充 舉例來說這組 Regex 規則這樣寫 /(ab+c)* + aca/,在樹狀結構表示如下圖所示 ![Tree](https://imgur.com/ZCpuizd.png) 當中優先度為 | 大於 +*...

基於 Verilog 實現 CRC-32 晶片模擬 採用modelsim 模擬軟體

圖片
目錄 1.背景知識 2. 安裝 Modelsim 3.CRC-16 模擬 4.CRC-32 模擬 5.Modelsim 基礎使用教學 1.背景知識 CRC:      循環冗餘查核 ( 英語 : Cyclic redundancy check ,通稱「 CRC 」)是一種根據網路資料封包或 電腦檔案 等資料產生簡短固定位數驗證碼的一種 雜湊函數 ,主要用來檢測或校驗資料傳輸或者保存後可能出現的錯誤。生成的數字在傳輸或者儲存之前計算出來並且附加到資料後面,然後接收方進行檢驗確定資料是否發生變化。一般來說,循環冗餘校驗的值都是32位元的整數。<取自Wiki 百科> 詳細的計算可以看 這篇文章 了解CRC運作原理. 習題:假設資料位元(D)為 1011001101 1011001101 並使用CRC-16(P) ,試問 CRC碼以多項式和二進位表示為何?加上CRC碼後的完整訊息(T)為何? 想知道答案可至 這裡檢查 Modelsim:     Mentor公司的ModelSim是業界最優秀的HDL語言仿真軟件,它能提供友好的仿真環境,是業界唯一的單內核支持VHDL和Verilog混合仿真的仿真器。它採用直接優化的編譯技術、Tcl/Tk技術、和單一內核仿真技術,編譯仿真速度快,編譯的代碼與平台無關,便於保護IP核,個性化的圖形界面和用戶接口,為用戶加快調錯提供強有力的手段,是FPGA/ASIC設計的首選仿真軟件。<取自Baidu 百科> 2..安裝 modelsim 在這邊示範的是  ModelSim PE Student Edition (學生嘛~~) 首先讓我們到 官網下載安裝程式 下載成功之後就安裝去吧 熟悉冗長的安裝過程~~ 超冗長的安裝對吧~~~ 安裝結尾 這裡記得點選  YES 安裝結束後會跳出個 網頁 要求填寫基本資料 這裡亂填就好XDD 但是信箱要確定能收的到 [HINT: 不想註冊真實信箱 ] 反正卻確定信箱有收到信件且有附件檔案 依照信件指示 將剛收到的附件放入指定資料夾當中 如此一...

Raspberry Pi樹莓派系列:甚麼是樹莓派??

圖片
目錄 甚麼是樹莓派(Raspberry Pi) 有什麼應用 學習前須具備的知識 哪裡可以買到 購買清單 影片介紹 參考資料 甚麼是 樹莓派(Raspberry Pi) ?         Raspberry Pi是一種低成本,只有 信用卡大小的微型電腦 ,可插在電腦螢幕或顯示器或電視機,當然也可使用鍵盤和滑鼠。 這是一個能力強大的小裝置,使各年齡層的人們去探索去學習,以及 學習像Scratch和Python的程式語言 。 它能夠做到你認知中一台桌上型電腦能做的事情,從上網和播放超高畫質影片,到製作報告,文書處理,以及玩遊戲 ,這小裝置能對會令你睜大雙眼 。 更重要的是,Raspberry Pi具有與外界互動的能力,而且已應用於不少數位計畫上,從電子樂器和家長看護器到簡易型氣象站和具有 紅外線攝影機 的鳥屋。我們希望看到正在使用Raspberry Pi的孩子們 , 正在世界各地學習coding和了解電腦是如何運作的。 有什麼應用? 網路--網站伺服器 , BT伺服器 ,NAS伺服器 ,Git伺服器 ,郵件伺服器 ,FTP站台 娛樂--XBMC ,超酷坦克車 ,四軸飛行器 ,電子書播放器...... 其他--LED電子看板 ,比特幣採礦機 ,聲控咖啡機 ,R2D2 ,滲透測試 學習前需要具備的知識 不用任何條件: ) 人人都可以學習 哪裡可以買到? raspberrypi 台灣樹莓派 RS Component raspberrypi 官方網站 露天拍賣 天瓏好像也可以 代購什麼的我還不曉得是怎麼run,所以無法在此替各位解答''orz 購買清單 最基本的B型板子 要價35元美刀* 電源供應器(5V, 1A ~ 2A)* 記憶卡(SD 卡)(最好4G以上還要顧慮相容性的問題)* 影音端子(HDMI 或 RCA) 輸入設備(USB 鍵盤與滑鼠) 網路連接線 外殼(非必備) 最好再買個散熱片 影片介紹 參考資料 台灣樹莓派 樹莓派官網 成大資工wiki Raspberry pi 的奇幻漂流 printf(" I'm EricWang ") What is Raspb...

C語言經典演算法(二)

圖片
1.判斷某年是否為閏年 說明:了解閏年的算法即可輕鬆解決,怎麼算的很多地方都找的到 2.獲得某年某月的最大天數 說明:使用Swith..case的方式可以輕鬆解題,注意判斷2月是否為閏年即可 3.輸入某年某月某日判斷這天是這一年的第幾天 說明:要知道是第幾天,將該月之前的每月總天數加起來,再加上到今天是幾號,接著判斷是否為閏年即可 4.求一個數的N階層(EX: 5! = 5x4x3x2x1) 說明:這寫法有很多種,差別只在於時間複雜度 5.求兩數的最大公因數(GCD)以及最小公因數(LCM) 說明:這題的重點在求出最大公因數,之後的最小公倍數就可以輕鬆解決,這裡推薦使用輾轉相除法求出最大公因數,接著再用最小公倍數的算法(axb)/GCD(a, b)即可 6.打印出三位數的水仙花 (水仙花是指一個N位數其各數字的立方和) 說明:我在計算的時候好像弄錯題目了XD,原本題意是要求出1~1000的水仙花,我只有弄出判斷是否為水仙花,雖然沒差就是了,這題多注意個十百千萬的運算即可 7.不依賴第三個變量實現兩數交換 說明:這種做法稍微有印象就好,因為這種做法的應用空間有限,會被自身的算法限制 8.將十進制換算成2-16進制 持續解答中... 9.將一個數分解成質因數 EX:90 = 2X3X3X5 說明:有時候正向思考解題是種障礙,這時候不如逆轉思考一下,我們已知一數可以被分解為質因數相乘,想當然,一個數可以被自己的質因數除到沒有,例如:90/2 = 45, 45/3=15, 15/3= 5 這樣想的時候,題目會變得異常簡單 10.猴子吃桃 猴子第一天摘下若干桃子,當即吃了一半,還不過癮又多吃了一個。第二天又將剩下的桃子吃掉一半,又多吃了一個。以後每天都吃了前一天剩下的一半零一個。到第10天再想吃時就只剩下1個,求第一天共摘多少個桃子。 說明:這題也是依樣逆轉思考會比較好解題,我們要求出總桃數,又已知每天吃的數量以及剩餘個數,從最後一天將桃子數量慢慢加回去,即可求得答案

C語言經典演算法(一)

圖片
前言:最近因為退了某堂很受不了的課程,所以一氣之下去網上了些程式題目來做          發現一系列叫做C語言經典演算法(X),正好呼應某堂課程,只好拿來寫寫手了,          程式能力原本就頗差,一寫才發現自己還有待加強,          不然世上的神人太多根本無法追上他們的車尾燈 1.印出9*9 說明 :這應該滿基本的沒啥問題 2.寫出費式數列,例如:1,1,2,3,5,8,13,21 說明 :費式數列的寫法有很多種 我還是採用遞迴的方式來寫 雖然速度不快就是 3.判斷1~100中有誰是質數 說明 :這也滿基本的,但有種質數的寫法滿特別,我建議大家應該看看 4.請找出完全數(perfect number) EX:6=1+2+4;28=1+2+4+7+14 說明 :第一次看到題目還不知道甚麼是完全數(不知是國小沒教還是忘記),基本上會判斷質數的話,這題就沒啥太大的問題,多注意判斷是否為完全數即可(這樣有說和沒說好像一樣) 5.將一組4*4的矩陣逆時針旋轉90度。 說明: 小心旋轉的時候不要轉錯就好 6.印出帕斯卡三角形。 說明 :上圖只有目的達到而已, 並沒有進行排版,這是有待加強的點 7.將輸入字串反向輸出 說明 :可以使用字元陣列或是指標的方式進行反向的動作,這邊是採用後者 8.字串複製 Strcopy(char*src,char* dest)       說明 :原題意是要求使用指標的方式移動,不熟的朋友也可以用字元陣列達到目的 9.求PI近似值可以用公式 (例如尤拉之類的) 說明 :求PI的寫法真的很多種,端看有幾種求PI的數學公式XD 10.輸入一字串,判斷是否為回文 (回文即由左到右和從右到左讀皆相同) 說明 :注意不要判斷到結束字元即可 結論:求各位大人不要笑我這喳喳的coding 技術...