1
我試圖用ntl計算有限域(組)中元素的順序。但我沒有找到任何功能來做到這一點! 任何人都可以引導我嗎?如何使用ntl計算有限域中元素的順序?
我試圖用ntl計算有限域(組)中元素的順序。但我沒有找到任何功能來做到這一點! 任何人都可以引導我嗎?如何使用ntl計算有限域中元素的順序?
我認爲沒有構建方法可以做到這一點。
但是你可以自己寫一個腳本。
字段F
有兩個操作,加法(+
)和乘法(*
)。首先,您必須指定是否想知道組(F,+)
或組(F \ {0}, *)
中元素g
的順序。
查找(F,+)
的g
順序:
這是容易的情況下,由於該組中的每個元素的順序爲p,如果字段具有p個米元件。
尋找g
的訂單(F \ {0}, *)
:
這是一個硬點。中的g
的順序也被稱爲discrete logarithm。基本上,您可以嘗試每個k = 1,...,p m。但是這需要一段時間。一個簡單的方法是Baby-step giant-step算法。 我從來沒有嘗試過,但你也可以看看使用NTL的this discrete logarithm implementation。
非常感謝親愛的AbcAeffchen,其實我知道,這個功能是聖人,帕裏/ GP和Magma就緒(內置),那些使用NTL庫。不知何故,我必須以可靠的方式(編碼!)在NTL中獲得答案。現在我試圖在C/C++中調用它們的函數並使用結果,但這不是一件容易的事情! – 2014-09-02 05:15:18
如果你想用NTL計算離散對數,你應該看看Baby-step巨步算法。它很簡單,並且有組,沒有更快的算法是已知的。 – AbcAeffchen 2014-09-02 08:34:36