有序排列
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有序排列相关的知识,希望对你有一定的参考价值。
引言
在学习数学的过程中,我们有时会遇到排列组合的问题。题目中给出几个元素,求出这几个元素一共可以有多少种不同的组合。而现在我们运用python中的for循环可以快速得出结果,并且一一输出这些组合。
问题
有1,2,3,4四个数字求四个数字能生成多少个互不相同且无重复数字的三位数(不能含有122,133类似),同时输出这些三位数字。
方法
首先将这几个数字作为一个字符串,再用for循环遍历这个字符串,要求三位数字就嵌套三层for循环(注意缩进),再使用if语句判断数字是否重复。最后设置一个变量作为计数器,统计一共有多少种组合。
实验结果与讨论
通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。
代码清单 1
m='1234' n=0 for i in m: for j in m: for q in m: if (i!=j) and (j!=q) and (q!=i): n += 1 print(i,j,q) print('有',n,'个') |
结语
针对本次的有序排列问题,提出for循环嵌套的方法,通过实验,证明该方法是有效的。由于嵌套了三层循环,运行时的速度会有所下降。而且一旦所求组合的元素过多,需要嵌套更多的循环。未来可以探寻其他的方法来解决此类排列问题。
以上是关于有序排列的主要内容,如果未能解决你的问题,请参考以下文章