【问题标题】:SAGE - 'NoneType' error on valid Sage syntaxSAGE - 有效 Sage 语法上的“NoneType”错误
【发布时间】:2015-05-01 13:32:18
【问题描述】:

我正在尝试编写一个程序来计算 sage 中椭圆曲线的生成点。

这样做的功能是:

E.gen(0)

其中 E 是一些椭圆曲线。

如果我在 online version of Sage 上执行此操作,它可以正常工作:

sage: E = EllipticCurve(GF(73),[6,0])
sage: E.gen(0)
(18 : 10 : 1)

但是,如果我在本地尝试:

sage: E = EllipticCurve(GF(73),[6,0])
sage: E.gen(0)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-cfa3068996f9> in <module>()
----> 1 E.gen(Integer(0))

/usr/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_generic.pyc in gen(self, i)
   1309             NotImplementedError: not implemented.
   1310         """
-> 1311         return self.gens()[i]
   1312 
   1313     def rst_transform(self, r, s, t):

TypeError: 'NoneType' object has no attribute '__getitem__'

我使用的是 Sage 6.6 版,到目前为止我看到的所有文档都说这应该可以工作,并且可以在 sage 的在线版本中使用。任何人都可以对此有所了解吗?

【问题讨论】:

  • 我认为为了帮助您,我们需要更多关于您的平台的信息,您下载的确切二进制文件,当然最重要的是您尝试过的椭圆曲线。
  • 谢谢,我已经更新了问题
  • 在 Sage 6.7.beta2 中我得到 (68 : 65 : 1),在 6.6 中我得到 (54 : 53 : 1)(这是在 Mac 10.7 上)。也许这不是特别确定的......无论如何,你的错误似乎暗示你的曲线上根本没有点。 E.gens() 是做什么的? (我假设它会给出一个空列表或None。)
  • (同样,您的 平台 以及您下载的二进制文件(适用于什么平台)会很有帮助。)
  • 我在 Gentoo 上的 Sage 6.6 中得到 (18 : 63 : 1)。你是怎么安装sage的?您是否使用了发行版的包管理器或pre-built tarball from the sagemath site?如果是前者,正如回溯中的文件路径所暗示的那样,您可以尝试后者吗?

标签: python python-2.7 math sage elliptic-curve


【解决方案1】:

我重新安装了 Arch Linux,解决了这个问题。我猜这可能与我的 python2/3 配置有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2019-01-30
    • 2017-03-18
    • 2012-10-17
    相关资源
    最近更新 更多