本文的示例共享了python递归全数组的实现方法。 请作为参考。 具体内容如下
序列:从n个元素中任意取m个元素,按一定顺序排列称为序列;
全部排列: n==m时,称为全部排列
例如,集合{1、2、3}的全部排列如下。
{ 123 }
{1(3)2}
{ 2 1 3 }
{ 231 }
{ 321 }
{ 3 1 2 }
递归思想:
取出数组的第一个元素并将其放在最后。 也就是说,a[1]与a[n]交换,递归地求出a[n-1]的全部数组
1 )如果数组中只有一个n=1的元素,则a={1}表示所有数组为{1}
2 )如果数组中有两个元素n=2,a={ 1,2 },则所有数组如下:
{ 2,1 }-- a [1]更换为a[2]。 交换后,求出a[2-1]={2}的全部序列,并返回1 )
{ 1,2 }-- a[2]更换为a [2]。 交换后,求出a[2-1]={1}的全部序列,并返回1 )
3 )如果数组中有三个元素n=3,a={ 1,2,3 },则所有数组都是
{ 2,3 },1 }--更换a[3]和a[3]。 然后求出a [3-1]={ 2,3 }的全部序列,并返回2 )
{ 1,3 },2---- -交换a[3]和a[3]。 然后求出a [3-1]={ 1,3 }的全部序列,并返回2 )
{ 1,2 },3----交换a[3]和a[3]。 然后求出a [3-1]={ 1,2 }的全序列,并返回2 )
.
接下来类推。
利用python实现全数组的具体代码perm.py如下:
计数=0
efperm(n,begin,end ) :
全局计数
if begin=end:
打印n
计数=1
else:
i=begin
财富(begin,end ) :
n[num],n[i]=n[i],n[num]
perm(n,begin 1,end ) ) )。
n[num],n[i]=n[i],n[num]
n=[ 1,2,3,4 ]
perm(n,0,len ) n )
打印计数
最终的输出结果如下
=====================restart 3360 d :/python 27/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 ]
[ 2,3,1,4 ]
[ 2,3,4,1 ]
[ 2,4,3,1 ]
[ 2,4,1,3 ]
[ 3,2,1,4 ]
[ 3,2,4,1 ]
[ 3,1,2,4 ]
[ 3,1,4,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
希望以上是正文的全部内容,对大家的学习有帮助。 另外,我希望你多支持我找教程网。