Hadamard.java


Below is the syntax highlighted version of Hadamard.java from §1.4 Arrays.


/******************************************************************************
 * Compilation: javac Hadamard.java
 * Execution: java Hadamard n
 *
 * Prints the Hadamard matrix of order n. Assumes n is a power of 2.
 *
 * % java Hadamard 2
 * * *
 * * .
 *
 * % java Hadamard 4
 * * * * *
 * * . * .
 * * * . .
 * * . . *
 *
 ******************************************************************************/
publicclassHadamard{
publicstaticvoidmain(String[] args){
int n = Integer.parseInt(args[0]);
boolean[][] hadamard =newboolean[n][n];
// initialize Hadamard matrix of order n
 hadamard[0][0]=true;
for(int k =1; k < n; k += k){
for(int i =0; i < k; i++){
for(int j =0; j < k; j++){
 hadamard[i+k][j]= hadamard[i][j];
 hadamard[i][j+k]= hadamard[i][j];
 hadamard[i+k][j+k]=!hadamard[i][j];
}
}
}
// print matrix
for(int i =0; i < n; i++){
for(int j =0; j < n; j++){
if(hadamard[i][j]) System.out.print("* ");
else System.out.print(". ");
}
 System.out.println();
}
}
}

AltStyle によって変換されたページ (->オリジナル) /


Copyright © 2000–2022, Robert Sedgewick and Kevin Wayne.
Last updated: Thu Aug 11 10:13:44 EDT 2022.