全排列函式

2021-09-12 23:11:24 字數 1439 閱讀 7157

一:next_permutation()函式,作用是輸出所有比當前排列  排列大的排列(順序為由小到大排)

#include#include#includeusing namespace std;

int main(){

string str;

cin>>str;

while(next_permutation(str.begin(),str.end()))

cout

int main(){

char str[100];

cout<

cin>>str;

int len=strlen(str);

while(next_permutation(str,str+len)){

cout如: 

二:perv_permutation()函式,作用是輸出比當前排列小的排列      (順序:從大到小)

#include#include#includeusing namespace std;

int main(){

string str;

cout<

cin>>str;

while(prev_permutation(str.begin(),str.end()))

cout

int main()

{ char str[100];

cout<

cin>>str;

int len=strlen(str);

while(prev_permutation(str,str+len))

{ cout如: 

如果要得到幾個數的全排列,還可以對上方的函式進行一些更改

比如對於next_permutation()函式,它只對比自己大的排列起作用,所以可以對輸入的序列進行由小到大的排序,因為最後的總個數不包含第乙個最小的那個序列,所以要在最後的總數上加1,才是這幾個數進行全排列的結果。

**:#include#include#include#includeusing namespace std;

int cmp(char a,char b)

{ return a>str;

int len=strlen(str);

sort(str,str+len,cmp);

while(next_permutation(str,str+len))

{ cout如:

全排列函式

人類終於登上了火星的土地並且見到了神秘的火星人。人類和火星人都無法理解對方的語言,但是我們的科學家發明了一種用數字交流的方法。這種交流方法是這樣的,首先,火星人把乙個非常大的數字告訴人類科學家,科學家破解這個數字的含義後,再把乙個很小的數字加到這個大數上面,把結果告訴火星人,作為人類的回答。火星人用...

全排列函式

nest permutation函式 向下求 include include 標頭檔案 using namespace std intmain dowhile next permutation a,a 3 這是乙個求乙個排序的下乙個排列的函式 return0 執行結果 123 1322 1323 1...

全排列函式

一 概念 從n個不同元素中任取m m n 個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的乙個排列。當m n時所有的排列情況叫全排列。如果這組數有n個,那麼全排列數為n 個。比如a,b,c的全排列一共有3!6 種 分別是 二 常用操作 1.標頭檔案 include2.使用方法這裡先...