置换-重复置换
使用两个输入变量V和N,M=permn(V,N)返回所有
从向量V中取N个元素的置换,带有重复。
V可以是任何类型的数组(数字、单元格等),M可以是
如果V为空,或者N为0,则M为空。米有
尺寸单位(V)。^N乘以N。
当只需要这些置换的子集时,可以调用permn
对于3个输入变量:M=permn(V,N,K)只返回K-th
排列。输出与M = permn(V,N)相同;M = M (K,:)
但它避免了内存太多时可能出现的内存问题
组合。这在你只需要几个的时候特别有用
在给定时间的排列。如果V或K为空,或N为零,则M将为空
是空的。M的大小是(K) × n。
[M, I] = permn(…)也返回一个索引矩阵I,使M = V(I)。
示例:
M=permn([1 2 3],2)%n返回9乘2矩阵:
1 1
1 2
1 3
2 1
2 - 2
2 3
3 1
3 2
3 3
M=permn([99 7],4)%n返回16×4矩阵:
99 99 99 99
99 99 99 7
99 99 7 99
99 99 7 7
...
7 7 7 99
7 7 7 7
M=permn({'hello!'1:3},2)%
“你好!”喂
“你好!”[1x3双精度]
[1x3双精度]“你好!”
[1x3双精度][1x3双精度]
V=11:15,N=3,K=[21242199]
M=permn(V,N,K)%返回四乘三矩阵:
% 11 11 12
% 15 15 14
% 11 15 11
% 14 15 14
%第2、第124、第21和第99排列是什么
%使用两个输入检查permn
M2=permn(V,N);等质量(M2(K,:),M)
%请注意,M2是一个125×3的矩阵
%permn可用于生成二进制表,如中所示
B=permn([01],5)
NB基体尺寸以(n^n)*n的速率呈指数增长。
另请参见烫发,nchoosek
文件交换上的allcomb、permpos
引用为
乔斯(10584)(2021年)。珀姆(//www.tianjin-qmedu.com/matlabcentral/fileexchange/7147-permn),MATLAB中央文件交换。恢复.