WSL

interop WSL 會自動把 Windows Path 加到 Linux 的 Path 但很多 install script 會直接跑看看 node npm yarn cargo 確認你有沒有安裝 (e.g. Lunarvim 的 script) 他們就會吃到 Windows 的 Path 然後用 Windows 的 yarn 裝 dependency 然後就會發生神秘事件 可以關掉這功能,在 /etc/wsl.conf 加入 [interop] appendWindowsPath = false 可以把 explorer vscode 這種比較常用的東西加到 alias 例如: ~/.zshrc alias explorer="/mnt/c/Windows/explorer.exe" DNS 不知道為啥在 Windows host 開 VPN 的時候 WSL 的 DNS 就會壞掉 WSL2 , problem with network connection when VPN used (PulseSecure) · Issue #5068 · microsoft/WSL (github....

March 24, 2022

費氏數列

最近在學寫程式 剛好遇到費氏數列的問題 覺得很有趣 就記錄下來 費氏數列的定義應該不用多說 $$F_0 = 0, F_1 = 1$$ $$ F_n = F_{n-1} + F_{n-2} $$ 那扣要怎麼寫呢 最直觀當然就是照著定義寫遞迴了 def fib(n): if n == 0: return 0 if n == 1: return 1 return fib(n-1) + fib(n-2) 但是這樣數字一大就會很慢 為什麼呢? 因為很多數字都重複算了 例如算 fib(6) 的時候 由下圖可以看到 f(4) 被算了兩次 f(3) 被算了三次 解決辦法就是把算的結果記起來 就不用再算一次了 可以這樣寫 from functools import cache @cache def fib(n): if n == 0: return 0 if n == 1: return 1 return fib(n-1) + fib(n-2) 不過這樣浪費記憶體空間...

March 21, 2022