Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gmcninch-tufts
GitHub Repository: gmcninch-tufts/2024-Sp-Math190
Path: blob/main/course-contents/notebooks/ps7 calcs.ipynb
909 views
Kernel: Python 3 (ipykernel)
k.<z2>=GF(4) R.<T> = PolynomialRing(k) f = T^11 - 1 l.<w> = GF(4^5) n = int((4^5-1)/11) z= w^n multiplicative_order(z)
11
#product([ T-z^(4^i) for i in range(5) ])
f.factor()
(T + 1) * (T^5 + z2*T^4 + T^3 + T^2 + (z2 + 1)*T + 1) * (T^5 + (z2 + 1)*T^4 + T^3 + T^2 + z2*T + 1)
fs = list(f.factor()) fs
[(T + 1, 1), (T^5 + z2*T^4 + T^3 + T^2 + (z2 + 1)*T + 1, 1), (T^5 + (z2 + 1)*T^4 + T^3 + T^2 + z2*T + 1, 1)]
(g,_) = fs[1] (h,_) = fs[2] (g,h)
(T^5 + z2*T^4 + T^3 + T^2 + (z2 + 1)*T + 1, T^5 + (z2 + 1)*T^4 + T^3 + T^2 + z2*T + 1)
S.<X> = PolynomialRing(l) gg=product([ X-z^(4^i) for i in range(5) ]) hh = product([X- z^(2*4^i) for i in range(5)]) (gg,hh)
(X^5 + (w^5 + w^3 + w)*X^4 + X^3 + X^2 + (w^5 + w^3 + w + 1)*X + 1, X^5 + (w^5 + w^3 + w + 1)*X^4 + X^3 + X^2 + (w^5 + w^3 + w)*X + 1)
(4^5-1)/3
341
m = X^2 + X + 1 m(w^5 + w^3 + w)
0
V = VectorSpace(k,11) def pad(ll,n): # pad the list ll with 0's to make it have length n x = len(ll) if x < n: return ll + (n-x)*[0] else: return ll[0:n] def vectorize(p,n): # make a vector of length n out of a polynomial coeffs = p.coefficients(sparse=False) return V(pad(coeffs,n)) def mkCode(p): # vectorize the polynomial T^i * p and use the vectors as a basis for the code C # I'm assuming deg p = 5... return V.subspace([ vectorize( T^i * p, 11) for i in range(6) ]) C1 = mkCode(g) C2 = mkCode(h) def weight(v): r = [x for x in v if x != 0] return len(r) def min_distance(D): # brute-force computation of minimal distance of D return min([ weight(v) for v in D if v != 0]) [ min_distance(c) for c in [C1,C2]]
[5, 5]