[宿題]   by shinnou  2007/04/06  

引数で与えられた整数( N  > 0) を次数とする
正方行列 A  (N×N) を適当に作成し、

(1)  各行の平均を求めよ
(2)  Aの転置行列を求めよ
(3)  Aの2乗を求めよ

A の要素は  -1 から 1  の double 型の数とする 

[解答例] 

//(1)各行の平均を求めよ

public class ShinnouHW {
	public static void main(String[] args) {
		int  n = Integer.valueOf(args[0]).intValue( );
		double a[][], r, sum;
		a = new double [n][n];
		for(int i = 0;i < n;i++) {
			for(int j = 0;j < n;j++) {
				r = Math.random();
				a[i][j] = 2*r - 1;
			}
		}
		for(int i = 0;i < n;i++) {
			sum = 0.0;
			for(int j = 0;j < n;j++) {
				sum += a[i][j];
			}
			System.out.println(sum/n);
		}
	}

}

//(2)Aの転置行列を求めよ

public class ShinnouHW2 {
	public static void main(String[] args) {
		int  n = Integer.valueOf(args[0]).intValue( );
		double a[][], r;
		a = new double [n][n];
		for(int i = 0;i < n;i++) {
			for(int j = 0;j < n;j++) {
				r = Math.random();
				a[i][j] = 2*r - 1;
			}
		}
		
		for(int i = 0;i < n;i++) {
			for(int j = 0;j < n;j++) {
				System.out.print(a[i][j] + " ");
			}
			System.out.println();
		}
		System.out.println("-----------------");
		for(int j = 0;j < n;j++) {
			for(int i = 0;i < n;i++) {
				System.out.print(a[i][j] + " ");
			}
			System.out.println();
		}
	}
}

//(3)Aの2乗を求めよ

public class ShinnouHW3 {
	public static void main(String[] args) {
		int  n = Integer.valueOf(args[0]).intValue( );
		double a[][], b[][], r, sum;
		a = new double [n][n];
		b = new double [n][n];
		for(int i = 0;i < n;i++) {
			for(int j = 0;j < n;j++) {
				r = Math.random();
				a[i][j] = 2*r - 1;
			}
		}
		for(int i = 0;i < n;i++) {	
			for(int j = 0;j < n;j++) {
				sum = 0;
				for(int k = 0;k < n;k++) {
					sum += a[i][k] * a[k][j];
				}
				b[i][j] = sum;
			}
		}
		
		for(int i = 0;i < n;i++) {
			for(int j = 0;j < n;j++) {
				System.out.print(a[i][j] + " ");
			}
			System.out.println();
		}
		System.out.println("-----------------");
		for(int i = 0;i < n;i++) {
			for(int j = 0;j < n;j++) {
				System.out.print(b[i][j] + " ");
			}
			System.out.println();
		}
	}

}