如何有效率地寫程式判斷質數和尋找質數? 2018 年 10 月 14 日 Magic Len 研究分享、 Go、 Java、 數學邏輯、 Rust、 JavaScript 一個質數(Prime)是一個大於1,且無法找到除了自己本身和1之外的自然數能整除它的自然數。舉例來說,2、3、5、7、11、13和17均為質數。質數是數學上的難題,即便數學已經過幾千年的發展,卻也還是無法找出一個能完美產生出質數的函數。在學習寫程式的過程中,儘管在現實社會中幾乎用不到,我們還是會常常遇到判斷質數或是尋找質數的問題。那麼,究竟要如何利用程式來處理判斷質數和尋找質數呢? 繼續閱讀
使用Node.js進行64位元的整數運算 2018 年 6 月 22 日 Magic Len Rust、 JavaScript JavaScript的Number採用64位元的IEEE 754標準來表示整數和浮點數數值,其中整數的安全範圍在-2^53 - 1到2^53 - 1之間。換句話說,Node.js既不能直接使用到32位元的整數,同時也無法使用64位元的整數。因此,如果要拿Node.js來做一些稍微複雜的計算,就需要撰寫額外的程式來處理資料型態的部份,進而影響到執行效能。 繼續閱讀
如何使用Node.js產生QR Code? 2018 年 6 月 21 日 Magic Len Rust、 JavaScript 因行動裝置的流行而跟著帶動起來的QR Code,是眾多條碼類型的其中一種,它讓我們的生活更便利,傳遞資訊的速度更快,省下許多使用鍵盤打字的時間。如果要產生出QR Code,已經有許多相關的現成工具能夠使用,甚至還能直接在網頁上產生。可是如果要我們自己來做的話,究竟要如何用Node.js寫個程式來產生QR Code呢? 繼續閱讀
如何使用Node.js取得Linux作業系統的記憶體資訊? 2017 年 11 月 11 日 Magic Len 研究分享、 Rust、 JavaScript 使用Node.js開發後端程式的時候,在某些情況下可能會需要查看運行環境還剩下多少的記憶體來決定是否繼續進行工作,那麼該如何使用Node.js來獲取運行環境的記憶體資訊呢? 繼續閱讀
如何在Node.js上使用「sysconf」取得Linux系統的組態資訊? 2017 年 10 月 22 日 Magic Len Rust、 JavaScript 在Linux系統上使用C/C++語言開發程式的時候可以透過引用「unistd.h」來呼叫「sysconf」函數,在程式執行階段(runtime)獲取指定的系統組態資訊,例如記憶體大小、CPU數量、最大行程(process)數或各種的最大字數。然而,如果是想要在Node.js上抓取這些系統組態資訊,該怎麼做呢? 繼續閱讀
計數排序法(Counting Sort),只需線性時間就能完成的超快排序法 2017 年 10 月 21 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 計數排序(Counting Sort)演算法是不需進行比較的排序演算法,顧名思義,它會去數元素的數量來進行排序。這種排序法只需要線性時間和空間的複雜度就可以完成排序,比時間複雜度為O(nlogn)的演算法還快,而且作法也不會太難。雖然如此,計數排序法是並不算是常見的排序演算法,因為它只能用來排序已知數值範圍的序列(由於要直接對應序列的索引值,所以這組數值通常會是一組整數)。舉例來說,已知序列中的每... 繼續閱讀
使用Node.js進行32位元的有號整數運算 2017 年 8 月 9 日 Magic Len Rust、 JavaScript JavaScript的Number採用64位元的IEEE 754標準來表示整數和浮點數數值,其中整數的安全範圍在-2^53 - 1到2^53 - 1之間。換句話說,Node.js既不能直接使用到32位元的整數,同時也無法使用64位元的整數。因此,如果要拿Node.js來做一些稍微複雜的計算,就需要撰寫額外的程式來處理資料型態的部份。像是32位元整數經常會遇到的「溢位」,想要在Node.js上重現就... 繼續閱讀
如何使用Node.js快速搜尋字串? 2017 年 8 月 8 日 Magic Len Rust、 JavaScript 字串搜尋是開發程式的時候時常會碰到的議題,由於常用,所以了解一個有效率進行字串搜尋的方式是很重要的。Node.js使用的Chrome V8 JavaScript引擎對於字串處理的效能已經十分良好,在很多情況下只要很直覺地使用原生的JavaScript或Node.js的功能就可以達成最佳效果了。像是字串搜尋,JavaScript的字串本身就有「indexOf」方法可以使用,也有功能強大的「RegEx... 繼續閱讀
不同函式庫算出來的CRC數值不同?如何使用Node.js計算正確的CRC? 2017 年 8 月 7 日 Magic Len Rust、 JavaScript 循環冗餘校驗(CRC, Cyclic Redundancy Check)是一種簡單快速的雜湊函數,可以藉由比對資料傳輸或是儲存前後的循環冗餘校驗碼,檢測其是否有錯誤發生。常被用來作為伺服器應用為目的來使用的Node.js,會有很大的機會需要使用CRC進行一些計算。可惜的是,Node.js雖然可以藉由內建的「crypto」模組來使用許多常見的雜湊函數計算資料的校驗和(checksum),但就是不支援... 繼續閱讀
Node.js也能用的StringBuilder 2017 年 8 月 6 日 Magic Len C & C++、 JavaScript 有學過Java的人應該會知道「StringBuilder」或是「StringBuffer」這兩個在「java.lang」套件下的類別,常被用來處理需要一直被改變內容的字串。由於Java程式語言一個字串(String)有著不可變物件(Immutable Object)的特性,如果直接使用String類別來進行字串的處理,在改變字串的過程中,每次字串內容的變化將會產生出新的String物件來表示,也導... 繼續閱讀