斯特林(Stirling)數介紹與程式計算(C++)

這學期在學離散數學的代數與集合論,剛好上到了 Stirling 數這一章,老師便叫我們寫個程式來計算 Stirling 數並撰寫實驗報告,要用遞迴和非遞迴方式實現並比較兩者差異,計算公式本來就是遞推,所以用遞迴很好實現,主要是非遞迴的實現思路較為難想,當時其實已經把這篇文章的原型寫好了,最後的時間複雜度比較我想要用圖表來呈現,不過當時案牘勞形沒時間研究繪製方法,擱到了寒假才繼續完成。

Arch Linux 第一次打包就上手

Packaging

Photo by Kira auf der Heide on Unsplash

Arch Linux 採用類似 ports 的構建系統,使用 PKGBUILD 這種軟體包建立描述檔案,用 makepkg 從原始碼構建二進制軟體包。

最近參加了軟創比賽,官方要求必須使用快應用開發,雖然 IDE 有提供 Linux 版,但只有 deb 格式,AUR 也沒人打包,身為一位 Arch Linux 的愛好者怎麼能因此而放棄呢,於是我便打算親自打包,用 Arch Linux 這麼多年了,Arch Linux 的倉庫以軟體多聞名,大部分軟體都已經有人打包好了,不用自己打包,沒想到我也有需要自己打包的一天,第一次打包成功的那刻非常有成就感,我也能變成 Arch Linux 的貢獻者了。

Linux 下使用 MASM 編譯組合語言

電路

Photo by Umberto on Unsplash

最近在學習王爽的《匯編語言》(組合語言),書裡面教的內容以 16 位元的 Intel 8086 CPU 為學習平台,而教科書上使用的編譯器是微軟的 MASM,語法也是針對 MASM 的,而非開源跨平台的 NASM,所以不能直接在 Linux 編譯執行,需要用 DOSBox 模擬 DOS 環境才行,MASM 比較封閉且支援平台少,如位元的果你打算學組合語言的話建議學 NASM 語法,要不是學校要求用 MASM 我也想用 NASM 編譯。