52matlab技术网站,matlab教程,matlab安装教程,matlab下载

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12160|回复: 0

随机一个具有特殊要求的6*6的矩阵

[复制链接]

123

主题

207

帖子

2992

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2992
发表于 2022-9-1 13:00:04 | 显示全部楼层 |阅读模式
作为一个资深算法工程师,谈了一家公司被一个面试的工程师要求用matlab写一个程序,具体要求如下:生成一个6*6的矩阵,每个元素随机从1,2,3三个数字中取,要求行或列不能存在连续三个相同的数字。经过10分钟得到的程序如下:
  1. close all
  2. clear
  3. clc


  4. while 1
  5.     matrix = randi([1,3],6,6)
  6.     flag = 0;
  7.     for m = 1:4
  8.         for n = 1:6
  9.             pro_vec = matrix(m:m+2,n);
  10.             if all(pro_vec == pro_vec(1))
  11.                 flag = 1;
  12.                 break;
  13.             end
  14.         end
  15.         if flag == 1
  16.             break;
  17.         end
  18.     end

  19.     if flag == 1
  20.         continue;
  21.     end

  22.     for m = 1:6
  23.         for n = 1:4
  24.             pro_vec = matrix(m,n:n+2);
  25.             if all(pro_vec == pro_vec(1))
  26.                 flag = 1;
  27.                 break;
  28.             end
  29.         end
  30.         if flag == 1
  31.             break
  32.         end
  33.     end

  34.     if flag == 0
  35.         break;
  36.     end
  37.    
  38. end

  39. matrix
复制代码
运行得到满足条件的矩阵如下:

  1. matrix =

  2.      3     1     1     3     1     1
  3.      1     1     2     2     3     1
  4.      3     2     3     1     2     3
  5.      2     3     2     2     1     3
  6.      3     1     2     2     3     1
  7.      1     1     3     3     1     2
复制代码





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|52matlab技术网站 ( 粤ICP备14005920号-5 )

GMT+8, 2024-3-28 22:12 , Processed in 0.077257 second(s), 20 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表