精华内容
下载资源
问答
  • 布尔矩阵

    2021-03-15 21:41:23
    一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这4×4的矩阵就具有奇偶性: 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 它所有行的和是2,0,4,2。它所有列的和是2,2,2,2。 现请你编写一个程序,...

    题目描述
    一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这4×4的矩阵就具有奇偶性:
    1 0 1 0
    0 0 0 0
    1 1 1 1
    0 1 0 1
    它所有行的和是2,0,4,2。它所有列的和是2,2,2,2。
    现请你编写一个程序,读入这个矩阵并检查它是否具有奇偶性。如果没有,你的程序应当再检查一下它是否可以通过修改一位(把0修改为1,把1修改为0)来使它具有奇偶性。如果不可能,这个矩阵就被认为是破坏了。

    输入
    输入包含多组测试数据。每组测试数据的第一行是一个整数n(1<=n<=100),代表该矩阵的大小。在接下来的行中,每行有n个整数。矩阵是由0或1构成的。n=0时,输入结束。

    输出
    对于每组输入,如果这个矩阵具有奇偶性,则输出“OK”。如果奇偶性能通过只修改该矩阵中的一位来建立,那么输出“Change bit (i,j)”,这里i和j是被修改的这位的行号和列号。否则,输出“Corrupt”。

    样例输入
    4
    1 0 1 0
    0 0 0 0
    1 1 1 1
    0 1 0 1
    4
    1 0 1 0
    0 0 1 0
    1 1 1 1
    0 1 0 1
    4
    1 0 1 0
    0 1 1 0
    1 1 1 1
    0 1 0 1
    0

    样例输出
    OK
    Change bit (2,3)
    Corrupt

    思路
    检查就是正常检查。
    改变:如果坏掉的行和坏掉的列只有1个(必须同时为1),就证明可以change,并且change的位置就是行与列的交汇处

    #include<iostream>
    #include<vector>
    using namespace std;
    const int maxn=110;
    int G[maxn][maxn];
    int n;
    bool check(){   //检查是否为布尔矩阵
    	int sumh=0,sums=0;//每一行h每一列l的和
    	for(int i=0;i<n;i++){
    		int sumh=0,suml=0;
    		for(int j=0;j<n;j++){
    			sumh=sumh+G[i][j];
    			suml=suml+G[j][i];
    		}
    		if(sumh%2!=0||suml%2!=0) return false;
    	}
    	return true;
    } 
    
    vector<int> w;  //用来存储坏掉的行
    vector<int> v;  //用来存储坏掉的列
    bool change(){   //修改,如果返回false,说明改一处不能成为布尔矩阵
    	int sumh=0,sums=0;
    	for(int i=0;i<n;i++){
    		int sumh=0,suml=0;
    		for(int j=0;j<n;j++){
    			sumh=sumh+G[i][j];
    			suml=suml+G[j][i];
    		}
    		if(sumh%2!=0) w.push_back(i);
    		if(suml%2!=0) v.push_back(i);
    	}
    	if(w.size()==v.size()==1) return true;//证明坏掉的行和列仅一组
    	else return false;
    }
    int main(){
    	while(cin>>n){
    		if(n==0) break;
    	    for(int i=0;i<n;i++){
    		    for(int j=0;j<n;j++){
    			cin>>G[i][j];
    	     	}
         	}
         	if(check()) cout<<"OK"<<endl;
        	else if(change()) cout<<"Change bit ("<<w[0]+1<<","<<v[0]+1<<")"<<endl;  //+1因为我定义的矩阵从0开始
    	    else cout<<"Corrupt"<<endl;
     	}
     	return 0;
    
    }
    
    
    
    展开全文
  • 布尔矩阵的逆矩阵

    2015-11-03 14:45:58
    对于初学布尔矩阵的,学习求其逆运算的基础。
  • 本文用布尔矩阵表示三种类型的现有覆盖近似算子,然后将它们用于布尔矩阵分解。 首先,我们定义了覆盖的两个特征矩阵。 通过这些布尔特征矩阵,可以简洁,等效地表示三种现有的覆盖近似算子。 其次,将这些算子表示...
  • 满意答案iigmscno2014.06.24采纳率:42%等级:8已帮助:463人布尔矩阵相乘: 第一个矩阵中第一行的各元素与第二个矩阵中第一列的各元素对应之积的和,作为乘积矩阵的第一行第一列元素; 第一个矩阵中第一行的各元素...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    iigmscno

    2014.06.24

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:42%    等级:8

    已帮助:463人

    布尔矩阵相乘:

    第一个矩阵中第一行的各元素与第二个矩阵中第一列的各元素对应之积的和,作为乘积矩阵的第一行第一列元素;

    第一个矩阵中第一行的各元素与第二个矩阵中第二列的各元素对应之积的和,作为乘积矩阵的第一行第二列元素;

    第一个矩阵中第一行的各元素与第二个矩阵中第三列的各元素对应之积的和,作为乘积矩阵的第一行第三列元素;

    第一个矩阵中第二行的各元素与第二个矩阵中第一列的各元素对应之积的和,作为乘积矩阵的第二行第一列元素;

    第一个矩阵中第二行的各元素与第二个矩阵中第二列的各元素对应之积的和,作为乘积矩阵的第二行第二列元素;

    第一个矩阵中第二行的各元素与第二个矩阵中第三列的各元素对应之积的和,作为乘积矩阵的第二行第三列元素;

    第一个矩阵中第三行的各元素与第二个矩阵中第一列的各元素对应之积的和,作为乘积矩阵的第三行第一列元素;

    第一个矩阵中第三行的各元素与第二个矩阵中第二列的各元素对应之积的和,作为乘积矩阵的第三行第二列元素;

    第一个矩阵中第三行的各元素与第二个矩阵中第三列的各元素对应之积的和,作为乘积矩阵的第三行第三列元素;

    30分享举报

    展开全文
  • 讨论了10 个区间数排序的可能度公式, 分析了它们各自的特点.... 最后, 利用可能度矩阵构造一个布尔矩阵, 基于布尔矩阵给出一个改进的区间 数排序算法, 并从理论上证明了所提出的排序方法的科学性.</p>
  • 在正负关联规则中引入布尔矩阵的概念,在双重相关性挖掘算法的基础上提出一种Deep Web复杂模式匹配算法。将查询接口模式中的属性项转化成布尔矩阵,通过对矩阵进行正关联规则运算挖掘组属性,对矩阵进行负关联规则运算...
  • matlab布尔矩阵产生代码
  • 浓缩布尔矩阵进一步节省了矩阵的存储空间并提高了矩阵的生成效率,从而可以快速计算得到约简。在此基础上,结合变精度的思想把部分不一致对象合理地加入到一致对象的集合中,瓜、而增加了一致数据的信息量,并通过...
  • matlab布尔矩阵产生代码
  • XYNUOJ 布尔矩阵

    2018-01-31 19:22:09
    1122: 布尔矩阵 时间限制: 1 Sec 内存限制: 32 MB [提交][状态][讨论版] 题目描述 一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这4×4的矩阵就具有奇偶性:  1 0 1 0  0 0 0...

    1122: 布尔矩阵

    时间限制: 1 Sec   内存限制: 32 MB
    [ 提交][ 状态][ 讨论版]

    题目描述

    一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这4×4的矩阵就具有奇偶性: 
    1 0 1 0 
    0 0 0 0 
    1 1 1 1 
    0 1 0 1 
    它所有行的和是2,0,4,2。它所有列的和是2,2,2,2。
    现请你编写一个程序,读入这个矩阵并检查它是否具有奇偶性。如果没有,你的程序应当再检查一下它是否可以通过修改一位(把0修改为1,把1修改为0)来使它具有奇偶性。如果不可能,这个矩阵就被认为是破坏了。

    输入

    输入包含多组测试数据。每组测试数据的第一行是一个整数n(1<=n<=100),代表该矩阵的大小。在接下来的行中,每行有n个整数。矩阵是由0或1构成的。n=0时,输入结束。

    输出

    对于每组输入,如果这个矩阵具有奇偶性,则输出“OK”。如果奇偶性能通过只修改该矩阵中的一位来建立,那么输出“Change bit (i,j)”,这里i和j是被修改的这位的行号和列号。否则,输出“Corrupt”。

    样例输入

    4
    1 0 1 0
    0 0 0 0
    1 1 1 1
    0 1 0 1
    4
    1 0 1 0
    0 0 1 0
    1 1 1 1
    0 1 0 1
    4
    1 0 1 0
    0 1 1 0
    1 1 1 1
    0 1 0 1
    0

    样例输出

    OK
    Change bit (2,3)
    Corrupt
    #include<stdio.h>
    int main(){
        int n,a[101][101];
        while (~scanf("%d",&n)&&n){
            int row[101]={0},column[101]={0};
            for (int i=1;i<=n;i++)
              for (int j=1;j<=n;j++){
                    scanf("%d",&a[i][j]);
                     
                }
                 
                for (int i=1;i<=n;i++)
                for (int j=1;j<=n;j++){
                row[i]+=a[i][j];            //行数为1的个数 
                column[i]+=a[j][i];         //列数为1的个数 
              }   
    		  
    		      
           int x1=0,x2=0,y1=0,y2=0;
            for (int i=1;i<=n;i++)
              if (row[i]%2!=0){
                    x1++;
                    x2=i;          //找出行不为奇数的 
                }
            for (int j=1;j<=n;j++)
              if (column[j]%2!=0){
                    y1++;
                    y2=j;     //找出列不为奇数的 
                }
            if (x1+y1==0) printf("OK\n");
            else if (x1==1 && y1==1) printf("Change bit (%d,%d)\n",x2,y2);  //若行和列都只有一个不是偶数的,则可以修改 
            else printf("Corrupt\n");
        }
    }


    展开全文
  • 布尔矩阵—C语言

    千次阅读 2017-07-20 16:17:43
    1122: 布尔矩阵 时间限制: 1 Sec 内存限制: 32 MB 提交: 25 解决: 16 [提交][状态][讨论版] 题目描述 一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这4×4的矩阵就具有奇偶性:  1 ...

    1122: 布尔矩阵

    时间限制: 1 Sec   内存限制: 32 MB
    提交: 25   解决: 16
    [ 提交][ 状态][ 讨论版]

    题目描述

    一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这4×4的矩阵就具有奇偶性: 
    1 0 1 0 
    0 0 0 0 
    1 1 1 1 
    0 1 0 1 
    它所有行的和是2,0,4,2。它所有列的和是2,2,2,2。
    现请你编写一个程序,读入这个矩阵并检查它是否具有奇偶性。如果没有,你的程序应当再检查一下它是否可以通过修改一位(把0修改为1,把1修改为0)来使它具有奇偶性。如果不可能,这个矩阵就被认为是破坏了。

    输入

    输入包含多组测试数据。每组测试数据的第一行是一个整数n(1<=n<=100),代表该矩阵的大小。在接下来的行中,每行有n个整数。矩阵是由0或1构成的。n=0时,输入结束。

    输出

    对于每组输入,如果这个矩阵具有奇偶性,则输出“OK”。如果奇偶性能通过只修改该矩阵中的一位来建立,那么输出“Change bit (i,j)”,这里i和j是被修改的这位的行号和列号。否则,输出“Corrupt”。

    样例输入


    1 0 1 0 
    0 0 0 0 
    1 1 1 1 
    0 1 0 1 

    1 0 1 0 
    0 0 1 0 
    1 1 1 1 
    0 1 0 1 

    1 0 1 0 
    0 1 1 0 
    1 1 1 1 
    0 1 0 1 

    样例输出

    OK 
    Change bit (2,3) 
    Corrupt 

    0

    题目分析:

    输入矩阵后,依次计算出每行,每列的总和,判断是否为偶数。不为偶数的行和列,以及不为偶数的行列的个数记录下来。

    1. 如果全部为偶数,则为布尔矩阵,直接输出OK。

    2. 如果不为偶数的行列的个数都为1,那么可以通过只修改一位,使其成为布尔矩阵,行和列刚好确定的一个坐标,即是该修改的。

    3. 如果个数不为1,则不能,输出Corrupt.

    代码如下:

    #include<stdio.h>
    int main(){
        int n,a[101][101];
        while (~scanf("%d",&n) && n){
            int row[101]={0},column[101]={0};
            for (int i=1;i<=n;i++)
              for (int j=1;j<=n;j++){
                    scanf("%d",&a[i][j]);
                    row[i]+=a[i][j];
                    column[j]+=a[i][j];
                }
            int x1=0,x2=0,y1=0,y2=0;
            for (int i=1;i<=n;i++)
              if (row[i]%2!=0){
                    x1++;//记录行和不为偶数的个数
                                    x2=i;//不为偶数的行数
                }
            for (int j=1;j<=n;j++)
              if (column[j]%2!=0){
                    y1++;//记录列和不为偶数的个数
                    y2=j;//不为偶数的列数
                }
            if (x1+y1==0) printf("OK\n");
            else if (x1==1 && y1==1) printf("Change bit (%d,%d)\n",x2,y2);
            else printf("Corrupt\n");
        }
    }

    执行图:



    展开全文
  • 布尔矩阵及其在覆盖约简中的应用
  • 可达矩阵是判别一个有向图是否为强连通图或弱连通图的有效工具。利用布尔矩阵的运算性质给出了计算有向图可达矩阵的方法。该方法汁算简便。
  • 什么是布尔矩阵

    2021-06-29 22:11:38
    布尔矩阵(Boole)是元素只取0或1的矩阵,故又称0-1矩阵。
  • 算符文法的算符优先表可以用布尔矩阵理论求解,传统的算法在文法的全部符号集合上定义各类关系,导致布尔矩阵规模较大。对算法进行了改进,将文法符号划分为终结符集合与非终结符集合2个子集,在子集之间定义关系,...
  • 1122 布尔矩阵

    2018-04-09 13:04:43
    题目描述一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这4×4的矩阵就具有奇偶性: 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 它所有行的和是2,0,4,2。它所有列的和是2,2,2,2。现请你编写...
  • 将散列表与布尔矩阵相结合,提出了一种基于散列布尔矩阵的Eclat改进算法,通过提高求交集的速度来加快整个算法生成频集的过程。实验结果表明,改进的Eclat算法在计算性能和时间效率上均优于传统算法。
  • 在正负关联规则中引入布尔矩阵的概念,在双重相关性挖掘算法的基础上提出一种Deep Web 复杂模式匹配算法。将查询接口模式中的属性项转化成布尔矩阵,通过对矩阵进行正关联规则运算挖掘组属性,对矩阵进行负关联规则...
  • 优势关系下基于浓缩布尔矩阵的属性约简方法
  • 基于布尔矩阵和关联度量的直觉模糊聚类算法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,969
精华内容 9,587
关键字:

布尔矩阵