用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)% 这行是显示结果
下面是一些结果(随机的运行几次):
结果1groups{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
解决 1无用
悬赏问题
- ¥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,出参布尔值