C语言求解布尔矩阵的布尔积运算
来源:互联网 发布:java如何输出金字塔 编辑:程序博客网 时间:2024/04/25 00:04
让我们先回顾下布尔矩阵的布尔积运算的公式
如果A=[aij]是m×p矩阵,B=[bij]是p×n矩阵,则A和B的布尔积(Boolean Product)是m×n矩阵C=A·B=[cij],其中
cij=(ai1∧b1j) ∨(ai2∧b2j) ∨……∨(aip∧bpj)
#include<stdio.h>//输入n×m的矩阵void input(int a[][200],int n,int m);//矩阵A(大小m×l) 和矩阵B(大小l×n)的布尔积运算void solve(int a[][200],int b[][200],int m,int l,int n);//输出n×m的矩阵void output(int a[][200],int n,int m);int main(){ int m,l,n; int a[200][200],b[200][200]; while(scanf("%d %d",&m,&l)!=EOF) { input(a,m,l); scanf("%d %d",&l,&n); input(b,l,n); solve(a,b,m,l,n); }}void output(int a[][200],int n,int m){ int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(j!=0) printf(" "); printf("%d",a[i][j]); } printf("\n"); }}void input(int a[][200],int n,int m){ int i,j; for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&a[i][j]);}void solve(int a[][200],int b[][200],int m,int l,int n){ int c[200][200]; int i,j,k; int flag; for(i=0;i<m;i++) { for(j=0;j<n;j++) { flag=0; for(k=0;k<l;k++) { if(a[i][k]==1&&b[k][j]==1) { flag=1; break; } } c[i][j]=flag; } } output(c,m,n);}测试数据如下
3 41 0 0 11 1 0 11 1 0 14 40 0 0 00 1 1 11 1 0 10 1 0 1结果如下
0 1 0 10 1 1 10 1 1 1
1 0
- C语言求解布尔矩阵的布尔积运算
- 布尔矩阵—C语言
- 布尔代数以及C语言上的位运算
- C语言的布尔类型
- C语言的布尔类型
- C语言布尔变量
- 选区的布尔运算
- C语言是没有布尔类型的!
- C语言的布尔类型(_Bool)
- C语言的布尔类型(_Bool)
- C语言的布尔类型(_Bool, bool)
- C语言的布尔类型bool
- C语言的布尔类型(_Bool)
- 布尔矩阵
- 布尔矩阵
- 布尔矩阵
- 布尔运算
- 布尔运算
- extern "C"的用法解析
- JAVA Web验证唯一
- iOS,一行代码进行RSA、DES 、AES、MD5加密、解密(转)
- WebSocket协议深究
- Android如何调用第三方SO库
- C语言求解布尔矩阵的布尔积运算
- Elasticsearch
- DDX_Control和DDX_Text的区别
- 【转】做PPT需要用到的一些小工具
- 使用Vitamio打造自己的Android万能播放器(1)——准备
- bash: xhost: 未找到命令
- OpenSSL RSA算法 非对称加密
- Linux配置定时,使用 crontab -e 与 直接编辑 /etc/crontab 的区别
- 银行家算法