kaiwuzhu
2011/9/11 6:33:34
题目是这样的,已知a+b+c=43,b+d=31,a-b=3。求a+c+d等于多少?最好有解题过程。
目测是12,最简单的是系数增广矩阵解线性方程组,解空间是一维的acd的线性系数比相加应该为零。
编程序找答案的话按a-b-d-c顺序给变量赋值就行了,有大于0那个条件过程可以简化很多
#include <stdio.h>
void main()
{
int a,b,c,d,e;
for(a=4;a<34;a++)
for(b=1;b<31;b++)
for(c=1;c<38;c++)
for(d=1;d<31;d++)
if(a+b+c==43&&b+d==31&&a-b==3)
printf("%d\n",a+c+d);
}
设
a+c+d=x1*(a+b+c)+x2*(b+d)+x3(a-b)
貌似很多童鞋都没有学代数。。详细解释下吧。。解增广矩阵得特解(34,31,-22,0),解空间一维,所以基础解系就是它的一个特征向量(1,1,-2,1),简单的说解可以表示成a=34+x,b=31+x,c=-22-2x,d=x,所以a+c+d=12 .
那个都大于等于0的条件不知道是怎么回事 - -可能是楼主想用程序语言实现所以加了这个条件= 但貌似有了这个条件反而没有实数解了