punch.sage 413 B

1234567891011121314151617181920212223242526272829
  1. q = 11
  2. k = 3
  3. d0 = q - k + 1
  4. s = 4
  5. assert s <= d0 - 1
  6. n = q - s
  7. d = n - k + 1
  8. K = GF(q)
  9. F.<z> = K[]
  10. V = VectorSpace(K, n)
  11. C = V.subspace([
  12. [1, 0, 0, 0, 0, 0, 0],
  13. [0, 1, 0, 0, 0, 0, 0],
  14. [0, 0, 1, 0, 0, 0, 0],
  15. ])
  16. for c in C:
  17. f = c[0] + c[1]*z + c[2]*z^2
  18. w = vector(f(β) for β in list(K)[:n])
  19. assert len(w) == n
  20. if w.is_zero():
  21. continue
  22. assert d <= w.hamming_weight()