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

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

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

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

10.02.2012, 18:51. Просмотров 4901. Ответов 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 элементного множества - C++
с++ 1) Напечатать все перестановки чисел от 1 до n используя рекурсивный алгоритм пример 123 132 213 231 312 321

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

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

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

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

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

2
soon
2542 / 1307 / 81
Регистрация: 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 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 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
Привет! Вот еще темы с ответами:

Найти сумму элементов массива, равных среднему арифметическому всех элементов массива - C++
здравствуйте я студентка первого курса и мы изучаем С и С++ работам в борланде моя задача,над которой я бьюсь, на одномерный массив ...

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

Из всех положительных элементов массива вычесть элемент с номером k[l], из всех отрицательных - число n - C++
Дан массив вещественных чисел из всех положительных элементов вычесть элемент с номером k, из всех отрицательных — число п. Нулевые...

Найти разность между произведением всех положительных элементов массива и суммой модулей всех отрицательных - C++
В массиве из 9 действительных чисел определить разность между произведением всех положительных элементов и суммой модулей всех...


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

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

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