0

既製のコードと入力と期待される出力が与えられたので、入力から出力を計算する方法を見つける必要があります

これは私が与えられたコードです

3 2 4

T T
F F
T T

F F F F
T T T T

and i have been asked to calculate the logical matrix P=mn

解決済み

4

2 に答える 2

1
 for i in range(len(M)):
     for j in range(len(N[0])):
         for k in range(len(N)):
             P[i][j] += M[i][k] * N[k][j]

これは、整数を含む行列の基本スキーマです。2つのステップを実行する必要があります:1)P行列を開始します2)整数の代わりに「T」と「F」の値で操作します。

おそらく、ステップ2を実行する最も簡単な方法は、eval関数を使用することです。

T = 1  # eval('T') will be 1
F = 0  # eval('F') will be 0

そして、行を変更します:

P[i][j] += eval(M[i][k]) * eval(N[k][j])

ただし、値をPから「T」または「F」の値に変換する必要があります。お役に立てれば。

M = [['T', 'T'], ['F', 'F'], ['T', 'T']]             #sample values
N = [['F', 'F', 'F', 'F'], ['T', 'T', 'T', 'T']]

T = 1
F = 0

P = [] 

for i in range(len(M)):                              #result matrix creation
    P.append([None] * len(N[0]))

for i in range(len(M)):
    for j in range(len(N[0])):
        P[i][j] = 0                                  #initialization
        for k in range(len(N)):
            P[i][j] |= eval(M[i][k]) & eval(N[k][j]) #logical operators
        P[i][j] = 'T' if P[i][j] else 'F'            #conversion back to 'T' and 'F'

print P

これにより、次の出力が生成されます。

[['T', 'T', 'T', 'T'], ['F', 'F', 'F', 'F'], ['T', 'T', 'T', 'T']]
于 2012-11-15T21:36:18.717 に答える
0

http://www.syntagmatic.net/matrix-multiplication-in-python/、特に乗算関数の仕組みを見てみましょう。

于 2012-11-15T21:17:15.660 に答える