22 lines
673 B
Python
22 lines
673 B
Python
import sys, random
|
|
sys.path.append("../")
|
|
|
|
import functions.functions as fn
|
|
|
|
|
|
def dodawanie(punkt1, punkt2, p):
|
|
if punkt1 == None:
|
|
return punkt2
|
|
if punkt2 == None:
|
|
return punkt1
|
|
|
|
l = ((punkt2[1] - punkt1[1]) * fn.odwrotnosc(punkt2[0] - punkt1[1], p) ) % p
|
|
x3 = (fn.potegowanieimod(l, 2, p) - punkt2[0] - punkt1[0]) % p
|
|
y3 = (l * (punkt1[0] - x3) - punkt1[1] ) % p
|
|
return (x3, y3)
|
|
|
|
def podwojny(punkt, a, p):
|
|
l = ((3 * fn.potegowanieimod(punkt[0], 2, p) + a) * fn.odwrotnosc(2 * punkt[1], p) ) % p
|
|
x3 = (fn.potegowanieimod(l, 2, p) - (2 * punkt[0])) % p
|
|
y3 = ((l * (punkt[0] - x3)) - punkt[1] ) % p
|
|
return (x3, y3) |