原创 快來算一算你寫了多少行代碼

前面我們一直在介紹圖形界面,這次換個口味,在命令行實現代碼行數統計程序。本程序共 135 行,其中 18 行空行、110 行有效代碼、7行註釋,大小爲 7.71 KB。主要思路通過 argparse 設置四個參數 -f, -p, -s,

原创 Nim 編程極簡入門

Nim 編程博客 Nim 編程早茶 Nim 編程實現霍夫曼編碼 Nim 語言是一門靜態類型的編譯語言,語法上與 Python 類似,高效而優雅。 安裝 Nim 在官網 https://nim-lang.org/install.ht

原创 快速排序 Nim 語言實現

快速排序是一種平均時間複雜度爲 nlog(n) 的原地排序,很適合大規模數據排序。它採用一種分而治之的手段,劃分子問題,並遞歸地求解問題,最後將子問題的解合併爲原問題的解。 快速排序的思想:在待排序列表中尋找一個分位點,處理列表,

原创 Karplus-Strong 算法合成音符

大家有沒有聽過音叉發出的聲音?音叉振動產生的聲波很接近正弦波。計算機合成的純正正弦波,點擊下面的音頻即可試聽。下面是頻率爲 100 HZ 的音頻。記得給公衆號加個星標,不會錯過精彩內容。怎麼說呢,和我們平時聽到的樂器聲完全不一樣。這是因

原创 客戶端異步非阻塞 IO 新的流模式(基於 Nim 語言)

Nim 編程語言是一個新型的靜態類型、命令式編程語言,支持過程式、函數式、面向對象和泛型編程風格而保持簡單和高效。Nim 從Lisp繼承來的一個特殊特性--抽象語法樹(AST)作爲語言規範的一部分,可以用作創建領域特定語言的強大宏系統。

原创 動畫演示廣度優先算法尋找最短路徑

上一節,我們剛剛介紹了使用深度優先算法(DFS)解決迷宮問題,這一節我們來介紹廣度優先算法(BFS)。BFS 算法與 DFS 十分相似,唯一的區別就是 DFS 算法使用後進先出的棧來保存節點,而 BFS 算法使用先進先出的隊列來存儲節點

原创 數據結構之單鏈表[Nim 語言實現]

這一節,我們來介紹單鏈表這種數據結構。 簡介 單鏈表是一種邏輯上連續,而在內存存儲位置不連續的線性結構。使用單鏈表,在插入和刪除已知節點時,可以以 O(1) 的時間複雜度完成。 單鏈表由一個個節點組成,每個節點包含當前元素,以及下

原创 Nim 語言編程實現超級簡單的均勻分佈

Nim 語言是一門高效而優雅的系統級編程語言,官網如下:https://nim-lang.org/ 中文官網:https://nim-cn.com/ 下面讓我們使用 Nim 語言實現一個簡單的均勻分佈 首先設置一個種子值,這決定隨

原创 Nim編程早茶之死代碼[dead code]消除

Nim 每日早茶 Nim 語言中的死代碼[dead code]消除 https://tea.nim-cn.com/nim-lang-1.html Nim 語言中的死代碼[dead code]消除? Nim 語言的編譯器,會從最終的

原创 Nim 編程入門之產生指數分佈的隨機數

這一節,我們使用 Nim 語言來實現符合指數分佈的隨機數。 Nim 語言是一門高效而優雅的系統級編程語言,可以編譯成 C, C++, javascript 等後端。 官網如下:https://nim-lang.org/ 中文官網:

原创 hexo 搭建簡約的個人博客並部署到雲服務器

使用 hexo 搭建一個簡約的個人博客並部署到雲服務器上。https://tea.nim-cn.com/archives/環境簡介我使用的是 ubuntu 系統,使用的是阿里雲的服務器,域名是已經備案的 Nim 中文社區 官網的子域名。

原创 Nim 編程語言實現超級簡單的高斯分佈

高斯分佈(gauss) 常用的一種分佈,這一節我們來介紹如何產生符合高斯分佈的隨機數。 Nim 語言是一門高效而優雅的系統級編程語言,可以編譯成 C, C++, javascript 等後端。 官網如下:https://nim-l

原创 Nim 編程實現大整數乘法算法

我們平時接觸的長乘法,按位相乘,是一種時間複雜度爲 O(n ^ 2) 的算法。今天,我們來介紹一種,時間複雜度爲 O (n ^ log 3) 的大整數乘法(log 表示以 2 爲底的對數)。 介紹原理 karatsuba 算法要求

原创 Python 實現大整數乘法算法

我們平時接觸的長乘法,按位相乘,是一種時間複雜度爲 O(n ^ 2) 的算法。今天,我們來介紹一種時間複雜度爲 O (n ^ log 3) 的大整數乘法(log 表示以 2 爲底的對數)。介紹原理karatsuba 算法要求乘數與被乘數

原创 超級簡單的虛擬機(Python 實現)

我們這次實現的簡單虛擬機,和計算機的 cpu 有點類似。無非就是取指令,執行指令之類的操作。   常見的虛擬機通常分爲兩類,一種是棧式虛擬機,另一種是寄存器虛擬機。比如說 CPython, Jvm 就是基於棧的虛擬機,而 lua 則是基於