#C22.txt, April 14, 2025 Help22:=proc(): print(` BAc(f), Likelyc(q,r) , LikelycC(q,r) , ConfirmR(q,r). ExperimentS4() `): end: read `QC.txt`: #BAc(f): a clever version of BA(f): the best relative approximation to the fraction f #with denominator <=sqrt(denom(f)) BAc:=proc(f) local L,i: L:=CVG(f): for i from 1 to nops(L) while denom(L[i])^2<=denom(f) do od: L[i-1]: end: #Likelyc(q,r): All c less than q such that |{rc}_q| <=r/2 Likelyc:=proc(q,r) local c,L: L:=[]: for c from 1 to q-1 do if abs(mods(r*c,q))<=r/2 then if c mod 2=0 then c:=c+1: fi: L:=[op(L),c]: fi: od: L: end: #LikelycC(q,r): All c less than q such that |{rc}_q| <=r/2 the clever way #i.e. all integer multioles of q/r rounded #LikelycC(q,r): All c less than q such that |{rc}_q| <=r/2 LikelycC:=proc(q,r) local i,L,c: L:=[]: #integer multiples of q/r for i from 1 to r-1 do c:=round(q/r*i): if c mod 2=0 then c:=c+1: fi: L:=[op(L),c]: od: L: end: #ConfirmR(q,r) ConfirmR:=proc(q,r) local L,i: if r^2>=q then RETURN(FAIL): fi: L:=LikelycC(q,r): [seq(BAc(L[i]/q),i=1..nops(L))]; end: #From Joseph K #5 RM := proc() local ra: ra := rand(1..10): [[ra(),ra()],[ra(),ra()]]: end: RMs := proc(n) local i: [seq(RM(), i=1..n)]: end: #ALn(X,n): rediscovering the Amitsur-Levitsky identity for n by n matrix ALn := proc(X,n) local A, pi, eqs, M, var, i, var1, v, T,JK: var := {seq(c[pi], pi in permute(2*n))}: JK:=add(c[pi]*X[pi],pi in permute(2*n)): eqs := {}: for i from 1 to trunc((2*n)!/n^2)+1 do: A := RMs(2*n): M := expand(add(c[pi]*Mul(Mul(A[pi[1]],A[pi[2]]),Mul(A[pi[3]],A[pi[4]])), pi in permute(4))): eqs := eqs union {op(M[1]), op(M[2])}: end: var := solve(eqs, var): var1:={}: for v in var do if op(1,v)=op(2,v) then var1:=var1 union {op(1,v)}: fi: od: for v in var do: T[op(1, v)] := subs({var1[1]=1,seq(var1[i]=0,i=2..nops(var1))},op(2,v)): od: subs(op(T),JK): end: