【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.18471

2×2行列
投稿者---かなみ(2004/12/01 18:09:41)


2次元配列について書かれていたのでお聞きしたいのですが、2次元配列のかけ算のプログラムはどうなるのでしょうか?例えば2×2行列の掛け算なのですが。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:2×2行列 18472 monkey 2004/12/01 18:34:41


No.18472

Re:2×2行列
投稿者---monkey(2004/12/01 18:34:41)


> 2×2行列の掛け算

紙と鉛筆を使って、

| a00, a01 | | b00, b01 | | c00, c01 |
|          |*|          |=|          |
| a10, a11 | | b10, b11 | | c10, c11 |

のときのc00〜c11を求める式を、a00〜a11,b00〜b11を使って書けますか?
プログラムにするのはその後の仕事です。



この投稿にコメントする

削除パスワード

No.18473

Re:2×2行列
投稿者---かなみ(2004/12/01 18:48:32)


はい、できます。

c00=a00*b00+a01*b10
c01=a00*b01+a01*b11
c10=a10*b00+a11*b10
c11=a10*b01+a11*b11

です。




この投稿にコメントする

削除パスワード

No.18474

Re:2×2行列
投稿者---monkey(2004/12/01 19:03:36)


その結果から、行番号をi、列番号をjとおいたとき、

cij = Σ(ain * bnj)
n = 0, 1

という式になることが分かります。
ですから、プログラムは、

    i:0〜1 のループ
        j:0〜1のループ
            cijを求める(n:0〜1のループを使う)

となります。



この投稿にコメントする

削除パスワード

No.18483

Re:2×2行列
投稿者---monkey(2004/12/02 06:47:59)


> cij = Σ(ain * bnj)
> n = 0, 1

>    i:0〜1 のループ
>        j:0〜1のループ
>            cijを求める(n:0〜1のループを使う)

コアな部分だけ書けばこうなるかな。

    for( i = 0; i < N; i++ ){
        for( j = 0; j < N; j++ ){
            int n;
            c[i][j] = 0;
            for( n = 0; n < N; n++ ){
                c[i][j] += a[i][n] * b[n][j];
            }
        }
    }

# N = 2,
# a, b, c は、それぞれ N × N の二次元配列。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧