Rozwiązanie zadania "Ilorazy pierścienia wielomianów" #35
152
main.py
152
main.py
@ -289,22 +289,24 @@ class PolyIntField:
|
|||||||
return idempotents
|
return idempotents
|
||||||
|
|
||||||
def zero_divisors(self):
|
def zero_divisors(self):
|
||||||
zero_divisors = []
|
zero_divisors = [[0]]
|
||||||
|
|
||||||
for e in self.elements:
|
for e in self.elements:
|
||||||
if not e.is_empty():
|
if not e.is_empty():
|
||||||
for f in self.elements:
|
for f in self.elements:
|
||||||
if not f.is_empty():
|
if not f.is_empty():
|
||||||
if Poly.gcd((e * f), self.poly_modulo).is_empty():
|
if (e * f % self.poly_modulo).elements == {}:
|
||||||
zero_divisors.append(e)
|
zero_divisors.append(
|
||||||
|
list(reversed(list(e.elements.values()))))
|
||||||
|
break
|
||||||
|
|
||||||
return zero_divisors
|
return zero_divisors
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
str_form = "[\n\t"
|
str_form = "[\n\t"
|
||||||
str_form += str([]) + "\n\t"
|
str_form += str([]) + ",\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.nilpotents()) + ",\n\t"
|
||||||
str_form += str(self.idempotents()) + "\n"
|
str_form += str(self.idempotents()) + "\n"
|
||||||
str_form += "]\n"
|
str_form += "]\n"
|
||||||
return str_form
|
return str_form
|
||||||
@ -312,146 +314,8 @@ class PolyIntField:
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
|
||||||
pf = PolyIntField(2, [1, 1, 1])
|
pf = PolyIntField(2, [1, 1, 1])
|
||||||
print(pf)
|
print(pf)
|
||||||
|
|
||||||
poly_field = PolyIntField(3, [1, 1, 2, 2])
|
poly_field = PolyIntField(3, [1, 1, 2, 2])
|
||||||
print(poly_field)
|
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