椭圆曲线加密算法是在椭圆曲线有限域上进行加密的算法,一般的椭圆曲线为,其中p为质数。 椭圆曲线上的点的运算满足以下规则: 曲线上A、B不同两点相加,过A、B两点画一条直线,找到直线与椭圆曲线的交点,交点关于x轴对称位置的点,定义为A+B,即为加法。如下图所示:A + B = C 相同点A与A相加,过A点做切线,与椭圆曲线的交点,交点关于x轴对称位置的点,定义为A + A,即2A,即为二倍运算。 ,,其中R=P+Q,有 现有,牛牛得到了点,你能告诉她是多少吗。
示例1
输入
(0,1),3
输出
(72,611)
备注:
,
加载中...
import java.util.*; /* * public class Point { * int x; * int y; * } */ public class Solution { /** * * @param P Point类 * @param n int整型 * @return Point类 */ public Point NTimesPoint (Point P, int n) { // write code here } }
/** * struct Point { * int x; * int y; * }; */ class Solution { public: /** * * @param P Point类 * @param n int整型 * @return Point类 */ Point NTimesPoint(Point P, int n) { // write code here } };
# class Point: # def __init__(self, a=0, b=0): # self.x = a # self.y = b # # # @param P Point类 # @param n int整型 # @return Point类 # class Solution: def NTimesPoint(self , P , n ): # write code here
/* * function Point(a, b){ * this.x = a || 0; * this.y = b || 0; * } */ /** * * @param P Point类 * @param n int整型 * @return Point类 */ function NTimesPoint( P , n ) { // write code here } module.exports = { NTimesPoint : NTimesPoint };
# class Point: # def __init__(self, a=0, b=0): # self.x = a # self.y = b # # # @param P Point类 # @param n int整型 # @return Point类 # class Solution: def NTimesPoint(self , P , n ): # write code here
package main import . "nc_tools" /* * type Point struct { * X int * Y int * } */ /** * * @param P Point类 * @param n int整型 * @return Point类 */ func NTimesPoint( P *Point , n int ) *Point { // write code here }
/** * struct Point { * int x; * int y; * }; */ /** * * @param P Point类 * @param n int整型 * @return Point类 */ struct Point NTimesPoint(struct Point P, int n ) { // write code here }
(0,1),3
(72,611)