Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class Program
- {
- static string proizv(string a, int[,] H)//int n,int m,int l n,m-кол.строк\столбцов в строке которую умножают.
- //m\l-количество строк\столбцов в матрице на которую умножают
- {
- string str = "";
- int[] a1 = new int[a.Length];
- for (int h = 0; h < a.Length; h++) {
- if (a[h] == '1')
- a1[h] = 1;
- else
- a1[h] = 0;
- }
- int[] a2 = new int[7];
- for (int j = 0; j < 3; j++) {//l=3
- for (int i = 0; i < 7; i++) {//m=7
- a2[j] ^= a1[i] * H[i, j];
- }
- str += a2[j];
- }
- return str;
- }
- static int[,] summ(string a, int[,] C)
- {
- string str = "";
- int[] a1 = new int[a.Length];
- for (int h = 0; h < a.Length; h++) {
- if (a[h] == '1')
- a1[h] = 1;
- else
- a1[h] = 0;
- }
- int[,] a2 = new int[7, 16];
- for (int j = 0; j < 16; j++) {//l=3
- for (int i = 0; i < 7; i++) {//m=7
- a2[i, j] = a1[i] ^ C[i, j];
- }
- }
- return a2;
- }
- static void Main(string[] args)
- {
- Console.WriteLine("Все кодовые вектора С:");
- int[,] C = new int[7, 16] {
- { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
- { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1 },
- { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 },
- { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 },
- { 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1 },
- { 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1 },
- { 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 },
- };
- for (int i = 0; i < 7; i++) {
- for (int j = 0; j < 16; j++) {
- Console.Write("{0}_", C[i, j]);
- }
- Console.WriteLine();
- }
- Console.WriteLine("Транспонированная матрица H:");
- int[,] H = new int[7, 3] {
- { 1, 0, 0 },
- { 0, 1, 0 },
- { 1, 1, 0 },
- { 0, 0, 1 },
- { 1, 0, 1 },
- { 0, 1, 1 },
- { 1, 1, 1 },
- };
- for (int i = 0; i < 7; i++) {
- for (int j = 0; j < 3; j++) {
- Console.Write("{0}_", H[i, j]);
- }
- Console.WriteLine();
- }
- string ch = "y";
- while (ch == "y") {
- Console.WriteLine("Введите некодовое слово");
- string w = Console.ReadLine();
- Console.WriteLine("Смежный класс");
- int[,] C1 = summ(w, C);
- for (int i = 0; i < 7; i++) {
- for (int j = 0; j < 16; j++) {
- Console.Write("{C1[i, j]}_", C1[i, j]);
- }
- Console.WriteLine();
- }
- string Sindrom = proizv(w, H);
- Console.WriteLine("Синдром: {0}", Sindrom);
- Console.WriteLine("Continu? y/n");
- ch = Console.ReadLine();
- }
- Console.ReadKey();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement