首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数直接在Sage工作表中工作,但在库中不起作用。

函数直接在Sage工作表中工作,但在库中不起作用。
EN

Stack Overflow用户
提问于 2021-03-19 03:39:34
回答 1查看 60关注 0票数 1

我在上一门课,代数密码学导论。我们用的是Sage的一切和CoCalc。这是我听说过的第一节课。老师为我们的使用提供了许多方便的功能。我不喜欢在CoCalc中重复将它们复制到新的Sage工作表中。所以我把它们放进了图书馆。

这花了一些时间,但我终于学会了,要使用它们,我必须在Sage中这样做:

代码语言:javascript
复制
load_attach_path('/path/to/the/directory')
%attach elliptic_curve_common.sage

现在,有一个函数是她为我们编写的,叫做HPSonEC。这个函数是关于使用Hellman银漏洞破解椭圆曲线上的加密。令人恼火的是,该函数在使用时不会像上面那样工作,我得到了以下错误:

代码语言:javascript
复制
Error in lines 5-5
Traceback (most recent call last):
  File "/cocalc/lib/python3.8/site-packages/smc_sagews/sage_server.py", line 1230, in execute
    exec(
  File "", line 1, in <module>
  File "<string>", line 298, in HPSonEC
  File "<string>", line 263, in listptorder
  File "<string>", line 151, in ECTimes
  File "sage/rings/rational.pyx", line 2401, in sage.rings.rational.Rational.__mul__ (build/cythonized/sage/rings/rational.c:20911)
    return coercion_model.bin_op(left, right, operator.mul)
  File "sage/structure/coerce.pyx", line 1248, in sage.structure.coerce.CoercionModel.bin_op (build/cythonized/sage/structure/coerce.c:11304)
    raise bin_op_exception(op, x, y)
TypeError: unsupported operand parent(s) for *: 'Rational Field' and 'Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 389787687398479 over Finite Field of size 324638246338947256483756487461'

但是,如果我接受这个函数,以及它所依赖的其他函数,并将它们复制到我的Sage工作表中,它们就能正常工作。从字面上讲,代码没有任何区别。可能有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-19 17:09:27

当从工作表或.sage文件中读取代码时,将应用Sage准备器。

.py文件读取代码时,情况并非如此。

有很多问题都是这样提出的:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66702213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档