计算两个布尔值矩形矩阵的乘积

时间:2012-03-17 11:57:50

标签: matrix matrix-multiplication

有人可以就这个问题给我一些指导:编写一个程序来计算两个布尔值矩形矩阵的乘积,使用OR运算代替+和AND运算代替*。

我理解矩阵乘法的方法,如果你说下面的2个矩阵A:3x3,B:3x3,C1,1将是(A1,1 * B1,1)的总和,(A2,1 * B1 ,2),(A3,1 * B1,3)。我没有得到的是如何只使用AND和OR操作数。

哦,请不要为我写整个程序......我需要自己做这个,否则我不会学习。 :)

3 个答案:

答案 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();
        }

  }
}