Перебор размещений n-элементного множества. На с++, питон или паскаль абс
Answers & Comments
DartDoggy
//GNU C++ compiler #include <bits/stdc++.h>
using namespace std;
int main() { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); /* ввод и вывод из файла, если не нужно можно смело стирать. ну или закомментить*/ int n; cin >> n; vector<int> a(n); /* предпологаю что у нас числа, при желании тип данных можно поменять */ for( int i = 0; i < n; i++) cin >> a[i]; sort( a.begin(), a.end() ); while( next_permutation(a.begin(), a.end()) ) { for( int i = 0; i < n; i++) cout << a[i] << " "; cout << "\n"; } return 0; } /*если я правильно понял задачу, то это нужное решение. задача NP-полная факториальной сложности. 10 чисел отработает ±быстро(порядка секунды), для 11 можно получить результат немного подождав(около 10 секунд), для 12 лучше набраться терпения(порядка 2 минут). 13(20-30 минут) и дальше лучше не пробовать ввод использовал медленный, т.к. в нашем случае это капля в море могут быть опечатки, печатал с телефона*/
Answers & Comments
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
/* ввод и вывод из файла, если не нужно можно смело стирать. ну или закомментить*/
int n;
cin >> n;
vector<int> a(n);
/* предпологаю что у нас числа, при желании тип данных можно поменять */
for( int i = 0; i < n; i++)
cin >> a[i];
sort( a.begin(), a.end() );
while( next_permutation(a.begin(), a.end()) )
{
for( int i = 0; i < n; i++)
cout << a[i] << " ";
cout << "\n";
}
return 0;
}
/*если я правильно понял задачу, то это нужное решение. задача NP-полная факториальной сложности. 10 чисел отработает ±быстро(порядка секунды), для 11 можно получить результат немного подождав(около 10 секунд), для 12 лучше набраться терпения(порядка 2 минут). 13(20-30 минут) и дальше лучше не пробовать
ввод использовал медленный, т.к. в нашем случае это капля в море
могут быть опечатки, печатал с телефона*/