離散對數計算器
每行一組 g,h,p,用逗號或空格分隔,如 5,8,23 表示求 5^x ≡ 8 (mod 23)
求解方法:
解的形式:
計算過程:
g 的階:
最多輸出:
m 上限位數:
分隔符:
計算結果
下載 CSV
| 序號 | 輸入(g,h,p) | 方法 | 解 x | 驗證 | 步數 | 說明 |
|---|
工具介紹及使用方法
線上離散對數求解器,解 g^x ≡ h (mod p) 中的指數 x;每行輸入一組 g,h,p 即可批次求解。
輸入格式:每行一組「g,h,p」,以逗號或空格分隔,例如
三種演算法:BSGS(Baby-step Giant-step,預設,m = ⌈√n⌉ 建 baby 表再逐 giant 步碰撞)、暴力列舉(適用於小 p,有迭代上限)、Pohlig–Hellman(適用於 p-1 光滑,n 分解為素數冪再 CRT 合成);選「全部對比」可一次看到三種方法的步數差異。
自動判定:不填 g 的階時會自動探測;會檢查 g 是否與 p 互質、p 是否為質數,並用 h^n ≡ 1 判斷 h 是否在 g 生成的子群裡,不在時明確提示「在給定範圍內無解」。
結果驗證:算出的 x 都會用 g^x mod p = h 複核,驗證欄給出通過與否;可選輸出所有解 x + k·n。所有大數運算用 BigInt,全程快速冪,p 最多 120 位。
輸入格式:每行一組「g,h,p」,以逗號或空格分隔,例如
5,8,23 表示求 5^x ≡ 8 (mod 23)。三種演算法:BSGS(Baby-step Giant-step,預設,m = ⌈√n⌉ 建 baby 表再逐 giant 步碰撞)、暴力列舉(適用於小 p,有迭代上限)、Pohlig–Hellman(適用於 p-1 光滑,n 分解為素數冪再 CRT 合成);選「全部對比」可一次看到三種方法的步數差異。
自動判定:不填 g 的階時會自動探測;會檢查 g 是否與 p 互質、p 是否為質數,並用 h^n ≡ 1 判斷 h 是否在 g 生成的子群裡,不在時明確提示「在給定範圍內無解」。
結果驗證:算出的 x 都會用 g^x mod p = h 複核,驗證欄給出通過與否;可選輸出所有解 x + k·n。所有大數運算用 BigInt,全程快速冪,p 最多 120 位。
操作步驟
- 每行按 g,h,p 格式貼上求解式。
- 選擇求解方法、解的形式與其他參數。
- 點擊執行。
- 複製或匯出解 x 與驗證結果。
留言板
全部留言 →-
還沒人說話,來搶個沙發?