load cong.sage
在sage中定义random_elliptic_curve命令,但我使用的是SageMathCloud。我必须编写什么来生成随机椭圆曲线?
答案 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