|
MAPLE
|
FoataPermutationCycleCounts_Lengths_and_LCM := proc(upto_n) local u, n, a, b, i, f; a := []; b := []; f := 1; for i from 0 to upto_n! -1 do b := [op(b), 1+PermRank3R(Foata(PermUnrank3R(i)))]; if((f - 1) = i) then a := [op(a), [CountCycles(b), CycleLengths1(b), CyclesLCM(b)]]; print (a); f := f*(nops(a)+1); fi; od; RETURN(a); end;
lcmlist := proc(a) local z, e; z := 1; for e in a do z := ilcm(z, e); od; RETURN(z); end;
CyclesLCM := b -> lcmlist(map(nops, convert(b, 'disjcyc')));
|