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(); }
//ввод ошибки private void EnterErrorButton_Click(object sender, RoutedEventArgs e) { try { if (_oprvvoda == false) { throw new Exception("Сначала введите кодируемое сообщение!"); } //ввод полинома ulong[] figureArray; if (ErrorTextBox.Text != string.Empty) { var list = new List <ulong>(); char[] delim = { ' ', ',' }; string entervalue = Convert.ToString(ErrorTextBox.Text); string[] arrayofnumber = entervalue.Split(delim, StringSplitOptions.RemoveEmptyEntries); foreach (var w in arrayofnumber) { list.Add(Convert.ToUInt64(w)); } figureArray = list.ToArray(); } else { MessageBox.Show("Введите полином ошибки!"); ClearMethod(); return; } var error = new Polynomial(figureArray); var msg3 = error + _msg2; //закодированное сообщение с ошибкой msg3.SetMod(CharOfField); msg3.Reduce(); MessWithErrorTextBox.Text = Convert.ToString(msg3); var msg4 = _bch.Decode(msg3); RecoveryTextBox.Text = Convert.ToString(msg4); } catch (Exception ex) { MessageBox.Show(ex.Message); } }