% 排列运算:从 n 个元素中取出 r 个的排列

function [pct,P] = my_P(n,r)

% pct: 排列总数

% P: 排列列表

pct = 0;

P = [];

if nargout < 2,return; end;

if r > n, return; end;

pct = prod((n-r+1):n); % prod(1:n)/prod(1:(n-r));

P = zeros(n^r,r); % 结果预设

% 从 r 个 1:n 中各取一个元素生成子集

zz = (1:n)';

for k = r:-1:1 % 从后往前取参数逐列生成结果列

j = n^(r-k); % 第 k 列第 k 个参数单个元素单次循环次数

z = repmat(zz,1,j)'; % 重复拷贝 j 次

z = z(:); % 生成单列矩阵

tm = n^(k-1); % 第 k 列第 k 个参数全循环次数

z = repmat(z,1,tm); % 重复 tm 次

P(:,k) = z(:); % 第 k 列生成并加入到结果中

end;

if r == 1, return; end;

% 删除重复提取的元素组

a = P'; % 转置 P

a = diff(sort(a))'; % 按列排序后按行差分,相同元素差为 0

if r > 2

L = prod(a'); % 转置 a 后按列累乘,有 0 元素结果为 0

else

L = a';

end;

L(L~=0) = 1; % 非 0 元素置为 1,便于后面转换为逻辑值

P = P(logical(L'),:); % 取出无重复元素的行

% 应用

>> [pct,P] = my_P(4,3)

pct =

24

P =

1 2 3

1 2 4

1 3 2

1 3 4

1 4 2

1 4 3

2 1 3

2 1 4

2 3 1

2 3 4

2 4 1

2 4 3

3 1 2

3 1 4

3 2 1

3 2 4

3 4 1

3 4 2

4 1 2

4 1 3

4 2 1

4 2 3

4 3 1

4 3 2

取消

评论

matlab怎么重复一个数字,有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?用matlab编程怎么编...相关推荐

  1. 数字1、2、3、4能组成多少个互不相同且无重复数字的三位数,并将其输出。

    题目 数字1.2.3.4能组成多少个互不相同且无重复数字的三位数,并将其输出. 解析 三位数字,每一位都可以用1234,但不能重复.所以可以使用三重循环i,j,k,分别从1至4,此时会存在三个数字相同 ...

  2. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数

    有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数? 步骤:先定一个函数,把数据储存在一个列表,然后传入函数中就行了 代码 def threeDN(a):'''组成多少个互不相同且无重复 ...

  3. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

    题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数? 分析:先各定义百位.十位.个位都在1-4之间,三个数重复组合,然后筛选出符合互不相同且无重复的三位数并输出 实现代码: #in ...

  4. 输出用1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数(C语言)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目: [实验案例3:嵌套循环结构的使用] 输出用1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数. [实验指导] 分 ...

  5. C语言习题练习:有1234四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少

    目录 题目:有1234四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少 题目:有1234四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少 //已知条件: //1.三位数 //2 ...

  6. 有1、2、3、4、5数字,能组成多少个互不相同且无重复数字的四位数,都是多少?

    分析:1.要组成四位数,即需要四次循环才能得到四位数. for(i=1;i<=5;1++)for(j=1;j<=5;j++)for(k=1;k<=5;k++)for(x=1;x< ...

  7. 有1,2,3,4四个数字,能组成多少个互不相同且无重复数字的三位数 都是多少

    有1,2,3,4四个数字,能组成多少个互不相同且无重复数字的三位数 都是多少 /*** 有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数 都是多少* * @author wql* * ...

  8. Python 案例001 (有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数)...

    题目内容来自网络 ,加入了个人理解的过程 ,和点评 #!/usr/bin/python # -*- coding: UTF-8 -*-#Author : Wumi#题目:有四个数字:1.2.3.4,能 ...

  9. python组成不重复的三位数是多少_超星Python 练习实例1-组成多少个互不相同且无重复的三位数字...

    数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 程序源代码: #!/u ...

最新文章

  1. EM算法(Expectation Maximization)期望最大化算法
  2. 关于英伟达数字人文章的致歉和说明
  3. view.performClick()触发点击事件
  4. movielens推荐系统_案例|推荐系统的评估指标
  5. 浅析python类继承(一)
  6. 广域存储和计算协同面临哪些挑战,具有哪些优势?
  7. Windows中导出电脑文件名或者文件结构的方法
  8. python并发运行
  9. 知识图谱在小米的应用与探索
  10. 远程服务器键盘变成快捷键?
  11. 献给即将来临的母亲节父亲节!!
  12. python三国演义人物 统计分析_《python三国演义》人物统计(一),Python,出场,上...
  13. 适合运动时戴的蓝牙耳机有哪些、非常优秀的运动型蓝牙耳机推荐
  14. 关闭计算机界面,电脑关机卡在关机界面怎么办?详细原因分析及解决方法来啦!...
  15. 揭秘苹果应用审核团队(史上最全版)
  16. 私有云服务器和公有云服务器的区别你真的知道吗?
  17. 折线分割平面问题总结
  18. 关于加强网络舆情监测的几点建议,TOOM强化舆情监控有方法
  19. QtCreator影子构建与默认编译目录
  20. 媒体查询ipad,pc端

热门文章

  1. 腾讯云服务器配置JDK和Tomcat环境
  2. 如果让我重新设计一款Android App
  3. KBMMW 4.80.00 发布
  4. 多线程同步之 WaitableTimer (等待定时器对象)[续三]
  5. Atlas Samples Suse Linux 10.1
  6. java Runtime.getRuntime().exec 获取反弹shell
  7. linux docker 权限划分介绍 capabilities
  8. linux 反弹shell(二)反弹shell的本质
  9. wifi密码破解与攻击
  10. CentOS添加常用yum源