python 椭圆曲线_Python、Sympy和椭圆曲线
我试图用python编写一个椭圆曲线的简单实现。在
所以我有一个简单的椭圆曲线类:class EllipticCurve:
O ="O";
def __init__(self,a,b):
self.a = a
self.b = b
def __eq__(self, other):
if isinstance(other, EllipticCurve):
return self.a == other.a and self.b == other.b
return NotImplemented
def __ne__(self, other):
result = self.__eq__(other)
if result is NotImplemented:
return result
return not result
@property
def discriminant(self):
return 4*a**3+27*b**2
椭圆曲线上点的一类:
^{pr2}$
虽然我想给它们添加一些功能,但是它们可以处理a,b和x,y的实际整型值
然而,我的问题是当我试图用sympy来表示a,b和x,y时。
理想情况下,我的目标是计算证明椭圆曲线上3个点的结合性质,即(P+Q)+R=P+(Q+R)。在
现在,我可以得到p+Q的正确结果:a,b = symbols('a b')
x1,y1 = symbols('x1 y1')
x2,y2 = symbols('x2 y2')
x3,y3 = symbols('x3 y3')
E = EllipticCurve(a,b)
P = Point(E,x1,y1)
Q = Point(E,x2,y2)
R = Point(E,x3,y3)
P+Q
print(simplify((P+Q).x))
哪些输出,正确地说:-x1 - x2 + (y1 - y2)**2/(x1 - x2)**2
此外,如果我这样做:expr = (P+Q)+R
print(simplify(expr.x))
我也(我认为)正确地得到:x1 + x2 - x3 + (y1 + y3 - (y1 - y2)*(2*x1 + x2 - (y1 - y2)**2/(x1 - x2)**2)/(x1 - x2))**2/(x1 + x2 + x3 - (y1 - y2)**2/(x1 - x2)**2)**2 - (y1 - y2)**2/(x1 - x2)**2
但是,如果我这样做:expr = (P+Q)+R
expr2 = P+(Q+R)
print(simplify((expr-expr2).x))
这需要永远,如果我尝试:expr = (P+Q)+R
expr2 = P+(Q+R)
print((expr-expr2).x)
它还返回一个似乎合理的表达式,我认为是正确的。
但我需要简化它并返回0来证明expr和expr2相等。在
对我做错了什么有什么建议吗?在
python 椭圆曲线_Python、Sympy和椭圆曲线相关推荐
- gamma分布python代码_Python sympy.stats.NormalGamma()用法及代码示例
借助于sympy.stats.NormalGamma()方法,我们可以创建具有多元正态伽马分布的双变量联合随机变量. 用法: sympy.stats.NormalGamma(syms, mu, lam ...
- python画代码-Python教程_Python画Mandelbrot集 代码
Python教程_Python画Mandelbrot集 代码 作者:Comet 来源: 课课家 www.kokojia.com点击数:278发布时间:2015-06-19 11:17:19 曼德勃罗集 ...
- python定积分_python定积分
广告关闭 云服务器1核2G首年99年,还有多款热门云产品满足您的上云需求 函数∫21xdx∫12xdx int_1^2 {x} ,{d}x代码from sympy import *x =symbols ...
- 椭圆曲线图像加密 matlab,椭圆曲线ECC加密算法入门介绍(三、四)
四.椭圆曲线上的加法 上一节,我们已经看到了椭圆曲线的图象,但点与点之间好象没有什么联系.我们能不能建立一个类似于在实数轴上加法的运算法则呢?天才的数学家找到了这一运算法则 自从近世纪代数学引入了群. ...
- c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...
用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...
- python中的sympy模块求导和解方程
利用python中的sympy模块求导和解方程 对sympy这个模块我不是很了解,我学习python主要是想往机器学习和深度学习方向发展.这次了解到有这个模块,是因为有同学在写论文中要用到求导,并且计 ...
- python编程语言_python编程语言的简要历史
python编程语言 The Python programming language is a general-purpose programming language that has carved ...
- Python 中的Sympy详细介绍
Python 中的Sympy详细使用 遇到复杂计算找python绝对不让你失望,sympy是一个Python的科学计算库,用一套强大的符号计 ...
- 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?
2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...
最新文章
- NDK相关概念与NDK开发步骤
- HTML5实现手势屏幕解锁
- git 查看某个文件的历史记录
- 【CyberSecurityLearning 45】PHP基础+变量、运算符、流程控制语句
- Netty之大动脉Pipeline
- MVC 中使用uploadify上传图片遇到的蛋疼问题
- android+rom+bootloader+flash,【极光ROM】-【三星NOTE10/NOTE10+/5G N97XX-9825】-【V9.0 Android-R-UA1】...
- 百度点击算法核心内容大揭秘
- 修改docker ip网段
- 交易心得(简要总结)
- GitHub干货分享
- dpdk对虚拟化支持研究
- Hbase 内置过滤器
- Java 2 实用教程学习
- 程序NSIS ERROR出错解决方案
- ERC-1155 标准
- Neo4j 第一篇:在Windows环境中安装Neo4j
- 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡...
- Rust vs Pandas 数据处理
- 2019年五一放假公众号推文主题怎么选?
热门文章
- java二分排序法原理_Java常见排序算法详解—— 二分插入排序
- 在公共服务器上搭建python虚拟环境
- Truck History prime
- idea npm start启动前端项目报错:ERROR Failed to compile with 1 errors : This dependency was not found:
- C语言用数组实现十个国家名字按字典排序
- vue学习九--v-for的四种用法,以及key问题
- Java+Swing实现医院管理系统
- 脑电EEG的几种蒙太奇
- 淄博旅游景点与美食汇总
- android7.1root工具,Android模拟器Root,Android7.1.1