Fix zero divisors
This commit is contained in:
parent
272a361fb2
commit
1a958042e1
152
main.py
152
main.py
@ -289,22 +289,24 @@ class PolyIntField:
|
||||
return idempotents
|
||||
|
||||
def zero_divisors(self):
|
||||
zero_divisors = []
|
||||
zero_divisors = [[0]]
|
||||
|
||||
for e in self.elements:
|
||||
if not e.is_empty():
|
||||
for f in self.elements:
|
||||
if not f.is_empty():
|
||||
if Poly.gcd((e * f), self.poly_modulo).is_empty():
|
||||
zero_divisors.append(e)
|
||||
if (e * f % self.poly_modulo).elements == {}:
|
||||
zero_divisors.append(
|
||||
list(reversed(list(e.elements.values()))))
|
||||
break
|
||||
|
||||
return zero_divisors
|
||||
|
||||
def __str__(self):
|
||||
str_form = "[\n\t"
|
||||
str_form += str([]) + "\n\t"
|
||||
str_form += str([]) + "\n\t"
|
||||
str_form += str(self.nilpotents()) + "\n\t"
|
||||
str_form += str([]) + ",\n\t"
|
||||
str_form += str(self.zero_divisors()) + ",\n\t"
|
||||
str_form += str(self.nilpotents()) + ",\n\t"
|
||||
str_form += str(self.idempotents()) + "\n"
|
||||
str_form += "]\n"
|
||||
return str_form
|
||||
@ -312,146 +314,8 @@ class PolyIntField:
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
|
||||
pf = PolyIntField(2, [1, 1, 1])
|
||||
print(pf)
|
||||
|
||||
poly_field = PolyIntField(3, [1, 1, 2, 2])
|
||||
print(poly_field)
|
||||
# print(poly_field)
|
||||
# y = pf.idempotents()
|
||||
# for i in y:
|
||||
# print(i)
|
||||
# y = Poly(3, [0, 1, 2])
|
||||
# d = Poly(3, [1, 1, 2, 2])
|
||||
# # print(y ** 2 % d)
|
||||
# h = y ** 2
|
||||
# print(h)
|
||||
# print(h % d)
|
||||
# for p in poly_field.elements:
|
||||
# print(p)
|
||||
# print(p.elements)
|
||||
# print(len(poly_field.elements))
|
||||
# a = Poly(3, [0, 0, 0])
|
||||
# b = Poly(3, [1, 2])
|
||||
# print((a * b).is_empty())
|
||||
|
||||
# x = Poly(5, [1, 0, 4, 0, 2, 1])
|
||||
# y = Poly(5, [4, 0, 0, 0, 1])
|
||||
# print(x % y)
|
||||
|
||||
# o = Poly(5, [1, 0, 1, 2, 2, 1])
|
||||
# print(o)
|
||||
#
|
||||
# p = Poly(5, [4, 0, 0, 0, 1])
|
||||
# print(p)
|
||||
# print(o / p)
|
||||
|
||||
# n = Poly(5, [1, 0, 1])
|
||||
# m = Poly(5, [2, 4])
|
||||
# print(n / m)
|
||||
# a = Poly(5, [1, 0, 4, 0, 2, 1, 0, 0])
|
||||
# # print(a)
|
||||
# b = Poly(5, [4, 0, 0, 0, 1])
|
||||
# # print(b)
|
||||
# # print(a + b)
|
||||
# print(a % b)
|
||||
|
||||
# d = Poly(5, [3, 1, 4])
|
||||
# # print(d)
|
||||
# e = Poly(5, [4, 0, 0, 0, 1])
|
||||
# # print(e)
|
||||
# print(e / d)
|
||||
|
||||
|
||||
# c = Poly(5, [4, 0, 0, 0, 1])
|
||||
# d = Poly(5, [3, 1, 4, 0, 0, 0])
|
||||
# print(c)
|
||||
# print(d)
|
||||
# print(c % d)
|
||||
|
||||
# e = Poly(10, [-4, 0, -2, 3])
|
||||
# f = Poly(10, [-3, 1])
|
||||
# print(e / f)
|
||||
# print(e % f)
|
||||
# print(f / e)
|
||||
# print(f % e)
|
||||
# print(e * f)
|
||||
# print(f * e)
|
||||
# print(e + f)
|
||||
# print(f + e)
|
||||
# print(e - f)
|
||||
# print(f - e)
|
||||
# print(e)
|
||||
# print(f)
|
||||
# print(Poly.gcd(e, f))
|
||||
|
||||
# a = Poly(5, [1, 0, 1, 0, 2, 1])
|
||||
# b = Poly(5, [4, 0, 0, 0, 1])
|
||||
# print(a)
|
||||
# print(b)
|
||||
# # print(Poly.gcd(a, b))
|
||||
# print(a % b)
|
||||
# c = a % b
|
||||
# print(b % c)
|
||||
# print(Poly.gcd(a, b))
|
||||
# p = Poly(4, [6, 0, 8, 3])
|
||||
# o = Poly(4, [7, 1])
|
||||
# print(Poly.gcd(o, p))
|
||||
# print(Poly.gcd(b, a))
|
||||
|
||||
# t = Poly(5, [1, 0, 4, 0, 2, 1])
|
||||
# y = Poly(5, [4, 0, 0, 0, 1])
|
||||
# print(Poly.gcd(t, y))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# print((a % b).elements)
|
||||
# d = Poly(10, [2, 0, 6, 0, 1])
|
||||
# e = Poly(10, [5, 0, 1])
|
||||
# print(d / e)
|
||||
# print(a - Poly(10, [0, 0, -3, 1]))
|
||||
# p = Poly(5, [-4, 0, -2, 1])
|
||||
# print(p)
|
||||
# c = p * p
|
||||
# print(c.elements)
|
||||
# print(c)
|
||||
# print(p ** 2)
|
||||
|
||||
# print(p)
|
||||
# print(d)
|
||||
# print(p)
|
||||
# print(p + d)
|
||||
# d = Poly(5, [-3, 1])
|
||||
# g = Poly(5, [1, 2, 1])
|
||||
# print(d)
|
||||
# print(g)
|
||||
# print()
|
||||
#
|
||||
# # print(g)
|
||||
# print(g - d)
|
||||
# print(d - g)
|
||||
#
|
||||
# print()
|
||||
# print(d + g)
|
||||
# print(g + d)
|
||||
#
|
||||
# print()
|
||||
# print(d * g)
|
||||
# print(g * d)
|
||||
# print(d)
|
||||
# print(g)
|
||||
# print(g - d)
|
||||
# print(p / d)
|
||||
# print(p.elements[0])
|
||||
# a = PolyIntField(3, [1, 1, 2, 2])
|
||||
# for e in a.elements:
|
||||
# print(e.elements)
|
||||
|
||||
# print()
|
||||
# print(a.elements[4])
|
||||
# print(a.elements[8])
|
||||
# print(a.elements[4] * a.elements[8])
|
||||
# a.elements[3] / a.elements[1]
|
||||
|
Loading…
Reference in New Issue
Block a user