我是靠谱客的博主 英勇龙猫,这篇文章主要介绍MATLAB_排列组合_组合生成程序,现在分享给大家,希望可以做个参考。

   已知有m个箱子,箱子里分别有n_1,n_2,...,n_m个球,所有球都不同。从每个箱子里都取出一个球,生成出所有的组合。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
%% 函数定义 % 设有m个盒子,每个盒子里各有n1,n2,...,nm个不同的球。 % 从每个盒子中各取一个球,共有几种组合,列出所有组合。 function COM = Combination_MN(num_ball) %% 参数设置 % num_ball 每个盒子中球的个数,[n1,n2,...,nm]; num_box = length(num_ball); % 盒子个数 %% 函数体 NumCom = 1; % 共有多少种组合 for i_box = 1:num_box NumCom = NumCom*num_ball(i_box); end COM = zeros(NumCom,num_box); % 初始化组合向量 i_com = 1; % 当前组合在COM中的地址 com = ones(1,num_box); % 当前组合 COM(i_com,:) = com; % 所有组合 while ~isequal(com,num_ball) com(end) = com(end) + 1; for i_box = num_box:-1:2 if com(i_box)>num_ball(i_box) com(i_box) = 1; com(i_box-1) = com(i_box-1) + 1; end end i_com = i_com + 1; COM(i_com,:) = com; end

 

最后

以上就是英勇龙猫最近收集整理的关于MATLAB_排列组合_组合生成程序的全部内容,更多相关MATLAB_排列组合_组合生成程序内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(95)

评论列表共有 0 条评论

立即
投稿
返回
顶部