|
作为一个资深算法工程师,谈了一家公司被一个面试的工程师要求用matlab写一个程序,具体要求如下:生成一个6*6的矩阵,每个元素随机从1,2,3三个数字中取,要求行或列不能存在连续三个相同的数字。经过10分钟得到的程序如下:
- close all
- clear
- clc
- while 1
- matrix = randi([1,3],6,6)
- flag = 0;
- for m = 1:4
- for n = 1:6
- pro_vec = matrix(m:m+2,n);
- if all(pro_vec == pro_vec(1))
- flag = 1;
- break;
- end
- end
- if flag == 1
- break;
- end
- end
- if flag == 1
- continue;
- end
- for m = 1:6
- for n = 1:4
- pro_vec = matrix(m,n:n+2);
- if all(pro_vec == pro_vec(1))
- flag = 1;
- break;
- end
- end
- if flag == 1
- break
- end
- end
- if flag == 0
- break;
- end
-
- end
- matrix
复制代码 运行得到满足条件的矩阵如下:
- matrix =
- 3 1 1 3 1 1
- 1 1 2 2 3 1
- 3 2 3 1 2 3
- 2 3 2 2 1 3
- 3 1 2 2 3 1
- 1 1 3 3 1 2
复制代码
|
|