ページ 1 / 1
2次元配列の問題
Posted: 2013年4月06日(土) 07:35
by まるくま
次の行列x、yの積を求めるプログラムを作成せよ
1 2 3 1 5
x= y= 5 3
4 5 6 8 1
という問題ですが読解力がなくて・・・・
こういう意味でしょうか?
コード:
#include <stdio.h>
int main(void)
{
int i, j;
int ma[2][3] = {{1,2,3,},{4,5,6}};
int mb[3][2] = {{1,5},{5,3},{8,1}};
int mc[3][3] = { 0 };
for(i=0; i<2; i++){
for(j=0; j<2; j++){
mc[i][j] = ma[i][j] * mb[i][j];
}
}
for(i=0; i<2; i++){
for(j=0; j<2; j++){
printf("%3d",mc[i][j]);
}
putchar('\n');
}
return (0);
}
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 08:27
by box
たぶん、こういう意味でしょう。
ていうか、手で計算した結果と同じであればそのプログラムは正しいし、
違っていればそのプログラムは正しくない、ということです。
コード:
#include <stdio.h>
int main(void)
{
int x[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
int y[3][2] = { { 1, 5 }, { 5, 3 }, { 8, 1 } };
int z[2][2] = { 0 };
int i, j, k;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
for (k = 0; k < 3; k++) {
z[i][j] += x[i][k] * y[k][j];
}
}
}
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
printf("%3d", z[i][j]);
}
putchar('\n');
}
putchar('\n');
return 0;
}
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 08:39
by まるくま
難しいですね・・・
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 08:46
by box
Cのコードに落とす前に、そもそも、
2行3列 × 3行2列 = 2行2列となる
i行目とj列目の積の和が、積のi行j列の要素となる
このあたりはおわかりなんですよね?
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 08:48
by まるくま
2行3列 × 3行2列 = 2行2列となる
ということはわかります
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 08:55
by box
i行目とj列目の積の和が、積のi行j列の要素となる
こちらについてはいかがですか?
手で計算することはできるのですよね?
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 08:58
by まるくま
手で計算ということは1*1=1 2*5=10 4*5=20・・・ということでしょうか?
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 14:52
by box
まるくま さんが書きました:手で計算ということは1*1=1 2*5=10 4*5=20・・・ということでしょうか?
それだと、最初に投稿されたコードのとおりですよね。
行列どうしの積の計算方法が理解できていないように思えます。大丈夫ですか?
にならなければなりません。
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 15:29
by まるくま
よくわからないです・・・(´・ω・`)
行列x,y(maとかだとまちがってますね(汗))を重ねるイメージなんですけど
違うんですか?
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 15:45
by beatle
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 15:51
by box
まるくま さんが書きました:
行列x,y(maとかだとまちがってますね(汗))を重ねるイメージなんですけど
違うんですか?
変数名の違いは本質的なところではありません。maを使ったから間違い、というようなことはありません。
2行3列と3行2列をどうやって「重ねる」のでしょうか。
beatleさんが紹介してくださったところへ行って、
行列どうしの積の計算方法を勉強してください。
Re: 2次元配列の問題
Posted: 2013年4月06日(土) 16:04
by まるくま
行列のことは勘違いしてました、というか習ってないので(汗
勉強しようと思います。