Java-多次元配列
前回のちょっとした続き。多次元配列を使って線形代数の基本的な計算問題の、行列式の値を計算するプログラムを書いてみました。ただし2行2列の正方行列限定ですが・・・。まあ3行3列の計算もかなり面倒になりそうですけどできなくはなさそう。
ちなみに多次元配列というのは
int sample[][] = new int[5][4];
のような文で、使い方は普通の配列とほとんど変わりません。
sample[0][0] = 10; sample[0][1] = 20; sample[1][0] = 30;
などのように使えます。
//多次元配列の応用・任意の2行2列行列式の計算 import java.io.*; public class May12n2 { public static void main(String[] args) throws IOException { int num[][] = new int[2][2]; System.out.println("2*2行列の値を計算をします。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); for(int i=0; i<num.length; i++){ for(int j=0; j<num.length; j++){ System.out.print("("+(i+1)+","+(j+1)+")行列の値は?:"); String str = br.readLine(); num[i][j] = Integer.parseInt(str); } } System.out.println(""); System.out.println(num[0][0]+"\t"+num[0][1]); System.out.println(num[1][0]+"\t"+num[1][1]); System.out.println(""); System.out.println("上の行列式の値は"); System.out.println(num[0][0]*num[1][1]-num[1][0]*num[0][1]); } }
出力結果は、たとえば
2*2行列の値を計算をします。 (1,1)の値は?:3 (1,2)の値は?:4 (2,1)の値は?:5 (2,2)の値は?:6 3 4 5 6 上の行列式の値は -2
変なところがあったり、もっと簡潔にかけそうなところがあったら教えてください(´・ω・`)