这篇文章给大家介绍怎么在python中实现递归全排列,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
排列:从n个元素中任取m个元素,并按照一定的顺序进行排列,称为排列;
全排列:当n==m时,称为全排列;
比如:集合{1,2,3}的全排列为:
{1 2 3}
{1 3 2}
{2 1 3}
{2 3 1}
{3 2 1}
{3 1 2}
<强>递归思想:强>
取出数组中第一个元素放到最后,即一个[1]与[n]交换,然后递归求一个(n - 1)的全排列
1)如果数组只有一个元素n=1, a={1}则全排列就是{1}
2)如果数组有两个元素n=2, a={1,2}则全排列是:
{2, 1}——[1]与[2]交换。交换后求[2]={2}的全排列,归结到1)
{1,2}——[2]与[2]交换。交换后求[2]={1}的全排列,归结到1)
3)如果数组有三个元素n=3, a={1,2,3}则全排列是
{1}{2,3},——[1]与[3]交换,后求[3:1]={2,3}的全排列,归结到2)
{{1,3}, 2)——[2]与[3]交换,后求[3:1]={1,3}的全排列,归结到2)
{{1,2}, 3)——[3]与[3]交换,后求[3:1]={1,2}的全排列,归结到2)
。
依此类推。
利用python实现全排列的具体代码烫。py如下:
=0 def 烫发(n,开始,结束): global 才能;计数 if 才能;begin>=结束: ,,,print n ,,COUNT +=1 其他的才能: ,,我=,,,for num 拷贝范围(开始、结束): ,,,,,n (num), n[我]=[我],n (num) ,,,,,烫(n + 1开始,结束) ,,,,,n (num), n[我]=[我],n (num) , n=(1、2、3、4) 烫(n, 0, len (n)) print 数
最后输出的结果如下:
========================,重启:,D:/Python27/perm.py ========================(1,,2,,3,,4] [1,2,4,3] (1,,3,,2,,4] (1,,3,,4,2] (1,4,,3,,2] (1,4,,2,,3] (2,1,3,4) (2,1,4,3] (1,2,,3,,4] [2,3,4,,1] (2,4,,3,,1] (2,4,,1,,3] [3,,2,,1,,4] [3,,2,,,,1] [3,,1,,2,,4] [3,,1,,,,2] [3,,4,,1,,2] [3,,4,,2,,1] (4,,2,,3,,1] (4,,2,,1,,3] (4,,3,,2,,1] (4,,3,,1,,2] (4,,1,,3,,2] (4,,1,,2,,3] 24 祝辞祝辞在
Python主要用来做什么
Python主要应用于:1,网络开发;2、数据科学研究;3,网络爬虫;4、嵌入式应用开发,5日游戏开发;6桌面应用开发。
关于怎么在Python中实现递归全排列就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。