有人可以就这个问题给我一些指导:编写一个程序来计算两个布尔值矩形矩阵的乘积,使用OR运算代替+和AND运算代替*。
我理解矩阵乘法的方法,如果你说下面的2个矩阵A:3x3,B:3x3,C1,1将是(A1,1 * B1,1)的总和,(A2,1 * B1 ,2),(A3,1 * B1,3)。我没有得到的是如何只使用AND和OR操作数。
哦,请不要为我写整个程序......我需要自己做这个,否则我不会学习。 :)
答案 0 :(得分:0)
只需将+
替换为||
,将*
替换为&&
:
(A1,1&& B1,1)|| (A2,1&& B1,2)|| (A3,1&& B1,3)
假设&&和||分别是你的AND和OR布尔运算符。
答案 1 :(得分:0)
它是一个布尔表达式,所以你没有精确地添加或乘以值,因为布尔值只能是0和1(0 usually = false and 1 usually = true
)。所以就像上面所说的那样用+和'和'替换+和,用它来得到你的布尔值。
答案 2 :(得分:0)
我认为这段代码适用于2乘2布尔矩阵。但不能说更高的方阵。
import java.util.Scanner;
public class Boolean Matrix Multiplication {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("Enter the first number : ");
int n = scan.nextInt();
boolean[][] b= {
{true, false},
{false, true}
};
boolean[][] a= {
{false, true},
{true, false}
};
boolean[][] c = new boolean [n][n];
for(int i = 0; i<n; i++){
for(int j = 0; j<n; j++){
for(int k = 0; k<n; k++){
c[i][j] = (a[i][k] && b[k][j]) ||(a[i][n-k-1] && b[n-k-1][j]);
}
System.out.print(c[i][j] + " ");
}
System.out.println();
}
}
}