Esempio n. 1
0
        public static CompositeDictionary <IPermutation, int> GetConjOrbit(
            this IPermutation perm, IPermutation conj, uint maxSize = 1000)
        {
            var pd      = PermutationEx.PermutationDictionary(perm.Order);
            var curConj = conj;
            var curRes  = perm;

            for (var i = 0; i < maxSize; i++)
            {
                if (pd.ContainsKey(curRes))
                {
                    return(pd);
                }
                pd.Add(curRes, 1);

                curRes  = perm.ConjugateBy(curConj);
                curConj = curConj.Multiply(conj);
            }

            return(pd);
        }
Esempio n. 2
0
 public static IPermutation ConjugateByRandomSingleTwoCycle(this IPermutation perm, IRando randy)
 {
     return(perm.ConjugateBy(randy.ToSingleTwoCyclePermutation(perm.Order)));
     // return perm.ConjugateBy(randy.ToFullTwoCyclePermutation(perm.Order));
 }
Esempio n. 3
0
 public static IPermutation ConjugateByRandomPermutation(this IPermutation perm, IRando randy)
 {
     return(perm.ConjugateBy(randy.ToPermutation(perm.Order)));
 }