Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
#1

Перестановки с next_permutation - C++

27.11.2013, 20:41. Просмотров 1511. Ответов 6
Метки нет (Все метки)

Есть входные данные 9-12 цифр
надо из них создать все возможные перестановки и отправить их в вектор. Задумка
C++
1
2
3
4
5
do 
{
   possibleResult.push_back(что-то)
 } 
while ( next_permutation(acid,acid + aminoAcid.size()) );
possibleResult и aminoAcid это векторы
acid это массив с теми же значениями что и в aminoAcid
Не могу понять с какой стороны даже начать без этой функции

Добавлено через 8 минут
Возможно есть способ самому написать ф-ю кторая создаст все перестановки, но ничего умнее 12 циклов(для 12 цифр) я не придумал.
Шаблон который сам пишет к циклов for на основе входного к я тоже не могу придумать(возможно такого и нет)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2013, 20:41     Перестановки с next_permutation
Посмотрите здесь:

Перестановки next_permutation + map - C++
Есть большой кусок кода который я написал, попытался использовать перестановку для мапа, именно ключей в лексикографическом порядке...

Next_permutation - C++
Здравствуйте, Вот не понимаю, каким образом алгоритм next_permutation выполняет следующую большую перестановку. Он как-то генерирует...

Использование next_permutation - C++
Правильно ли я использую next_permutation? Мне нужно вывести все перестановки символов данной строки в алфавитном порядке. ...

Перестановки - C++
Есть число которое складается из нулей и единиц. C клавиатуры вводится N - общее количество цифр и K - количество единиц. Найти и вивести...

Перестановки - C++
Даны символы, например ABCDEF, и число n. Нужно вывести все возможные комбинации перестановок этих символов по n. Максимальное число...

перестановки в С++ - C++
Поменять местами элементы с четными и нечетными номерами

те же перестановки - C++
Вот опять задачка на перестановки, если кому интересно, или кому просто не трудно сделать, буду очень признателен! Заранее огромное...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
Эксперт С++
15295 / 6927 / 1096
Регистрация: 02.05.2013
Сообщений: 11,334
Завершенные тесты: 1
27.11.2013, 22:15     Перестановки с next_permutation #2
1) Запишите входные цифры в массив.
2) Отсортируйте массив.
3) В цикле вызывайте next_permutation, пока она не вернет false.
На каждой итерации цикла у вас будет очередная комбинация.
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
28.11.2013, 01:54  [ТС]     Перестановки с next_permutation #3
Вопрос не совсе был в этом.
Пункты 1 и 2 я сделал.
Вопрос как в пункте 3 получаемые перестановки отправлять в вектор, например.
Убежденный
Системный программист
Эксперт С++
15295 / 6927 / 1096
Регистрация: 02.05.2013
Сообщений: 11,334
Завершенные тесты: 1
28.11.2013, 09:06     Перестановки с next_permutation #4
std::vector<std::vector>, например.
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
28.11.2013, 12:02  [ТС]     Перестановки с next_permutation #5
Не совсем понял?
C++
1
2
3
4
5
6
7
8
9
1
2
3
4
5   do 
{
   possibleResult.push_back(что-то)
 } 
while ( next_permutation(acid,acid + aminoAcid.size()) );
possibleResult это и есть вектор, вопрос что использовать в качестве параметра ф-ии push_back()
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,449
Завершенные тесты: 3
28.11.2013, 12:05     Перестановки с next_permutation #6
Цитата Сообщение от Aliru Посмотреть сообщение
что использовать в качестве параметра ф-ии push_back()
Если я правильно понял, то
C++
1
possibleResult.insert(possibleResult.end(), acid, acid + aminoAcid.size());
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2013, 12:27     Перестановки с next_permutation
Еще ссылки по теме:

Перестановки без i - C++
Есть рекурсивная функция ,генерирующая перестановки.Требуется,чтобы на i месте(p) не стоял i.Причем проверять это надо не при...

перестановки с повторениями! - C++
Помогите! есть прога все считает правильно только не выводит значения с повторениями! помогите исправить! // mat_kkursa.cpp:...

Сдвиг перестановки. - C++
Думал алгоритм решения таков : находим минимальный элемент ставим его на первое место и сдвигаем последовательность. Но такое решение...

Инверсии и перестановки - C++
Ребят, помогите пожалуйста, сделать 2 задачки, буду очень вам признателен! Заранее огромное спасибо. 1.Дана перестановка. Наименьшее...

Двойные перестановки - C++
Здравствуйте программисты.Нужна ваша помощь. Помогите написать программу простенькую, на C++ : двойные перестановки n1*m1 + n2*m2 Буду...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
28.11.2013, 12:27  [ТС]     Перестановки с next_permutation #7
C++
1
2
3
4
5
6
7
do 
    {
        Result.insert(Result.end(),Acid.begin(),Acid.end());
    } 
    while ( next_permutation(Acid.begin(),Acid.end()) );
    for ( i = 0; i < Result.size(); i++)
        cout << Result.at(i) << endl;
Да, вроде правильно, но только не работает почему-то
Yandex
Объявления
28.11.2013, 12:27     Перестановки с next_permutation
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru