🎲 隨機化演算法
隨機化不是不確定,而是利用隨機性來簡化問題。
- Monte Carlo 演算法:有可能出錯,但錯誤率可控制
- Las Vegas 演算法:永遠正確,但執行時間是隨機的
隨機化演算法在密碼學、大數據、機器學習中無所不在。
🔥 Vibe Coding 核心 Prompt
【隨機化快速選擇詠唱範例】
「請幫我實作 Randomized Quickselect:1. 實作一個函式找到陣列中第 K 小的元素。2. 隨機選擇 pivot 而不是固定選第一個。3. 分析為什麼隨機化可以避免最壞情況 O(n²)。4. 比較固定 pivot 與隨機 pivot 在不同輸入下的效能。5. 用實驗證明期望時間複雜度為 O(n)。」
🎯 課程大綱
- Monte Carlo vs Las Vegas
- Randomized Quickselect / Quicksort
- 隨機化最小割
- 密碼學中的隨機化
- 機率分析與集中不等式