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 回答