用递归法进行n个数的全排列,思路是怎样的?c++实现 5
2个回答
展开全部
我们先假设要求解这样一个问题:
已知a1,a2,...,an是n个元素的一个序列,命名为Am0,现要求出这n个元素的全排列中与Am0的前m个元素相同的所有序列;
这个问题的解法分两步:
1、将序列Am0的m+1序号上的元素分别与m+1序号及以后的元素交换,得到n-m个新的序列(包括Am0本身),命名为Am0,Am1,Am2,...,Am(n-m-1)。我们认为这个时候这n-m个新序列的m+1序号上的元素已经确定;
2、分别对第1步得到的n-m个新序列求解同样的问题。
即求出n个元素的全排列中与Ami的前m+1个元素相同的所有序列。
现已知这n个数的任意一个序列A。
求n个数的全排列就是求出这n个元素的全排列中与A前0个元素相同的所有序列。
已知a1,a2,...,an是n个元素的一个序列,命名为Am0,现要求出这n个元素的全排列中与Am0的前m个元素相同的所有序列;
这个问题的解法分两步:
1、将序列Am0的m+1序号上的元素分别与m+1序号及以后的元素交换,得到n-m个新的序列(包括Am0本身),命名为Am0,Am1,Am2,...,Am(n-m-1)。我们认为这个时候这n-m个新序列的m+1序号上的元素已经确定;
2、分别对第1步得到的n-m个新序列求解同样的问题。
即求出n个元素的全排列中与Ami的前m+1个元素相同的所有序列。
现已知这n个数的任意一个序列A。
求n个数的全排列就是求出这n个元素的全排列中与A前0个元素相同的所有序列。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询