如何寫程式處理中華民國的身份證字號? 2022 年 11 月 22 日 Magic Len 研究分享、 Rust、 JavaScript 中華民國的「身份證字號」,正式名稱為「國民身分證統一編號」,是由一個代表出生地的大寫英文字母加上九個數字所組成。雖然《戶籍法》第五十七條第一項規定「年滿十四歲者,應申請初領國民身分證;未滿十四歲者,得申請發給」,但國民就算沒有國民身份證,在出生之後報戶口就會有身份證字號了。當然,台灣不是只有本地國民而已,也存在著他國國籍的人,這類人所使用的相關編號,為了能夠方便在現有的系統中使用,已於西元2021... 繼續閱讀
如何統一「NODE_ENV」環境變數在不同作業系統下的設定方式? 2022 年 11 月 17 日 Magic Len JavaScript 「NODE_ENV」是使用Node.js常去設定的環境變數,不過它其實並不是Node.js本身會去使用到的環境變數,而是這個生態系約定俗成的用法。在Linux、macOS等Unix-like的作業系統環境下,要設定程式的環境變數的值,只要在執行指令的前面加上「變數=值」並用空格隔開即可,但在如Windows等其它作業系統,指令就不支援這樣的語法。 繼續閱讀
建立 TypeScript 專案的起手式 2022 年 11 月 10 日 Magic Len JavaScript JavaScript有著資源豐富的生態圈,但同時也令人在面對這一堆套件、工具以及設定時眼花撩亂、不知所措。TypeScript能用比較嚴謹的方式來開發JavaScript程式,可以大大地提升程式碼的可維護性,也可以增加多人協作時的效率。筆者甚至覺得我們都應該用TypeScript來編寫JavaScript程式會比較好。然而,要建立出一個完整TypeScript專案是一件繁瑣的事情,我們會需要安裝多... 繼續閱讀
寫程式算階乘,關於階乘的三兩事 2022 年 10 月 27 日 Magic Len 研究分享、 Go、 Java、 數學邏輯、 Rust、 JavaScript 正整數的階乘(Factorial)是小於或等於該數的所有正整數的乘積,若正整數為N,用N!來表示N的階乘。至於0!是階乘的特例,它被定義為1。階乘的運算具有遞迴(recursion)概念,常作為學習程式邏輯的材料,而這篇文章將會說明階乘相關的程式計算。 繼續閱讀
如何寫程式來做等值的貨幣或是物品的數量換算? 2022 年 7 月 28 日 Magic Len 研究分享、 Java、 數學邏輯、 Rust、 JavaScript 不同國家有不同的貨幣流通,不同的貨幣也會有不同的價值。其實也不只貨幣,任何物品,無論實體的或是虛擬的都一樣,只要價值可以被衡量,就可以被等值換算。講到錢就傷感情,以蘋果和橘子來舉例好了,假設2顆蘋果等值於3粒橘子,那麼8顆蘋果就會等值於12粒橘子。 繼續閱讀
如何判斷兩個浮點數是否相等?是否能整除?相除後餘數是多少? 2022 年 7 月 21 日 Magic Len 研究分享、 Java、 Rust、 演算法、 JavaScript 使用電腦去進行浮點數運算的時候,在某些條件下會出現顯而易見的誤差,而這樣的誤差,就會導致與浮點數有關的計算或是邏輯判斷出現問題。 繼續閱讀
如何使用程式語言來產生數字分頁導覽列? 2020 年 11 月 10 日 Magic Len Rust、 JavaScript 在製作網頁或是應用程式的圖形使用者介面時,如果需要顯示比較大量的資料,通常製作「換頁」、「分頁」功能。但是若是做了這樣的功能,就必須要讓使用者能夠有方法進行「跳頁」的動作。要讓使用者能夠在圖形介面上進行跳頁,比較簡單的方式就是弄個下拉式選單把所有頁碼列出來讓使用者選,或者乾脆放上一個文字輸入方塊直接讓使用者自行輸入要查詢的頁碼。當然,比較潮的方式還是弄一個數字分頁導覽列(Pagination Ba... 繼續閱讀
用動態規劃解決問題:零壹背包問題(0/1 Knapsack Problem) 2020 年 8 月 4 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 一個背著背包的小偷闖空門偷東西,他必須趁屋主回來之前把有價值的物品塞進包包內帶走。考慮到小偷自身的行動力,背包能裝的物品總重量有限,小偷要如何選擇物品才能獲得最高的總價值? 繼續閱讀
用動態規劃解決問題:找零錢問題(Coin Change Problem) 2020 年 7 月 28 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 許多人認為身上如果帶太多的零錢會讓行動變得不方便,因此會希望商店店員在找零錢的時候能夠以最少的硬幣數來找,而不是全部都用1元塞給我們。 繼續閱讀
用動態規劃解決問題:基本觀念(有重疊子問題的問題) 2020 年 7 月 21 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 動態規劃(Dynamic Programming,簡稱DP)是一種解決問題的技巧,主要被用來優化那些「記不住自己過去曾解出來的答案所以只好重複再解」的演算法,讓它們可以「記憶」已經找出來的答案,從而不斷利用,以大大降低時間複雜度(從指數級降到線性)。 繼續閱讀