Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.math.*;
- public class HammingGenerator {
- private static int[] messageArray;
- private static int [][] hammingArray;
- private static int[] syndrome;
- private static int r;
- private static int k;
- public static void main(String args[]) {
- Scanner in = new Scanner(System.in);
- System.out.println("Wprowadz dlugosc wiadomosci: ");
- int n = in.nextInt();
- inputMessage(n);
- }
- //wprowadzanie wiadomosci
- private static void inputMessage(int n) {
- // System.out.println("Wprowadzanie widomosci");
- // messageArray = new int[n];
- // Scanner in = new Scanner(System.in);
- // for(int i=0 ; i < n ; i++) {
- // System.out.println("Wprowadz bit nr " + (n-i) + ":");
- // messageArray[n-i-1] = in.nextInt();
- // }
- // System.out.println("Wprowadzono:");
- // for(int i=0 ; i < n ; i++) {
- // System.out.print(messageArray[n-i-1]);
- // }
- // System.out.println();
- r = calculateR(n,3);
- k = n + r;
- hammingArray = new int[r][k];
- // //tworzenie macierzy jednostkowej
- // for (int row = 0; row < hammingArray.length; row++) {
- // for (int col = n; col < hammingArray[row].length; col++) {
- // if (row == col-n){ hammingArray[row][col] = 1;}
- // System.out.print(hammingArray[row][col] + "\t");
- // }
- // System.out.println();
- // }
- // System.out.println();
- for (int i = 0; i < hammingArray.length; i++) {
- for (int j = 0; j < hammingArray[i].length - r; j++) {
- if (j == 0){ hammingArray[i][j] = 1;
- } else if (i ==1 && j == hammingArray[i].length || j == hammingArray[i].length -1) {
- hammingArray[i][j] = 1;
- }
- System.out.print(hammingArray[i][j] + "\t");
- }
- System.out.println();
- }
- System.out.println();
- //print
- // for (int row = 0; row < hammingArray.length; row++) {
- // for (int col = 0; col < hammingArray[row].length; col++) {
- // System.out.print(hammingArray[row][col] + "\t");
- // }
- // System.out.println();
- // }
- }
- private static int calculateR(int k, int dmin) {
- if (dmin == 3) {
- return (int)Math.ceil(Math.log(k)/Math.log(2))+1;
- } else if (dmin == 4) {
- return (int)Math.ceil(Math.log(k)/Math.log(2))+2;
- } else {
- //błąd
- return 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement