Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Coder {
- private int lenghtWordCode; // n długość słowa kodowego
- private int lenghtWordInformation; // długośc słowa informacyjnego
- private int[] polynomialGenerate; // wielomian generujący
- private int[][] MatrixG;
- private int[][] complementValue = new int[6][9];// tutaj jest błąd
- private int[] codeWord;
- private int[] generateCodeWord = new int[15];
- Coder(int lenghtWordCode, int lenghtWordInformation,
- int[] polynomialGenerate) {
- this.lenghtWordCode = lenghtWordCode;
- this.lenghtWordInformation = lenghtWordInformation;
- this.polynomialGenerate = polynomialGenerate;
- }
- public int[][] GenerateValueMatrixG() {
- MatrixG = new int[lenghtWordInformation][lenghtWordCode];
- for (int i = 0; i < lenghtWordInformation; i++) {// 6
- for (int j = 0; j < lenghtWordCode; j++) {// 15
- if (i < lenghtWordInformation && j < lenghtWordInformation) {
- if (i == j)
- MatrixG[i][j] = 1;
- else
- MatrixG[i][j] = 0;
- } else
- MatrixG[i][j] = 0;
- }
- }
- int k = 0;// Boże co za zjebana zmienna
- int g = 0;// Bron tego przed nami
- for (int i = lenghtWordInformation - 1; i >= 0; i--) {
- g = 0;
- for (int j = 0; j < lenghtWordCode - lenghtWordInformation; j++) {
- MatrixG[i][j + lenghtWordInformation] = complementValue[k][g];
- g++;
- }
- k++;
- }
- return MatrixG;
- }
- public void ComplementValueMatrixG() {
- int[] polynomialMaster = new int[lenghtWordCode];
- int[] copypolynomialGenerate = (int[]) polynomialGenerate.clone();
- int[] zeroTable = new int[polynomialGenerate.length];
- for (int i = 0; i < polynomialMaster.length; i++) {
- if (i == 0)
- polynomialMaster[i] = 1;
- else
- polynomialMaster[i] = 0;
- }
- for (int i = 0; i < zeroTable.length; i++) {
- zeroTable[i] = 0;
- }
- for (int j = 0; j < lenghtWordInformation; j++) {
- if (j == 0) {
- for (int i = 0; i < polynomialGenerate.length; i++) {
- polynomialGenerate[i] = polynomialMaster[i]
- + polynomialGenerate[i];
- if (polynomialGenerate[i] == 2)
- polynomialGenerate[i] = 0;
- }
- } else if (polynomialGenerate[0] == 1) {
- for (int i = 0; i < polynomialGenerate.length; i++) {
- polynomialGenerate[i] = polynomialGenerate[i]
- + copypolynomialGenerate[i];
- if (polynomialGenerate[i] == 2)
- polynomialGenerate[i] = 0;
- }
- } else if (polynomialGenerate[0] == 0) {
- for (int i = 0; i < polynomialGenerate.length; i++) {
- polynomialGenerate[i] = polynomialGenerate[i]
- + zeroTable[i];
- }
- }
- int var = polynomialGenerate[0];
- for (int i = 0; i < polynomialGenerate.length - 1; i++) {
- polynomialGenerate[i] = polynomialGenerate[i + 1];
- }
- polynomialGenerate[polynomialGenerate.length - 1] = var;
- for (int i = 0; i < polynomialGenerate.length - 1; i++) {
- System.out.print(polynomialGenerate[i]);
- }
- System.out.println();
- for (int i = 0; i < polynomialGenerate.length - 1; i++) {
- complementValue[j][i] = polynomialGenerate[i];
- }
- }
- }
- public void GenerateCodeWord() {
- int[] codeWord = { 1, 1, 1, 1, 1, 1 };
- int[][] cloneMatrixG = MatrixG.clone();
- int sum = 0;
- for (int i = 0; i < codeWord.length; i++) {
- if (codeWord[i] == 0)
- for (int j = 0; j < lenghtWordCode; j++)
- cloneMatrixG[i][j] = 0;
- }
- for (int j = 0; j < lenghtWordCode; j++) {
- sum = 0;
- for (int i = 0; i < codeWord.length; i++) {
- sum = cloneMatrixG[i][j] + sum;
- }
- if (sum % 2 == 0)
- generateCodeWord[j] = 0;
- else
- generateCodeWord[j] = 1;
- }
- for (int i = 0; i < lenghtWordInformation; i++) {
- for (int j = 0; j < lenghtWordCode; j++) {
- System.out.print(cloneMatrixG[i][j]);
- }
- System.out.println();
- }
- }
- public void PrintPolynomialGenerate() {
- for (int i = 0; i < polynomialGenerate.length; i++) {
- System.out.print(polynomialGenerate[i]);
- }
- }
- public void PrintMatrixG() {
- for (int i = 0; i < lenghtWordInformation; i++) {
- for (int j = 0; j < lenghtWordCode; j++) {
- System.out.print(MatrixG[i][j]);
- }
- System.out.println();
- }
- }
- public void returnInformationOfData() {
- System.out.println("Dlugosc slowa kodowego " + lenghtWordCode + " "
- + "Dlugosc slowa informacyjnego " + lenghtWordInformation);
- System.out.println(lenghtWordCode - lenghtWordInformation);
- System.out.println(lenghtWordInformation);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement