qq_51073158 2021-09-13 10:37 采纳率: 0%
浏览 84

用MATLAB,把10个数随机分成四组

用MATLAB,把10个数随机分成四组,要求就是不得有空集,就是每组最少要有1个元素,而且数的顺序不能变,只能按顺序选择

  • 写回答

3条回答 默认 最新

  • joel_1993 2021-09-13 11:27
    关注

    你好,同学,一行代码就行了:

    groups = mat2cell(1:10,1,diff([0,sort(randperm(9,3)),10]));
    celldisp(groups)% 这行是显示结果
    

    下面是一些结果(随机的运行几次):
    结果1

    groups{1} =
         1     2
    groups{2} =
         3
    groups{3} =
         4
    groups{4} =
         5     6     7     8     9    10
    

    结果2

    groups{1} =
         1     2
    groups{2} =
         3     4     5     6     7
    groups{3} =
         8     9
    groups{4} =
        10
    

    结果3

    groups{1} =
         1     2     3     4
    groups{2} =
         5     6
    groups{3} =
         7     8     9
    groups{4} =
        10
    

    你要获取某一个组的数据,只要通过这样写就行
    s = groups{i}% i是第几组的序号即1,2,3,4,s就是你要的那个组的数字!!!

    ——————————————————————————————————————————————
    思维扩展:
    m个数,随机分成n组,要求就是不得有空集,就是每组最少要有1个元素,而且数的顺序不能变。

    a = [5,4,3,1,4,5,6,7,1,9,2,1,7,2,3,1]; % a 的大小为m=16,这里就是m个数字
    m = length(a); % a的元素个数
    n = 4; % 自己设,反正要小于等于m,我这里设置4个组
    groups = mat2cell(a,1,diff([0,sort(randperm(m-1,n-1)),m]));
    celldisp(groups)%显示
    

    给出一个随机结果

    groups{1} =
         5     4     3     1
    groups{2} =
         4     5     6     7
    groups{3} =
         1     9     2
    groups{4} =
         1     7     2     3     1
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月13日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值