#Isaac Lam, HW5, Feb 7 2024 #Old Class Code BDfano:=proc(): {{1,2,4},{2,3,5},{3,4,6},{4,5,7},{5,6,1},{6,7,2},{7,1,3}}: end: BDex212:=proc(): {{1,3,4,5,9}, {2,4,5,6,10}, {3,5,6,7,11}, {1,4,6,7,8}, {2,5,7,8,9}, {3,6,8,9,10}, {4,7,9,10,11}, {1,5,8,10,11}, {1,2,6,9,11}, {1,2,3,7,10}, {2,3,4,8,11} } end: #SPB(q,n,d): The best you can hope for (as far as the size of C) for q-ary (n,2*t+1) code SPB:=proc(q,n,t) local i: trunc(q^n/add(binomial(n,i)*(q-1)^i,i=0..t)): end: #SP(q,c,t): the set of all vectors in Fqn(q,n) whose distance is <=t from c SP:=proc(q,c,t) local S,s,i: S:={c}: for i from 1 to t do S:=S union {seq(op(Nei(q,s)),s in S)}: od: S: end: GRC:=proc(q,n,d) local S,A,v: A:=Fqn(q,n): S:={}: while A<>{} do: v:=A[1]: S:=S union {v}: A:=A minus SP(q,v,d-1): od: S: end: #End of Old Class code #How I calcullated 3-5 Q2 := Matrix(3, 16, -1); Q2D := Matrix(3, 16, -1); for n from 5 to 20 do Q2[1, n - 4] := nops(GRC(2, n, 3)); Q2[2, n - 4] := nops(GRC(2, n, 5)); Q2[3, n - 4] := nops(GRC(2, n, 7)); Q2D[1, n - 4] := nops(GRC(2, n, 3)) - SPB(2, n - 4, 3); Q2D[2, n - 4] := nops(GRC(2, n, 5)) - SPB(2, n - 4, 5); Q2D[3, n - 4] := nops(GRC(2, n, 7)) - SPB(2, n - 4, 7); end do; Q3 := Matrix(3, 6, -1); Q3D := Matrix(3, 6, -1); for n from 5 to 10 do Q3[1, n - 4] := nops(GRC(3, n, 3)); Q3[2, n - 4] := nops(GRC(3, n, 5)); Q3[3, n - 4] := nops(GRC(3, n, 7)); Q3D[1, n - 4] := nops(GRC(3, n, 3)) - SPB(3, n - 4, 3); Q3D[2, n - 4] := nops(GRC(3, n, 5)) - SPB(3, n - 4, 5); Q3D[3, n - 4] := nops(GRC(3, n, 7)) - SPB(3, n - 4, 7); end do; Q5 := Matrix(3, 3, -1); Q5D := Matrix(3, 3, -1); for n from 5 to 7 do Q5[1, n - 4] := nops(GRC(5, n, 3)); Q5[2, n - 4] := nops(GRC(5, n, 5)); Q5[3, n - 4] := nops(GRC(5, n, 7)); Q5D[1, n - 4] := nops(GRC(5, n, 3)) - SPB(5, n - 4, 3); Q5D[2, n - 4] := nops(GRC(5, n, 5)) - SPB(5, n - 4, 5); Q5D[3, n - 4] := nops(GRC(5, n, 7)) - SPB(5, n - 4, 7); end do; #6. skipped #7. PlotkinBound:=proc(n,d): if n<2*d then return 2*trunc(d/(2*d-n)): end if: end: # Code for comparing bounds, plotkin bound is greater L:=[]; for d from 2 to 20 do for n from 2 to 2*d do L:=[op(L),[PlotkinBound(n,d),SPB(2,n,d)]]: end do: end do: