コード例 #1
0
ファイル: Program.cs プロジェクト: Raz1el/Labs
        static void Main(string[] args)
        {
            //var field=new FactorRing(new Polynomial(new ulong[] { 1, 1, 1 }),3 );
            //Polynomial[,] p=new Polynomial[2,2];
            //p[0,0]=new Polynomial(new ulong[] {2});
            //p[0, 1] = new Polynomial(new ulong[] { 2 });
            //p[1, 0] = new Polynomial(new ulong[] { 2 });
            //p[1, 1] = new Polynomial(new ulong[] { 0 });
            //Matrix m=new Matrix(p,field);
            //var x = m.Solve();
            //Console.ReadKey();
            DivTest(11);
            Dictionary <int, Polynomial> table = new Dictionary <int, Polynomial>()
            {
                { 2, new Polynomial(new ulong[] { 1, 1, 1 }) },
                { 3, new Polynomial(new ulong[] { 1, 0, 1, 1 }) },
                { 4, new Polynomial(new ulong[] { 1, 1, 0, 0, 1 }) },
                { 5, new Polynomial(new ulong[] { 1, 0, 0, 1, 0, 1 }) },
                { 6, new Polynomial(new ulong[] { 1, 0, 0, 0, 0, 1, 1 }) },
            };



            var     generator = new Polynomial(new ulong[] { 1, 1, 0, 1 });
            BchCode bch       = new BchCode(20, 7, generator);
            var     msg1      = new Polynomial(new ulong[] { 1 });
            var     msg2      = bch.Code(msg1);
            var     error     = new Polynomial(new ulong[] { 2, 2, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 1, 2 });
            var     msg3      = error + msg2;

            msg3.SetMod(7);
            msg3.Reduce();
            var msg4 = bch.Decode(msg3);


            Console.WriteLine("Введите характеристику поля:");
            Console.WriteLine("Введите порождающий полином:\n");



            Console.WriteLine("Введите сообщение:" + msg1);
            Console.WriteLine("Закодированное сообщение:" + msg2);

            Console.WriteLine("\nВведите вектор ошибки:" + error);
            Console.WriteLine("Принятое сообщение:" + msg3);
            Console.WriteLine("Исправленное сообщение" + msg4);
            Console.ReadKey();
        }
コード例 #2
0
ファイル: BchCodding_Code.xaml.cs プロジェクト: Raz1el/Labs
        //ввод сообщения и вывод кодируемого сообщения
        private void EnterButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                //ввод полинома
                ulong[] figureArray;
                if (PolinomtextBox.Text != string.Empty)
                {
                    var    list  = new List <ulong>();
                    char[] delim = { ' ', ',' };

                    string   entervalue    = Convert.ToString(PolinomtextBox.Text);
                    string[] arrayofnumber = entervalue.Split(delim, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var w in arrayofnumber)
                    {
                        list.Add(Convert.ToUInt64(w));
                    }
                    figureArray = list.ToArray();
                    _oprvvoda   = true;
                }
                else
                {
                    MessageBox.Show("Введите полином сообщения!");
                    ClearMethod();
                    _oprvvoda = false;
                    return;
                }

                if (figureArray.Length > (int)_bch.NumberOfInformationSymbols)
                {
                    MessageBox.Show("Длина входного сообщения не должна быть больше числа информационных символов!");
                    ClearMethod();
                    return;
                }

                var msg1 = new Polynomial(figureArray);
                _msg2            = _bch.Code(msg1); //закодировали сообщение
                CodeTextBox.Text = Convert.ToString(_msg2);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }