學海無涯
記錄思考、閱讀筆記與生活觀察的私人空間。於此沉澱,於此探索。
迷宮生成的取樣偏差:隨機 Kruskal 與 Wilson 的生成樹分布
隨機 Kruskal 對生成樹的取樣有偏差,Wilson 能均勻取樣。在 2×3 格線列舉 7! 種邊順序,15 棵樹各出現 360 次或 300 次,死路比例與直徑則用來挑適合關卡的迷宮。
踩地雷無猜測盤面的生成:首點規則與 solver 驗證
踩地雷無猜測盤面可用 solver 從指定起點篩選,首點安全仍可能留下必須猜的局面。比較首點開區域的機率與簡單 solver 的通過率,再決定如何重試或擾動盤面。
Lights Out 可解盤面判定與關卡生成:GF(2) 線性代數
標準 5×5 Lights Out 只有四分之一盤面可解,GF(2) 高斯消去算出 rank 23 就知道。從全暗盤面開始,每顆按鍵獨立以 1/2 機率選取,就能均勻產生可解盤面,再用最少按鍵數篩選關卡。
從 ModelCompare 到 PHP2Shell:發現、證明與修補的單位不同
12 個模型對人類的批評高度一致,PHP、Linux kernel、Node.js 同期出修補。說法一致、發現問題、證明問題、完成修補各算各的帳,把它們排成同一條證據鏈,每一件都會顯得比實際上更強。
估 AI prototype 的時程要拆兩段:從零到可展示,從可展示到上線
AI 讓 prototype 從零到可展示便宜了很多,驗證、併發、金流處理與可觀測性的成本卻沒降那麼多。估時程和報價時,我會把可展示與可上線拆開算,後半段照過去上線的經驗估,不打 AI 折扣。
讓 .proto 當唯一契約來源:Go 單一 port 同時服務 gRPC 與 HTTP/JSON 的做法與代價
讓 .proto 成為唯一契約來源,型別與各個入口都從它產生。本文用 Go 範例示範 gRPC 與 HTTP/JSON 共用 h2c port 和共用 timeout 的代價,並以 gortexa 說明 MCP 的接法。
ClickHouse 寫入怎麼批次:queue 加 Go worker、async insert 與重試去重
ClickHouse 寫入用 queue 加 Go worker 累積 batch,大小與時機最好掌控;無法自行累積時可用 async insert,重試則靠去重。Replicated 表更新別用 now(),附 26.9 實測。