求助解决matlab排列组合问题

2021-01-02 20:48:14 字数 4471 阅读 6954

1楼:匿名用户

n=1:210;

k=20;

%数组n中挑k个的组合

n=length(n);

a=zeros(1,k);

i=1;j=1;

while 1

if j<=n

a(i)=j;

if i==k

disp(n(a));%这里只作显示,需要时可以用其它语句替换,比如保存到某个文件

else

i=i+1;

endj=j+1;

else

i=i-1;

if i==0

break;

endj=a(i)+1;

endend

这个程序只要你有足够的时间就可以把所有的组合全部都列出来,但是因为个数太多,一楼已经分析过,要看到全部显示完毕你这辈子是没指望了,厌烦了就ctrl+c终止程序吧。

2楼:小mm爱流氓

10的100次方,阿基米德说这个数字比全宇宙的沙子还多。你怎么不算这个数字呢

3楼:不畏严寒

运行不了,要死机了。

matlab中排列组合问题,新手救急!!!谢谢!!!

4楼:匿名用户

双击matlab软件的快捷键,进入matlab的工作界面

matlab:排列组合问题

2将命令行窗口取消停靠(这样便于输入),按ctrl+shift+u取消停靠:

matlab:排列组合问题

end2.排列组合的函数

perms(x):在程序命令框中输入一个向量x,perms(x) 给出向量x的所有排列。

matlab:排列组合问题

***bntns(x,m):在程序中输入一个向量x与需要的元素个数m,***bntns(x,m)给出了从包含n个元素的向量x中选取m个元素的组合。

matlab:排列组合问题

matlab:排列组合问题

3nchoosek(x,m):在程序中输入一个向量x与需要的元素个数m,nchoosek(x,m)给出了从包含n个元素的向量x中选取m个元素的组合。

matlab 排列组合问题 ,**等~

5楼:匿名用户

这是最容易理解的方法了,虽然复杂点

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)]];

endend

endend

endendend

6楼:匿名用户

依照下面的方法,你可以实验一下。

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、***bntns(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 ***binations

syntax:

c = nchoosek(n,k)

函数描述: 从 n 个元素中 一次选 k 个元素的所有组合数 c(注意,c是一个数值)。

c = n!/((n–k)! k!);

c = nchoosek(v,k)

函数描述: 从 向量 v 中 一次选其中 k 个元素 的所有组合 c (注意:c是一个矩阵,列

数 为 k )

matlab里,特定位置的排列组合问题 10

7楼:穆萨去**

这个问题可以这样解决,增加一个meshgrid()函数,即 x=linspace(0,3,6); y=linspace(0,3,6); [x,y]=meshgrid(x,y) z=4*(x-1).^2-(y+1).^2 运行结果

8楼:尉易壤驷茂典

1、数据都是[n1

n2]这种形式?比如n=10,对应的就是[101102]?

2、最后这句话【从这些数列中选取4个然后从选取的4个数列中任选一个列出所有的排列组合】不明确,详细说明一下。

matlab排列组合问题

9楼:匿名用户

1、数据都是[n1 n2]这种形式?比如n=10,对应的就是[101 102]?

2、最后这句话【从这些数列中选取4个然后从选取的4个数列中任选一个列出所有的排列组合】不明确,详细说明一下。

求助matlab软件 组合问题

10楼:匿名用户

out=false(2.^15-1,15);

num=0;

for k=1:15

c=***bntns(1:15,k);

for i=1:size(c,1)

num=num+1;

out(num,c(i,:))=true;%endend

11楼:蒋山

首先数组来初始化为源零array=,然后根据语句static int i=0;

for(char ch='a',ch<='z',ch++)if(ch=='某个字符')

array[i++]=1;

else continue;即可

关于matlab排列组合的问题

12楼:匿名用户

这个问题可以这样解决,增加一个meshgrid()函数,即x=linspace(0,3,6);

内y=linspace(0,3,6);

[x,y]=meshgrid(x,y)

z=4*(x-1).^2-(y+1).^2运行结果容

matlab 排列组合问题

13楼:

|%----如果楼主

想获得个数,在结尾加一句内 size(c,1)就好--------------

a = 1:10;

c = nchoosek(a,3); %10 numbers taken 3 at a time

rowindex = ;

%--------find row index of including 1,2 or 3,4 simultaneously-----------

for i=1:size(c,1)

if size(find(c(i,:)==1|容c(i,:)==2),2)==2|size(find(c(i,:)==3|c(i,:)==4),2)==2

rowindex = [rowindex,i];

endend

%--------delete the correspond rows----------------------------

c(rowindex,:)=;

disp(c);

matlab排列组合问题,MATLAB中排列组合问题,新手救急!!!谢谢!!!

1楼 匿名用户 1 数据都是 n1 n2 这种形式?比如n 10,对应的就是 101 102 ? 2 最后这句话 从这些数列中选取4个然后从选取的4个数列中任选一个列出所有的排列组合 不明确,详细说明一下。 matlab中排列组合问题,新手救急!!!谢谢!!! 2楼 匿名用户 双击matlab软件的...

Matlab如何求数的排列组合,Matlab如何求16个数的排列组合 10

1楼 1 数据都是 n1 n2 这种形式?比如n 10,对应的就是 101 102 ? 2 最后这句话 从这些数列中选取4个然后从选取的4个数列中任选一个列出所有的排列组合 不明确,详细说明一下。 请教 如何用matlab将n个数的所有排列组合 2楼 一个扫描周期一个输出是可以,但你不需要所有的输出...

数学排列组合问题。求第一问解题过程

1楼 匿名用户 分三步 第一步, 先安排数字1的位置, 共有6个位置可选,6种可能。 第二步,安排两个2的位置, 可从剩下的5个位置挑出2个, 共有c 5 2 10种可能。 第三步,安排剩下的三个3, 没得选,只剩下三个位置,只有1种。 根据乘法原理,总数为6 10 1 60种。 2楼 匿名用户 现...