示例#1
0
        public double[] code(double[] colonne)
        {
            double[][] matriceA = this.Structure;
            double[]   resultat = new double[matriceA.Length];
            for (int i = 0; i < matriceA.Length; i++)
            {
                double[] ligneA = matriceA[i];
                double   donnee = 0;
                for (int j = 0; j < colonne.Length; j++)
                {
                    double calcul = ligneA[j] * colonne[j];
                    donnee = BinaireClass.calculBinaire(donnee, calcul);
                }
                resultat[i] = donnee;
            }

            return(resultat);
        }
示例#2
0
        public BitDeParite[] equationAvecErreur(double[] code)
        {
            List <BitDeParite> equationsErreur = new List <BitDeParite>();

            BitDeParite[] bitsDeParite = this.BitsDeParite;
            for (int i = 0; i < bitsDeParite.Length; i++)
            {
                BitDeParite bitDeParite = bitsDeParite[i];
                List <int>  equation    = bitDeParite.PositionControle;
                int         valeur      = 0;
                for (int j = 0; j < equation.Count(); j++)
                {
                    Console.WriteLine(equation[j]);
                    int element = (int)code[equation[j] - 1];
                    valeur = BinaireClass.calculBinaire(valeur, element);
                }
                if (valeur == 1)
                {
                    equationsErreur.Add(bitDeParite);
                }
            }
            this.EquationErreur = equationsErreur.ToArray();
            return(this.EquationErreur);
        }