Guest User

Untitled

a guest
Aug 21st, 2022
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. p = 23
  2. a_L = [0, 1, 0, 1]
  3. a_R = [-1, 0, -1, 0]
  4. n_2 = [1, 2, 4, 8]
  5. n_1 = [1, 1, 1, 1]
  6.  
  7. y = 15
  8. z = 13
  9.  
  10. def expo(a, n_1, p) :
  11. tmp = [1]
  12. for i in range(0, len(n_1)) :
  13. tmp.append((a * tmp[i]) % p)
  14. return tmp
  15.  
  16. def inner_product(a, b, p) :
  17. tmp = 0
  18. for i in range(0, len(a)) :
  19. tmp += ( a[i] * b[i] ) % p
  20. tmp = tmp % p
  21. return tmp
  22.  
  23. def vector_minus(a, b, p) :
  24. tmp = []
  25. for i in range(0, len(a)) :
  26. tmp.append( (a[i] - b[i]) % p)
  27. return tmp
  28.  
  29. def vector_add(a, b, p) :
  30. tmp = 0
  31. for i in range(0, len(a)) :
  32. tmp.append( (a[i] + b[i]) % p)
  33. return tmp
  34.  
  35. def hadamard(a, b, p) :
  36. tmp = []
  37. for i in range(0, len(a)) :
  38. #print(str(i))
  39. tmp.append( (a[i] * b[i]) % p )
  40. return tmp
  41.  
  42. print(str(inner_product(a_L, a_R, p)))
  43. print(str(inner_product(a_L, n_2, p)))
  44. print(str(hadamard(a_L, a_R, p)))
  45.  
  46. v = inner_product(a_L, n_2, p)
  47.  
  48. print(expo(y, n_1, p))
  49. n_y = expo(y, n_1, p)
  50. print("n_y : ")
  51. print(n_y)
  52. print("and the value is : " + str(v))
  53. left_side = (pow(z, 2, p) * v) % p
  54.  
  55. R_1 = (pow(z, 2, p) * inner_product(a_L, n_2, p)) % p
  56. R_2 = (z * inner_product(vector_minus(vector_minus(a_L, n_1, p), a_R, p), n_y, p)) % p
  57. R_3 = inner_product(a_L, hadamard(a_R, n_y, p), p)
  58.  
  59. print(R_2)
  60. print(R_3)
  61.  
  62. right_side = (R_1 + R_2 + R_3)%p
  63.  
  64. print("left_side : " + str(left_side))
  65. print("right_side : " + str(right_side))
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
Advertisement
Add Comment
Please, Sign In to add comment