Astro 架站筆記(六):在文章中加入數學式子,使用 KaTeX

之前除了純數學的內容,在計算機科學的領域也時常會需要用到一些數學。例如推導某演算法的時間複雜度,加密原理、或是機器學習中的某些理論證明,都要能列出數學式子來表達。

在撰寫更專業的學術刊物上,通常使用 LaTeX 作為排版和產生數學式子等內容的系統。而想在網頁上渲染 LaTeX 的數學式,則有常見的兩種 Libraries 來做選擇:KaTeX 或是 MathJax。

今天就來聊聊在 Astro 中如何套用數學渲染 Library 吧,主要以 KaTex 來做介紹。

繼續閱讀

由 LeetCode 1922 數學題,推導乘法同餘性質

最近在看到了 LeetCode 1922. Count Good Numbers 的題目後,發現幾乎是一題純數學的題目,需要理解 Modular Exponentiation(模冪運算)這個技巧才能夠順利解題。

想當初在學習非對稱式加密的核心技術 RSA 時,所接觸到的 Euler’s Theorem(歐拉定理)就大量用到模(Mod,取餘數)運算。

這次的題目正巧也需要對於模運算性質有所理解,才能得出有效率的解法。在理解完題意之後,結論是需要透過程式來計算以下算式:

$$
(5^x \cdot 4^y) \bmod (10^9 + 7)
$$

其中題目限制 $x, y \leq 10^{15}$,這也就意味 $5^x \cdot 4^y$ 的數值可能相當大,遠大於絕大部分的程式語言中單一變數能儲存的數字上限。

繼續閱讀