SageMath使用指南——筆記

最近學習了一下SageMath中的函數,在這裏做個筆記,以供大家學習和參考。

1. random_prime(n,proof=None,lbound=2)

  • 該函數返回一個隨機數 介於 lbound 和 n 之間,即從小於或等於n的素數集中隨機選擇返回的素數p。

  • 其中proof : bool類型或None(默認值:None)如果爲False,則該函數使用僞素數測試,對於真正大的數,該測試快得多,但不提供素數證明。 如果爲None,則使用全局默認值(請參閱“ sage.structure.proof.proof”)

2. FiniteField()

  • 該函數返回給定階數的全局唯一有限域,該域具有由給定名稱標記的生成器,並可能帶有給定模數。

  • 別名:您也可以使用“ GF”代替“ FiniteField”,它們是相同的。

  • 參數:

  • order:一個素數

  • name: 字符串,可選。請注意,省略變量名稱時(創建擴展字段)可能會有很大的速度損失,因爲這樣做會觸發僞Conway多項式的計算,以定義素數字段擴展的連貫格。速度懲罰隨着延伸度的大小和延伸度的因素的數量而增加。

  • modulus: (可選)字段的定義多項式,或指定用於生成此類多項式的算法的字符串。如果“ modulus”是字符串,則將其作爲參數“ algorithm”傳遞給“ irreducible_element()”;有關該參數的允許值,請參見此處。特別是,您可以指定“ modulus =” primitive“”以獲得基本多項式。如果不指定變量名,則可以不指定模數。

  • impl:(可選)一個字符串,用於指定有限域的實現。可能的值爲:

    • modn:以p爲模的整數環(僅適用於素數字段)。
    • givaro:僅適用於最多65521個元素的字段)。
    • ntl:-使用GF2X的NTL(僅在特徵2中)。
    • pari or pari_ffelt:PARI的“ FFELT”類型(僅適用於 擴展字段)。
  • elem_cache: 默認值:order <500)緩存所有元素以避免創建時間;除非“ impl =‘givaro’”被忽略

  • repr: (默認:“‘poly’”)被忽略,除非“ impl =‘givaro’”;控制元素向用戶打印的方式:

    • log: repr爲“ log_repr()
    • int: repr是“ int_repr()
    • poly: repr是“ poly_repr()
  • check_irreducible:驗證多項式模數是不可約的

  • proof:如果爲“ True”,則使用可證明素性檢驗否則只能使用僞素數檢驗。

3. EllipticCurve()

  • 該函數的作用是構造一條橢圓曲線。

在Sage中,橢圓曲線始終由一個較長的Weierstrass方程(的係數)指定

  y ^ 2 + a_1 xy + a_3 y = x ^ 3 + a_2 x ^ 2 + a_4 x + a_6。

輸入:

有幾種方法可以構建橢圓曲線:

  • “ EllipticCurve([a1,a2,a3,a4,a6])”:具有給定a不變量的橢圓曲線。不變量被強制爲一個公共父代。如果都是整數,則將它們強制轉換爲有理數。

  • “ EllipticCurve([a4,a6])”:與上述相同,但a_1 = a_2 = a_3 = 0。

  • “ EllipticCurve(label)”:使用給定的標籤從Cremona數據庫返回QQ上的橢圓曲線。標籤是字符串,例如““ 11a”“或”“ 37b2”“。標籤中的字母*必須爲小寫(Cremona的新標籤)。

  • “ EllipticCurve(R,[a1,a2,a3,a4,a6])”:使用給定的a不變量在R上創建橢圓曲線。儘管大多數功能僅在字段上實現,但此處R可以是任意交換環。

  • “ EllipticCurve(j = j0)”或“ EllipticCurve_from_j(j0)”:返回一個j不變爲“ j0”的橢圓曲線。

  • “ EllipticCurve(polynomial)”:從多項式係數中讀取a不變式,請參閱“ EllipticCurve_from_Weierstrass_polynomial()”。

  • “ EllipticCurve(cubic,point)”:由平面三次方(三個變量的齊次多項式)定義的橢圓曲線,帶有有理點。除了給出長度爲2或5的* list 列表之外,還可以給出係數給一個元組*。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章