Module garoupa.algebra.cyclic.natm
Classes
class Natm (i, n)-
Expand source code
class Natm(Element): """ Usage: >>> a = Natm(1414343245, 2**32) >>> b = Natm(77639, 2**32) >>> b 77639 >>> ~b 3006515831 >>> a * b 3061309019 >>> a * b * ~b == a True """ def __init__(self, i, n): super().__init__(i, n - 1) self.n = n def __mul__(self, other): """ Usage: >>> a = Natm(7, 5) >>> b = Natm(9, 5) >>> a * b 3 """ return Natm((self.i * other.i) % self.n, self.n) def __add__(self, other): """ Usage: >>> a = Natm(7, 5) >>> b = Natm(9, 5) >>> a + b 1 """ return Natm((self.i + other.i) % self.n, self.n) def __repr__(self): return f"{self.i}" def __invert__(self): return Natm(pow(self.i, -1, self.n), self.n)Usage:
>>> a = Natm(1414343245, 2**32) >>> b = Natm(77639, 2**32) >>> b 77639 >>> ~b 3006515831 >>> a * b 3061309019 >>> a * b * ~b == a TrueAncestors
- Element
- abc.ABC
Inherited members