matlab 排列组合问题 ,在线等~
例如矩阵A=301123043631665637322我要求出A的所有排列组合,组合方式如下:30112303011236301123230112603011266。。。...
例如
矩阵A =
3 0 1 1 2 3 0
4 3 6 3 1 6 6
5 6 3 7 3 2 2
我要求出A的所有排列组合,组合方式如下:
3 0 1 1 2 3 0
3 0 1 1 2 3 6
3 0 1 1 2 3 2
3 0 1 1 2 6 0
3 0 1 1 2 6 6
。。。。
总共是3*3*3*3*3*3*3种组合。应该明白什么意思了吧?先谢谢大家帮忙~ 展开
矩阵A =
3 0 1 1 2 3 0
4 3 6 3 1 6 6
5 6 3 7 3 2 2
我要求出A的所有排列组合,组合方式如下:
3 0 1 1 2 3 0
3 0 1 1 2 3 6
3 0 1 1 2 3 2
3 0 1 1 2 6 0
3 0 1 1 2 6 6
。。。。
总共是3*3*3*3*3*3*3种组合。应该明白什么意思了吧?先谢谢大家帮忙~ 展开
展开全部
依照下面的方法,你可以实验一下。
matlab做排列组合:比如要ABCD的全排列,可以用perms函数
perms(['ABCD'])运行结果
DCBA
DCAB
DBCA
DBAC
DABC
DACB
CDBA
CDAB
CBDA
CBAD
CABD
CADB
BCDA
BCAD
BDCA
BDAC
BADC
BACD
ACBD
ACDB
ABCD
ABDC
ADBC
ADCB
以下是几个常用的排列、组合与阶乘等函数。
1、combntns(x,m)
列举出从n个元素中取出m个元素的组合。其中,x是含有n个元素的向量。
2、perms(x)
给出向量x的所有排列。
3、nchoosek(n,m)
从n各元素中取m个元素的所有组合数。 nchoosek(x,m)从向量x中取m个元素的组合
4、factorial(n)
求n的阶乘。
5、prod(n:m) %求排列数:m*(m-1)*(m-2)*…*(n+1)*n prod(1:2:2n-1)或prod(2:2:2n) %
求(2n-1)!!或(2n)!!
6、cumprod(n:m)
输出一个向量[n n*(n+1) n(n+1)(n+2) … n(n+1)(n+2)…(m-1)m]
7、gamma(n)
求n!
8、v='n!';
vpa(v)
更详细资料如下:
nchoosek
Binomial coefficient or all combinations
Syntax:
C = nchoosek(n,k)
函数描述: 从 n 个元素中 一次选 k 个元素的所有组合数 C(注意,C是一个数值)。
C = n!/((n–k)! k!);
C = nchoosek(v,k)
函数描述: 从 向量 v 中 一次选其中 k 个元素 的所有组合 C (注意:C是一个矩阵,列
数 为 k )
matlab做排列组合:比如要ABCD的全排列,可以用perms函数
perms(['ABCD'])运行结果
DCBA
DCAB
DBCA
DBAC
DABC
DACB
CDBA
CDAB
CBDA
CBAD
CABD
CADB
BCDA
BCAD
BDCA
BDAC
BADC
BACD
ACBD
ACDB
ABCD
ABDC
ADBC
ADCB
以下是几个常用的排列、组合与阶乘等函数。
1、combntns(x,m)
列举出从n个元素中取出m个元素的组合。其中,x是含有n个元素的向量。
2、perms(x)
给出向量x的所有排列。
3、nchoosek(n,m)
从n各元素中取m个元素的所有组合数。 nchoosek(x,m)从向量x中取m个元素的组合
4、factorial(n)
求n的阶乘。
5、prod(n:m) %求排列数:m*(m-1)*(m-2)*…*(n+1)*n prod(1:2:2n-1)或prod(2:2:2n) %
求(2n-1)!!或(2n)!!
6、cumprod(n:m)
输出一个向量[n n*(n+1) n(n+1)(n+2) … n(n+1)(n+2)…(m-1)m]
7、gamma(n)
求n!
8、v='n!';
vpa(v)
更详细资料如下:
nchoosek
Binomial coefficient or all combinations
Syntax:
C = nchoosek(n,k)
函数描述: 从 n 个元素中 一次选 k 个元素的所有组合数 C(注意,C是一个数值)。
C = n!/((n–k)! k!);
C = nchoosek(v,k)
函数描述: 从 向量 v 中 一次选其中 k 个元素 的所有组合 C (注意:C是一个矩阵,列
数 为 k )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是最容易理解的方法了,虽然复杂点
A =[3 0 1 1 2 3 0;
4 3 6 3 1 6 6;
5 6 3 7 3 2 2];
B=[]
for i1=1:3
for i2=1:3
for i3=1:3
for i4=1:3
for i5=1:3
for i6=1:3
for i7=1:3
B=[B;[A(i1,1) A(i2,2) A(i3,3) A(i4,4) A(i5,5) A(i6,6) A(i7,7)]];
end
end
end
end
end
end
end
A =[3 0 1 1 2 3 0;
4 3 6 3 1 6 6;
5 6 3 7 3 2 2];
B=[]
for i1=1:3
for i2=1:3
for i3=1:3
for i4=1:3
for i5=1:3
for i6=1:3
for i7=1:3
B=[B;[A(i1,1) A(i2,2) A(i3,3) A(i4,4) A(i5,5) A(i6,6) A(i7,7)]];
end
end
end
end
end
end
end
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询