线性涂色问题的0-1行向量解法

甲、乙两人对一根3米长的木棍涂色,首先甲从木棍端点开始涂黑5厘米,间隔5厘米不涂色,接着再涂黑5厘米,这样交替做到底。然后,乙从木棍同一端点开始留出6厘米不涂色,接着涂黑6厘米,再间隔6厘米不涂色,交替做到底。最后,木棍上没有被涂黑部分的长度总和为多少厘米?


答案:75cm

解法:以1cm为单位离散化涂色问题,用0表示未涂黑,用1表示已涂黑,那么每人涂色结果可以看成一个1x300的0-1行向量A和B。将A和B相加得到新的行向量,其中元素值等于0的表示还未涂黑的部分,计算这些0得个数就是结果。

Matlab程序:

a=[ones(1,5) zeros(1,5)];
A=repmat(a,1,30);
d=[zeros(1,6) ones(1,6)];
B=repmat(d,1,25);
T=A+B;
g=find(T<1);
length(g)


你可能感兴趣的:(matlab)