# OK to post homework # James Betti, 2 Mar 2025, Assignment 11 with(combinat): CheckMul := proc(n) local A,i,j; A := Bn(n); A := [seq([seq(sqrt(n)*A[i][j],j=1..nops(A[i]))],i=1..nops(A))]; A := Mul(An(n),Bn(n))-A; for i to nops(A) do for j to nops(A[i]) do if A[i][j]<>0 then RETURN(false) fi; od; od; true; end: CheckMul(10); # Verified up to n=10 IndNu := proc(G) local r,i; r := -1; for i to G[1] do if MinMaxNNpablo(G,i)=0 then r := max(i,r); fi; od; r; end: for i from 4 to 15 do printf("IndNu(Gnd(%d,2)):",i); IndNu(Gnd(i,2)); printf("IndNu(Gnd(%d,3)):",i); IndNu(Gnd(i,3)); od; # ====================RESULTS==================== # IndNu(Gnd( 4,2)): 1 IndNu(Gnd( 4,3)): 1 # IndNu(Gnd( 5,2)): 1 IndNu(Gnd( 5,3)): 1 # IndNu(Gnd( 6,2)): 2 IndNu(Gnd( 6,3)): 1 # IndNu(Gnd( 7,2)): 2 IndNu(Gnd( 7,3)): 1 # IndNu(Gnd( 8,2)): 2 IndNu(Gnd( 8,3)): 2 # IndNu(Gnd( 9,2)): 3 IndNu(Gnd( 9,3)): 2 # IndNu(Gnd(10,2)): 3 IndNu(Gnd(10,3)): 2 # IndNu(Gnd(11,2)): 3 IndNu(Gnd(11,3)): 2 # IndNu(Gnd(12,2)): 4 IndNu(Gnd(12,3)): 3 # IndNu(Gnd(13,2)): 4 IndNu(Gnd(13,3)): 3 # IndNu(Gnd(14,2)): 4 IndNu(Gnd(14,3)): 3 # IndNu(Gnd(15,2)): 5 IndNu(Gnd(15,3)): 3 UpperBoundMinMaxNN := proc(G,r,K) local m,_,H,i; m := infinity; for _ to K do H := randcomb({seq(i,i=1..G[1])},r); m := min(m,MaxNN(G,H)); od; m; end: UpperBoundMinMaxNN(Ck(8),129,5000); # 6