Sunteți pe pagina 1din 3

PERMUTARI

Definitie: Se numesc permutari ale unei multimi A cu n elemente toate multimile ordonate care se pot forma cu cele n elemente ale lui A. Pentru , avem , prin definitie

Ca si proprietati:

Generarea tuturor solutiilor: Sursa este facuta pe visual studio c++, se poate downloda de aici "permutari"
#include <iostream> //#include<cstdio> using namespace std; int a[20],b[20]; void permutari(int k, int len){ if(k-1 == len){ for(int i = 1; i <= len; i++) cout << a[i]; cout << endl; } else{ for(int i = 1; i <= len; i++) if(!b[i]){ a[k] = i; b[i] = 1; permutari(k+1, len); b[i] = 0; } } } int main(){ int n; cin >> n; permutari(1, n); return 0; }

ARANJAMENTE
Definitie: Se numesc aranjamente a n elemente luate cate m ale unei multimi A cu n elemente, toate submultimile ordonate cu cate m elemente care se pot forma din cele n elemente ale multimii A.

Se noteaza

Sursa este facuta pe visual studio c++, se poate downloda de aici, "aranjamente"
#include <iostream> //#include <stdio.h> using namespace std; int a[20],b[20]; void aranjamente(int k, int len, int max){ if(k-1 == max){ for(int i = 1; i <= max; i++) cout << a[i]; cout << endl; } else{ for(int i = 1; i <= len; i++) if(!b[i]){ a[k] = i; b[i] = 1; aranjamente(k+1, len, max); b[i] = 0; } } } int main(){ int n,k; cin >> n; cin >> k; aranjamente(1, n, k); return 0; }

COMBINARI
Numarul combinarilor a n elemente luate cate m este calculata cu formula:

Un program pentru generarea tuturor combinatilor posibile(afisarea tuturor solutiilor) Sursa este facuta pe visual studio c++, se poate downloda de aici, "combinari"
#include <iostream> //#include <stdio.h> using namespace std;

int a[20],b[20]; void combinari(int k, int len, int max){ if(k-1 == max){ for(int i = 1; i <= max; i++) cout << a[i]; cout << endl; } else{ for(int i = 1; i <= len; i++) if(!b[i] && a[k-1] < i){ a[k] = i; b[i] = 1; combinari(k+1, len, max); b[i] = 0; } } } int main(){ int n,k; cin >> n; cin >> k; combinari(1,n,k); return 0; }

S-ar putea să vă placă și