#include #include #include int main(int argc, char **argv) { int i, j, k; printf("Enter the dimension of the matrices: "); int n; scanf("%d", &n); printf("Enter the 1st matrix: "); double a[n][n]; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { scanf("%f", &a[i][j]); } } printf("Enter the 2nd matrix: "); double b[n][n]; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { scanf("%f", &b[i][j]); } } printf("Enter the result matrix: "); double c[n][n]; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { scanf("%f", &c[i][j]); } } //random generation of the r vector containing only 0/1 as its elements double r[n][1]; for (i = 0; i < n; i++) { r[i][0] = rand() % 2; printf("%f ", r[i][0]); } //test A * (b*r) - (C*) = 0 double br[n][1]; for (i = 0; i < n; i++) { for (j = 0; j < 1; j++) { for (k = 0; k < n; k++) { br[i][j] = br[i][j] + b[i][k] * r[k][j]; } } } double cr[n][1]; for (i = 0; i < n; i++) { for (j = 0; j < 1; j++) { for (k = 0; k < n; k++) { cr[i][j] = cr[i][j] + c[i][k] * r[k][j]; } } } double abr[n][1]; for (i = 0; i < n; i++) { for (j = 0; j < 1; j++) { for (k = 0; k < n; k++) { abr[i][j] = abr[i][j] + a[i][k] * br[k][j]; } } } // br = multiplyVector(b, r, n); // cr = multiplyVector(c, r, n); // abr = multiplyVector(a, br, n); //abr-cr for (i = 0; i < n; i++) { abr[i][0] -= cr[i][0]; } int flag = 1; for (i = 0; i < n; i++) { if (abr[i][0] == 0) continue; else flag = 0; } if (flag == 1) printf("Yes"); else printf("No"); return 0; }