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

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

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

Генерация перестановок. Что не так?
Подскажите, пожалуйста, почему не работает, эта программа должна генерировать...

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

Найти сумму всех положительных элементов массива и среднее арифметическое всех элементов
Помогите написать программу: Дан массив 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
Фрилансер
Эксперт С++
5838 / 1219 / 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 элементов. Необходимо найти максимальное значение элементов...

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


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

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

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