Advertisement
Guest User

Untitled

a guest
May 25th, 2015
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.39 KB | None | 0 0
  1. public class Coder {
  2.     private int lenghtWordCode; // n długość słowa kodowego
  3.     private int lenghtWordInformation; // długośc słowa informacyjnego
  4.     private int[] polynomialGenerate; // wielomian generujący
  5.     private int[][] MatrixG;
  6.     private int[][] complementValue = new int[6][9];// tutaj jest błąd
  7.     private int[] codeWord;
  8.     private int[] generateCodeWord = new int[15];
  9.  
  10.     Coder(int lenghtWordCode, int lenghtWordInformation,
  11.             int[] polynomialGenerate) {
  12.         this.lenghtWordCode = lenghtWordCode;
  13.         this.lenghtWordInformation = lenghtWordInformation;
  14.         this.polynomialGenerate = polynomialGenerate;
  15.  
  16.     }
  17.  
  18.     public int[][] GenerateValueMatrixG() {
  19.         MatrixG = new int[lenghtWordInformation][lenghtWordCode];
  20.         for (int i = 0; i < lenghtWordInformation; i++) {// 6
  21.             for (int j = 0; j < lenghtWordCode; j++) {// 15
  22.                 if (i < lenghtWordInformation && j < lenghtWordInformation) {
  23.                     if (i == j)
  24.                         MatrixG[i][j] = 1;
  25.                     else
  26.                         MatrixG[i][j] = 0;
  27.                 } else
  28.                     MatrixG[i][j] = 0;
  29.             }
  30.  
  31.         }
  32.         int k = 0;// Boże co za zjebana zmienna
  33.         int g = 0;// Bron tego przed nami
  34.         for (int i = lenghtWordInformation - 1; i >= 0; i--) {
  35.             g = 0;
  36.             for (int j = 0; j < lenghtWordCode - lenghtWordInformation; j++) {
  37.                 MatrixG[i][j + lenghtWordInformation] = complementValue[k][g];
  38.                 g++;
  39.  
  40.             }
  41.             k++;
  42.         }
  43.         return MatrixG;
  44.     }
  45.  
  46.     public void ComplementValueMatrixG() {
  47.         int[] polynomialMaster = new int[lenghtWordCode];
  48.         int[] copypolynomialGenerate = (int[]) polynomialGenerate.clone();
  49.         int[] zeroTable = new int[polynomialGenerate.length];
  50.  
  51.         for (int i = 0; i < polynomialMaster.length; i++) {
  52.             if (i == 0)
  53.                 polynomialMaster[i] = 1;
  54.             else
  55.                 polynomialMaster[i] = 0;
  56.         }
  57.         for (int i = 0; i < zeroTable.length; i++) {
  58.             zeroTable[i] = 0;
  59.         }
  60.  
  61.         for (int j = 0; j < lenghtWordInformation; j++) {
  62.             if (j == 0) {
  63.                 for (int i = 0; i < polynomialGenerate.length; i++) {
  64.                     polynomialGenerate[i] = polynomialMaster[i]
  65.                             + polynomialGenerate[i];
  66.                     if (polynomialGenerate[i] == 2)
  67.                         polynomialGenerate[i] = 0;
  68.                 }
  69.             } else if (polynomialGenerate[0] == 1) {
  70.                 for (int i = 0; i < polynomialGenerate.length; i++) {
  71.                     polynomialGenerate[i] = polynomialGenerate[i]
  72.                             + copypolynomialGenerate[i];
  73.                     if (polynomialGenerate[i] == 2)
  74.                         polynomialGenerate[i] = 0;
  75.                 }
  76.  
  77.             } else if (polynomialGenerate[0] == 0) {
  78.                 for (int i = 0; i < polynomialGenerate.length; i++) {
  79.                     polynomialGenerate[i] = polynomialGenerate[i]
  80.                             + zeroTable[i];
  81.                 }
  82.             }
  83.  
  84.             int var = polynomialGenerate[0];
  85.             for (int i = 0; i < polynomialGenerate.length - 1; i++) {
  86.                 polynomialGenerate[i] = polynomialGenerate[i + 1];
  87.  
  88.             }
  89.             polynomialGenerate[polynomialGenerate.length - 1] = var;
  90.  
  91.             for (int i = 0; i < polynomialGenerate.length - 1; i++) {
  92.                 System.out.print(polynomialGenerate[i]);
  93.             }
  94.             System.out.println();
  95.  
  96.             for (int i = 0; i < polynomialGenerate.length - 1; i++) {
  97.                 complementValue[j][i] = polynomialGenerate[i];
  98.             }
  99.  
  100.         }
  101.  
  102.     }
  103.  
  104.     public void GenerateCodeWord() {
  105.         int[] codeWord = { 1, 1, 1, 1, 1, 1 };
  106.         int[][] cloneMatrixG = MatrixG.clone();
  107.         int sum = 0;
  108.  
  109.         for (int i = 0; i < codeWord.length; i++) {
  110.             if (codeWord[i] == 0)
  111.                 for (int j = 0; j < lenghtWordCode; j++)
  112.                     cloneMatrixG[i][j] = 0;
  113.         }
  114.  
  115.         for (int j = 0; j < lenghtWordCode; j++) {
  116.             sum = 0;
  117.             for (int i = 0; i < codeWord.length; i++) {
  118.                 sum = cloneMatrixG[i][j] + sum;
  119.  
  120.             }
  121.             if (sum % 2 == 0)
  122.                 generateCodeWord[j] = 0;
  123.             else
  124.                 generateCodeWord[j] = 1;
  125.  
  126.         }
  127.  
  128.         for (int i = 0; i < lenghtWordInformation; i++) {
  129.             for (int j = 0; j < lenghtWordCode; j++) {
  130.                 System.out.print(cloneMatrixG[i][j]);
  131.             }
  132.             System.out.println();
  133.         }
  134.  
  135.     }
  136.  
  137.     public void PrintPolynomialGenerate() {
  138.         for (int i = 0; i < polynomialGenerate.length; i++) {
  139.             System.out.print(polynomialGenerate[i]);
  140.         }
  141.     }
  142.  
  143.     public void PrintMatrixG() {
  144.         for (int i = 0; i < lenghtWordInformation; i++) {
  145.             for (int j = 0; j < lenghtWordCode; j++) {
  146.                 System.out.print(MatrixG[i][j]);
  147.             }
  148.             System.out.println();
  149.         }
  150.     }
  151.  
  152.     public void returnInformationOfData() {
  153.         System.out.println("Dlugosc slowa kodowego " + lenghtWordCode + " "
  154.                 + "Dlugosc slowa informacyjnego " + lenghtWordInformation);
  155.         System.out.println(lenghtWordCode - lenghtWordInformation);
  156.         System.out.println(lenghtWordInformation);
  157.  
  158.     }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement