由ed=1(mod φ(n)),可設 ed = k*φ(n)+1,k∈z由e = 3,0加減乘除和開方運算。
每種運算都能夠在關於n的位數的多項式時間內完成。
(設n的位數是d,加減法和除2運算可在o(d)時間內完成,乘法可在o(d²)時間內完成,
開方模擬手算也可以在o(d²)時間內完成)
因此能夠在關於n的位數的多項式時間內對alice的模n進行分解。
只需說明:1. φ(n)的取值只有c種(c是與n,d,e無關的常數)
2. 已知n和φ(n),則p,q有初等解析解
3. 每種基本運算都能夠在關於n的位數的多項式時間內完成
關於手算開方,就是利用 (10a+b)² - 100a² = 20ab + b²
1. 在m後面添上後2位,
2. 試商:取b=0..9,計算20ab + b²,得到滿足20ab + b²<=m的最大b值
3. 求餘:計算m = m - (20ab + b²)
4. 在a後添上一位b
注意到b是一位數,以上計算和比較都可以在o(d)時間內完成。
貪心演算法之證明要點 演算法導論16 2 5
貪心演算法之證明要點 演算法導論16.2 5 兩個性質 貪心選擇性質 乙個全域性最優解可以通過區域性最優得到。即存在乙個最優解是以貪心選擇開始的。最優子結構 乙個最優解包括期子問題的最優解。即乙個n的最優解分解成第一步的貪心選擇,和n 1的子問題,這個n 1的子問題也是最優的。最後要說明,第一步的貪...
演算法導論 5 KMP演算法複雜度證明
kmp演算法應該是看了一次又一次,比賽的時候字串不是我負責,所以學到的東西又還給網上的部落格了 退役後再翻開看,看到模板,心想這不是 o n 2 的複雜度嗎?有兩個迴圈也不能看做是 o n 2 的,這要用到攤還分析 這裡用到的模板是算競上的 next 1 0 for int i 2,j 0 i n ...
匈牙利演算法證明
增廣路徑 從未匹配點出發,未匹配邊,匹配邊,未匹配邊,直到遇到未匹配點的時候結束。每次找完增廣路徑後,將增廣路徑的邊與現有的匹配進行異或操作更新最大匹配集合。重複這個過程直到沒有增廣路徑。當沒有增廣路徑時,沒有一條邊是這樣的,端點沒有任何一點是屬於最大匹配邊集合中的點。那麼剩下的邊總有端點在最大匹配...