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 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); } }