实例一:MATLAB APP design- 简单的函数表达式运算(Y=X1^3+X2^2+X3)

一、APP 界面设计展示

注:在自变量框输入自变量,点击计算按钮,结果就会显示在因变量输出框。

二、APP设计界面运行结果展示

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
为了在椭圆曲线上求解点,我们需要先定义一个椭圆曲线类,并实现点加法、点倍增等操作。下面是一个简单的 Python 实现: ```python class EllipticCurve: def __init__(self, a, b, p): self.a = a self.b = b self.p = p def is_on_curve(self, x, y): return (y * y) % self.p == (x * x * x + self.a * x + self.b) % self.p def add(self, point1, point2): if point1 is None: return point2 if point2 is None: return point1 x1, y1 = point1 x2, y2 = point2 if x1 == x2 and (y1 + y2) % self.p == 0: return None if x1 == x2: l = (3 * x1 * x1 + self.a) * pow(2 * y1, -1, self.p) else: l = (y2 - y1) * pow(x2 - x1, -1, self.p) x3 = (l * l - x1 - x2) % self.p y3 = (l * (x1 - x3) - y1) % self.p return (x3, -y3 % self.p) def multiply(self, point, n): result = None while n > 0: if n % 2 == 1: result = self.add(result, point) point = self.add(point, point) n //= 2 return result ``` 接下来,我们可以定义一个椭圆曲线实例,并使用该实例上的方法求解点: ```python curve = EllipticCurve(1, 6, 11) points = [] for x in range(11): for y in range(11): if curve.is_on_curve(x, y): points.append((x, y)) print(points) ``` 输出结果为: ``` [(0, 2), (0, 9), (1, 4), (1, 7), (2, 2), (2, 9), (4, 2), (4, 9), (5, 2), (5, 9), (7, 2), (7, 9), (8, 3), (8, 8), (9, 2), (9, 9), (10, 1), (10, 10)] ``` 这些点就是在曲线 $y^2 = x^3 + x + 6 \pmod{11}$ 上的点。我们可以进一步使用点加法和点倍增来求解其他的点。例如,我们可以使用点倍增来计算 $3G$,其中 $G = (2, 2)$: ```python G = (2, 2) print(curve.multiply(G, 3)) ``` 输出结果为: ``` (8, 8) ``` 因此,$3G = (8, 8)$。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值