• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:行列の計算について。)

JAVAで行列の計算についての質問

このQ&Aのポイント
  • JAVAで行列の計算をするプログラムを作成しているがうまくいかない。使用したプログラムはfor文を使ったもので、入力された行列数に応じて行列を作成して計算する。しかし、どうも正しく計算できない。
  • 上記のプログラムにはfor文が2重に使われ、3重目のfor文で行列の計算を行う。しかし、正しい計算結果を得ることができていない。
  • JAVAには行列の計算をするための専用の関数やクラスが存在するのか疑問である。また、行列の計算に関するソースコードや教材が欲しい。移行が急だったため、JAVAの行列計算につまづいている。

質問者が選んだベストアンサー

  • ベストアンサー
  • wolv
  • ベストアンサー率37% (376/1001)
回答No.2

cは、intではなく、配列として宣言してください。 どうでしょう。

jin_09
質問者

お礼

お礼が遅くなってしまい、すみませんでした。なんとか解決できました。ありがとうございます!

その他の回答 (1)

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

for (int i =0; i < 2; i++){ for (int j = 0; j<2; j++){ C[i][j]=0; // <-これが必要だと思います。 for (int k = 0; k<2; k++){ C[i][j]=C[i][j]+a[i][k]*b[k][j]; } } } 基本的には質問文にあるルーチンでよいと思いますが、 どこが問題ある、と感じているのでしょうか? 「エラーがでて動かない」 「予想と違う答えになる」 などの情報と、その詳しい内容を書いたほうが 回答がつきやすいと思います。

jin_09
質問者

補足

ありがとうございます。 確かに、質問の仕方があいまいでした。すみません。 また、なんとかプログラムを組んでみましたが、エラーになってしまいます。 import java.io.*; public class Gyouretu { public static void main(String[] args) { System.out.println("行列数を入力"); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in), 1); String line = reader.readLine(); int n = Integer.parseInt(line); int a[][] = new int[n][n]; int b[][] = new int[n][n]; int i,j,k,c; for ( i = 0; i < n; i++){ for ( j = 0; j < n; j++){ c[i][j]=0; for ( k = 0; k < n; k++){ c[i][j] += a[i][k] * b[k][j]; System.out.println(c); } } } System.out.println("end"); } } を実行すると Gyouretu.java:18: 配列が要求されましたが、int が見つかりました。 c[i][j]=0;  ^ Gyouretu.java:20: 配列が要求されましたが、int が見つかりました。 c[i][j] += a[i][k] * b[k][j];  ^ というエラーになってしまいます。 どうも理由がわかりません。 アドバイスをいただけますでしょうか? よろしくお願いします。

関連するQ&A