排列数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排列数相关的知识,希望对你有一定的参考价值。

技术分享
 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 using namespace std;
 5 long long sum=0;
 6 void print_permutation(int n,int s,int *a,int cur);//n为输出的,s为元素个数,a为数组,cur当前位置. 
 7 int main()
 8 {
 9     int s[11];
10     int n;
11     scanf("%d",&n);
12     sum=0;
13     print_permutation(n,10,s,0);
14 }
15 
16 void print_permutation(int n,int s,int *a,int cur)
17 {
18     if(cur==s)
19     {
20         sum+=1;
21         if(sum==n)
22         {
23             for(int i=0;i<s;i++)
24             printf("%d",a[i]);
25             printf("
");
26         }
27     }
28     else
29     {
30         for(int i=0;i<s;i++)
31         {
32             int ok=1;
33             for(int j=0;j<cur;j++)
34             {
35                 if(a[j]==i)    ok=0;
36             }
37             if(ok)
38             {
39                 a[cur]=i;
40                 print_permutation(n,s,a,cur+1);
41             }
42         }
43     }
44 }
View Code

单纯的排列。

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

itertools 排列组合

如何将片段中的 ListView 对象的数据传递给 Activity?

n阶行列式的全排列求解(Java)

C++代码 递归算法 n个数的全排列 (是任意的,可不连续) 要求: 提示输入数的个数n 然后提示输入这n个

求排列的逆序数之树状数组

LeetCode 2097. 合法重新排列数对