有序排列

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循环嵌套的方法,通过实验,证明该方法是有效的。由于嵌套了三层循环,运行时的速度会有所下降。而且一旦所求组合的元素过多,需要嵌套更多的循环。未来可以探寻其他的方法来解决此类排列问题。

以上是关于有序排列的主要内容,如果未能解决你的问题,请参考以下文章

CoreData中一对多关系的排列/有序复选框

上少下多的有序排列弹性布局

有序排列

有序排列

什么叫做数组中的无序和有序排列?

Python 有序排列permutations,无序组合combinations,阶乘factorial函数