C++挑战:求一个矩阵是否可以归0

happytengfei 2010-10-21 08:43:54
定义一个A[n*m]的矩阵,如果A的所有元素都是0,则称该矩阵为0矩阵。现在要你判断给定任意一个n*m的矩阵,是否可以转换成0矩阵,转换规则如下:只能对矩阵中相邻的两个数进行如下操作:同时加一个数或者同时减去一个数。例如:A[i,j]与A[i+1,j]是相邻元素,A[i,j]和A[i,j+1]也是相邻元素。
...全文
226 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
miracle222 2010-10-28
  • 打赏
  • 举报
回复
假设最后一的值为A;
行改为列
miracle222 2010-10-28
  • 打赏
  • 举报
回复
[a1,a2,a3,a4,a5]

[0,a2-a1,a3,a4,a5]
[0,0,a3+a1-a2,a4,a5]
[0,0,0,a4-a3+a2-a1,a5]
[0,0,0,0,a5-a4+a3-a2+a1]
最终,当这一行的前面化为0的时候,最后一列的值就是a5-a4+a3-a2+a1,即2楼说的a(n-1)-a(n-2)+a(n-3)....
假设最后一行的值为A;
1、如果只有一行,则A=0即可证明,该行列式可以归0.
2、假设有多行,依据上面的演算,得到最后的结果为B,C,。。。,即得到只剩下最后一列的值。由此,我们可以想到,加入可以把最后这一列归0,那么整个行列式也就可以归0了。再把最后一列看成一行,进行上面的演算,得到最后一列的值如果为0,那么整个行列式就可以归0了,否则,不能归0

PS:2楼牛B啊,我也是看到答案慢慢演算了一下才明白的,记得有个笔试题就是这样的,当时每弄出来,要是早有这个话题就好了!
fire_woods 2010-10-28
  • 打赏
  • 举报
回复
原来还可以减啊, 我错了.
fire_woods 2010-10-28
  • 打赏
  • 举报
回复
0 0 2
2 0 0
t_fast 2010-10-27
  • 打赏
  • 举报
回复
能问一句么.?
每个元素?是整型么?
新手不太懂.
bourbaki 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 happytengfei 的回复:]

2楼能否说清楚一些啊。
[/Quote]
4楼很清楚了:)
happytengfei 2010-10-26
  • 打赏
  • 举报
回复
2楼能否说清楚一些啊。
gaara777 2010-10-22
  • 打赏
  • 举报
回复
学习中。。。
xzjxylophone 2010-10-22
  • 打赏
  • 举报
回复
还以为是行列式了。。。。。。
bourbaki 2010-10-22
  • 打赏
  • 举报
回复
没有错。
第一列:1 + (-0) = 1
第二列:0 + (-1) = -1
然后[1 -1]再处理:1 + -(-1) = 2
不能归0
kkk 2010-10-21
  • 打赏
  • 举报
回复
貌似2楼的有个反例:

1 0 | 1
0 1 | 1
-----
1 1
1+(-1)=0但这个矩阵貌似就化不了0
bourbaki 2010-10-21
  • 打赏
  • 举报
回复
很搓的办法,先把每行加起来,加的规则是,-a_{n-1} + a_{n-2} - a_{n-3} + ...,再把加起来后的向量按同样方法加以下,如果最后等于0就可以

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧