private List <ArquivoChaves> ProcedureSimpleMutation(List <string> Chaves)
        {
            Stopwatch            tempo            = new Stopwatch();
            Random               MutacaoRandomico = new Random();
            List <ArquivoChaves> Armazenamento    = new List <ArquivoChaves>();

            tempo.Start();
            for (int i = 0; i < filhos.Count; i++)
            {
                ArquivoChaves Keys       = new ArquivoChaves();
                StringBuilder NovaString = new StringBuilder(Chaves[i]);

                float PorcentagemC = Consecutivo(NovaString.ToString()) / (float)TamanhoKey;
                float PorcentagemR = Repetir(NovaString.ToString()) / (float)TamanhoKey;
                float Total        = (PorcentagemC + PorcentagemR) / 2;
                int   pontoMutacao = 0;
                int   NovoChar     = 0;

                double u = FuncaoFitness(PorcentagemC, PorcentagemR);
                Keys.geracao = NovaString.ToString();
                Keys.IdU     = u;
                Armazenamento.Add(Keys);

                /*  Console.WriteLine("IND APÓS MUTACAO({0}): {1}  *PontoMut:{2}  *String:{3} *C:{4}% *R:{5}%",i,NovaString,pontoMutacao,NovoChar,PorcentagemC*100,PorcentagemR*100);
                 * Console.WriteLine("_____________________________________________________________");*/
            }
            tempo.Stop();
            TimeSimpleMutation = tempo.Elapsed.TotalMilliseconds;
            return(Armazenamento);
        }
        private List <ArquivoChaves> ProcedureMultiPermutation(List <string> Chaves)
        {
            Stopwatch            tempo         = new Stopwatch();
            List <ArquivoChaves> Armazenamento = new List <ArquivoChaves>();

            tempo.Start();
            for (int i = 0; i < Chaves.Count; i++)
            {
                ArquivoChaves keys       = new ArquivoChaves();
                StringBuilder NovaString = new StringBuilder(filhos[i]);
                int           TamanhoMax = TamanhoKey / 10;
                for (int j = 0; j < TamanhoMax; j++)
                {
                    Random PontoA = new Random();
                    Random PontoB = new Random();

                    int  Ponto0  = PontoA.Next(0, NovaString.Length);
                    int  Ponto1  = PontoB.Next(0, NovaString.Length);
                    char StringA = NovaString[Ponto0];
                    char StringB = NovaString[Ponto1];

                    NovaString.Remove(Ponto0, 1);
                    NovaString.Insert(Ponto0, StringB);
                    NovaString.Remove(Ponto1, 1);
                    NovaString.Insert(Ponto1, StringA);
                }

                float PorcentagemC = Consecutivo(NovaString.ToString()) / (float)TamanhoKey;
                float PorcentagemR = Repetir(NovaString.ToString()) / (float)TamanhoKey;

                double u = FuncaoFitness(PorcentagemC, PorcentagemR);
                keys.geracao = NovaString.ToString();
                keys.IdU     = u;
                Armazenamento.Add(keys);

                /* Console.WriteLine("________________________________________________________");
                 * Console.WriteLine(" IND APÓS MUTACAO({0}): {1}  *C:{2}% *R:{3}%", i, NovaString, PorcentagemC*100, PorcentagemR * 100);
                 * Console.WriteLine("_____________________________________________________________");*/
            }
            tempo.Stop();
            TimeMultiPermutation = tempo.Elapsed.TotalMilliseconds;
            return(Armazenamento);
        }
        private List <ArquivoChaves> ProcedureMutationPermutation(List <string> Chaves)
        {
            Stopwatch            tempo         = new Stopwatch();
            List <ArquivoChaves> Armazenamento = new List <ArquivoChaves>();

            tempo.Start();
            for (int i = 0; i < Chaves.Count; i++)
            {
                ArquivoChaves Keys       = new ArquivoChaves();
                StringBuilder NovaString = new StringBuilder(Chaves[i]);

                int    DivisaoSenha = (NovaString.Length) / 2;
                Random p0           = new Random();
                Random p1           = new Random();

                float PorcentagemC = Consecutivo(NovaString.ToString()) / (float)TamanhoKey;
                float PorcentagemR = Repetir(NovaString.ToString()) / (float)TamanhoKey;

                int  Ponto0  = p0.Next(0, DivisaoSenha);
                int  Ponto1  = p1.Next(DivisaoSenha, NovaString.Length);
                char StringA = NovaString[Ponto0];
                char StringB = NovaString[Ponto1];

                NovaString.Remove(Ponto0, 1);
                NovaString.Insert(Ponto0, StringB);
                NovaString.Remove(Ponto1, 1);
                NovaString.Insert(Ponto1, StringA);

                double u = FuncaoFitness(PorcentagemC, PorcentagemR);
                Keys.geracao = NovaString.ToString();
                Keys.IdU     = u;
                Armazenamento.Add(Keys);

                /* Console.WriteLine("IND APÓS MUTACAO({0}): {1}  *PontoMut:{2} : {3}  *String:{3} *C:{4}% *R:{5}%", i, NovaString, Ponto0, Ponto1, PorcentagemC * 100, PorcentagemR * 100);
                 * Console.WriteLine("_____________________________________________________________");*/
            }
            tempo.Stop();
            TimeSimplePermutation = tempo.Elapsed.TotalMilliseconds;
            return(Armazenamento);
        }