Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.97
BioShark
0 / 0 / 1
Регистрация: 16.12.2009
Сообщений: 38
#1

Генерация массива всех перестановок из n элементов. - C++

10.02.2012, 18:51. Просмотров 5229. Ответов 2
Метки нет (Все метки)

Нашел по этой теме здесь на форумах такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream.h>
 
int X[100];
int N;
void Swap(int a,int b)
{
    int t=X[a];
    X[a]=X[b];
    X[b]=t;
}
void Generate(int k)
{
    if (k==N)
    {
        for(int i=0;i<N;i++)
            cout<<X[i]<<" ";
        cout<<"\n";
    }
    else
    { 
        for(int j=k;j<N;j++)
        {
            Swap(k,j);
            Generate(k+1);
            Swap(k,j);
        }
    }
}
 
void main()
{
    cout<<"N=";
    cin>>N;
    for(int i=0;i<N;i++)
        X[i]=i+1;
    Generate(0);
}
но тут я так понимаю перестановки только выводятся на экран, а мне нужен массив который содержит все эти перестановки. помогите пожалуйста записать все перестановки в массив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2012, 18:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Генерация массива всех перестановок из n элементов. (C++):

Генерация всех перестановок заданного множества
Никак не могу понять в чем проблема, задача состояла в генерации всех перестановок заданного множества, и вот выводила же прога все верно...

Генерация всех перестановок n элементного множества
с++ 1) Напечатать все перестановки чисел от 1 до n используя рекурсивный алгоритм пример 123 132 213 231 312 321

Генерация перестановок. Что не так?
Подскажите, пожалуйста, почему не работает, эта программа должна генерировать все перестановки #include &lt;iostream&gt; #include &lt;vector&gt;...

Быстрая сортировка, подсчитать количество перестановок элементов массива
Здравствуйте! Никак не могу подсчитать количество перестановок елементов массива в сортировке Хоара:( Сделал счетчик value в цикле while,...

Найти сумму всех положительных элементов массива и среднее арифметическое всех элементов
Помогите написать программу: Дан массив A. Найти сумму всех положительных элементов массива и среднее арифметическое всех чисел.

Какую сортировку массива применить, чтобы посчитать количество перестановок двух соседних элементов?
Всем привет. Я раньше создавал подобную тему, но решил создать новую. Вопрос следующий. Скажите, каким видом сортировки массива можно...

2
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.02.2012, 21:11 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
int main()
{
    std::srand(std::time(nullptr));
    const std::size_t size = 5;
    std::vector<int> v(size);
    std::generate(v.begin(), v.end(), [] { return std::rand() % 21; });
    for(const auto& it: v)
        std::cout << std::setw(4) << it;
    std::cout << std::endl << std::endl;
    std::sort(v.begin(), v.end());
    std::vector<std::vector<int>> out;
    do
        out.push_back(v);
    while(std::next_permutation(v.begin(), v.end()));
    for(const auto& i: out)
    {
        for(const auto& it: i)
            std::cout << std::setw(4) << it;
        std::cout << std::endl;
    }
    return 0;
}
http://liveworkspace.org/code/f1ac53cc87b175c7708690a57e451af1
0
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 1
10.02.2012, 21:43 #3
Цитата Сообщение от soon Посмотреть сообщение
std::vector<std::vector<int>> out;
C++
1
std::vector <std::vector <int> > out;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2012, 21:43
Привет! Вот еще темы с решениями:

Найти максимальное значение элементов массива, а также номера всех элементов массива с этим значением
Дан массив из n элементов. Необходимо найти максимальное значение элементов массива, а также номера всех элементов массива, имеющих это...

Вернуть количество элементов массива, которые больше среднего значения всех элементов данного массива
Написать функцию, которая возвращает количество элементов массива, которые больше среднего значения всех элементов данного массива.

Определить кол-во элементов массива, которые больше среднеарифметического значения всех элементов массива
Сделать программу, к-рая случайно заполняет массив А (n&lt;30) целыми значениями. Определить кол-во элементов массива, которые больше...

Удаление четных элементов массива,больших среднего арифметического всех элементов массива
Доброго времени суток! Помогите пожалуйста) Вот задание:Из массива удалить четные элементы, имеющие значение больше среднего...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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