今天碰到一个同学问我一个关于考勤的问题。
每个月他需要工作27天,需要在一天工作4个小时、10个小时、8个小时之前做选择天数,然后凑够一个月180个小时的工时。
数学上看,这就是个“三元一次方程组”问题。如图所示:
很显然,这两个方程构成的面在三维空间中相交,形成一条直线。
(可以matlab实现视觉效果,如图)
代码如下:
[x1,x2]=meshgrid(1:0.1:31);
x3=(180-4x1-10x2)/8;
mesh(x1,x2,x3)
hold on
x3=(27-x1-x2);
mesh(x1,x2,x3);
%plot3 和mesh函数都能画三维的,但是画出来的效果有所不同
但是,我们现在的问题是:如何求出满足这两个方程的整数解呢?
这里我使用了一种方式,用meshgrid函数画网格,并通过find函数找到相关的解。
最后输出的结果: