daily pastebin goal
88%
SHARE
TWEET

Untitled

a guest Mar 26th, 2019 69 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import math
  2.  
  3.  
  4. class T52:
  5.     def __init__(self, a, b, string):
  6.         self.a = a
  7.         self.b = b
  8.         self.string = string
  9.         self.m = len(string)
  10.         self.afgesplitst = list(string)
  11.         tijdelijk = []
  12.         for x in self.afgesplitst:
  13.             if x in tijdelijk:
  14.                 raise AssertionError("alfabet bevat herhaalde symbolen")
  15.             else:
  16.                 tijdelijk.append(x)
  17.         if math.gcd(a, self.m) != 1:
  18.             raise AssertionError(f"{a} en {self.m} zijn niet copriem")
  19.  
  20.     def codeerSymbool(self, letter):
  21.         if letter not in self.afgesplitst:
  22.             return letter
  23.         else:
  24.             cijfer = (self.a * self.afgesplitst.index(letter) + self.b) % self.m
  25.             nieuweletter = self.afgesplitst[cijfer]
  26.             return nieuweletter
  27.  
  28.     def decodeerSymbool(self, letter):
  29.         if letter not in self.afgesplitst:
  30.             return letter
  31.         else:
  32.             result = ""
  33.             for x in range(len(self.afgesplitst)):
  34.                 sommeke = (self.a * x) % self.m
  35.                 if sommeke == 1:
  36.                     eindIndex = x * (self.afgesplitst.index(letter) - self.b) % self.m
  37.                     return self.afgesplitst[eindIndex]
  38.  
  39.     def codeer(self, string):
  40.         lijst = list(string)
  41.         result = ""
  42.         for x in lijst:
  43.             result += self.codeerSymbool(x)
  44.         return result
  45.  
  46.     def decodeer(self, string):
  47.         lijst = list(string)
  48.         result = ""
  49.         for x in lijst:
  50.             result += self.decodeerSymbool(x)
  51.         return result
  52.  
  53.     def __add__(self, other):
  54.         if self.string != other.string:
  55.             raise AssertionError("alfabetten zijn verschillend")
  56.         else:
  57.             tijdelijk1 = self.codeer(self.string)
  58.             tijdelijk2 = other.codeer(tijdelijk1)
  59.             return  tijdelijk2
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top