Вопрос задан 23.10.2023 в 15:32.
Предмет Информатика.
Спрашивает Богданюк Павло.
Перебор размещений n-элементного множества. На с++, питон или паскаль абс
Ответы на вопрос
Отвечает Умеренков Никита.
//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 минут) и дальше лучше не пробовать
ввод использовал медленный, т.к. в нашем случае это капля в море
могут быть опечатки, печатал с телефона*/
#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 минут) и дальше лучше не пробовать
ввод использовал медленный, т.к. в нашем случае это капля в море
могут быть опечатки, печатал с телефона*/
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Перебор размещений n-элементного множества можно реализовать на C++, Python или Pascal. Вот примеры на каждом из этих языков:
На C++:
cpp#include <iostream>
#include <vector>
#include <algorithm>
void generatePermutations(std::vector<int>& elements, int k) {
do {
for (int i = 0; i < k; i++) {
std::cout << elements[i] << " ";
}
std::cout << std::endl;
} while (std::next_permutation(elements.begin(), elements.begin() + k));
}
int main() {
int n, k;
std::cout << "Введите n и k: ";
std::cin >> n >> k;
std::vector<int> elements(n);
for (int i = 0; i < n; i++) {
elements[i] = i + 1;
}
generatePermutations(elements, k);
return 0;
}
На Python:
pythonfrom itertools import permutations
n = int(input("Введите n: "))
k = int(input("Введите k: "))
elements = list(range(1, n + 1))
for perm in permutations(elements, k):
print(*perm)
На Pascal:
pascalprogram Permutations; var n, k, i: Integer; elements: array of Integer; procedure GeneratePermutations(k: Integer); var i: Integer; begin repeat for i := 0 to k - 1 do Write(elements[i], ' '); Writeln; until not NextPermute(elements, k); end; begin Write('Введите n и k: '); Readln(n, k); SetLength(elements, n); for i := 0 to n - 1 do elements[i] := i + 1; GeneratePermutations(k); end.
Эти программы генерируют и выводят все размещения размера k из n элементов. Вы можете выбрать язык программирования, который вам более удобен, и запустить соответствующий код.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Информатика 640
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
