SageMathCloud:随机椭圆曲线

时间:2015-06-09 08:43:18

标签: python sage elliptic-curve

load cong.sage 在sage中定义random_elliptic_curve命令,但我使用的是SageMathCloud。我必须编写什么来生成随机椭圆曲线?

1 个答案:

答案 0 :(得分:1)

显然,你所指的Sage程序是William Stein的GitHub存储库中的cong.sage。可以将其导入您的项目:例如,从GitHub下载,将文件扩展名更改为.sagews,上传到您的项目。但是在SageMathCloud中从另一个Sage文件导入定义似乎很棘手(如果可能的话),并且由于您只是想要这个特定的函数,为什么不复制粘贴它的定义。

这是一个简单的函数,可以在上面链接的文件的最后找到:

def random_elliptic_curve(p):
    """
    Construct and return a random elliptic curver over the finite
    field of order p.
    """
    p = ZZ(p)
    if not is_prime(p):
        raise ValueError, "p (=%s) must be a prime integer."%p
    F = FiniteField(p)
    while True:
        try:
            return EllipticCurve(F, [F.random_element(), F.random_element()])
        except ArithmeticError:
            pass
    return E