Вычислить произведение двух квадратных матриц булевых значений - PullRequest
0 голосов
/ 17 марта 2012

Может кто-нибудь дать мне несколько советов по этому вопросу: Напишите программу, которая вычисляет произведение двух квадратных матриц логических значений, используя операцию ИЛИ вместо + и операцию И вместо *.

То, как я понимаю матричное умножение, если вы скажете следующие 2 матрицы A: 3x3, B: 3x3, C1,1 будет сумма (A1,1 * B1,1), (A2,1 * B1 , 2), (A3,1 * B1,3). Чего я не понимаю, так это как делать это только с операндами AND и OR.

О, и, пожалуйста, не пишите всю программу для меня ... Мне нужно сделать это самому, иначе я не научусь. :)

Ответы [ 3 ]

0 голосов
/ 04 декабря 2012

это логическое выражение, поэтому вы не можете точно добавлять или умножать значения, так как логические значения могут быть только 0 и 1 (0 usually = false and 1 usually = true).Так, как было сказано выше, замените + на или или и * на и и используйте это, чтобы получить логическое значение.

0 голосов
/ 20 июля 2016

Я думаю, что этот код работает для булевой матрицы 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();
        }

  }
}
0 голосов
/ 17 марта 2012

Просто замените + на || и * на &&:

(A1,1 && B1,1) || (A2,1 && B1,2) || (A3,1 && B1,3)

Предполагая, что && и || ваши логические операторы AND и OR соответственно.

...