回 帖 发 新 帖 刷新版面

主题:[活动]一个小插曲

[em3]假设有两个方阵
甲:1  2  3  4  5  6  7  8  9   
  32 33 34 35 36 37 38 39 10
  31 56 57 58 59 60 61 40 11
  30 55 72 73 74 75 62 41 12
  29 54 71 80 81 76 63 42 13
  28 53 70 79 78 77 64 43 14
  27 52 69 68 67 66 65 44 15
  26 51 50 49 48 47 46 45 16
  25 24 23 22 21 20 19 18 17
         n=9
乙:1  1  1  1  1  1  1  1  1
   2  2  2  2  2  2  2  2  2
   3  3  3  3  3  3  3  3  3
   4  4  4  4  4  4  4  4  4
   5  5  5  5  5  5  5  5  5
   6  6  6  6  6  6  6  6  6
   7  7  7  7  7  7  7  7  7
   8  8  8  8  8  8  8  8  8
   9  9  9  9  9  9  9  9  9
         n=9
算出两个方阵的乘积,放到丙方阵内!
请高人指点!!

回复列表 (共2个回复)

沙发

两个矩阵,第一个矩阵的列数必须等于第二个矩阵的行数,才能相乘。
核心代码为:
c(i, j) = c(i, j) + a(i, k) * b(k, j)

板凳

程序:
OPTION BASE 1
CLS
DIM a(9, 9), b(9, 9), c(9, 9)
a(5, 5) = 81: s = 0: t = 0
FOR i = 8 TO 2 STEP -2
    FOR j = 0 TO i - 1
        s = s + 1
        a(5 - i / 2, 5 - i / 2 + j) = s
        a(5 - i / 2 + j, 5 + i / 2) = s + i
        a(5 + i / 2, 5 + i / 2 - j) = s + i + i
        a(5 + i / 2 - j, 5 - i / 2) = s + i + i + i
    NEXT j
    t = t + i * 4
    s = t
NEXT i
FOR i = 1 TO 9
    FOR j = 1 TO 9
        b(i, j) = i
        FOR k = 1 TO 9
            c(i, j) = c(i, j) + a(i, k) * b(k, j)
        NEXT k
        PRINT USING "#####"; c(i, j);
    NEXT j
    PRINT
NEXT i
END

我来回复

您尚未登录,请登录后再回复。点此登录或注册