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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 127, средняя оценка - 4.85
forte
2 / 2 / 0
Регистрация: 22.06.2010
Сообщений: 6
#1

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

29.09.2010, 14:33. Просмотров 18989. Ответов 3
Метки нет (Все метки)

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

2)Перечислить все последовательности длины к из чисел 1 2 3 ... n
пример пусть n=3 k=4
1111
1112
1113
1121
1122
...
3333

Помогите пожалуйста, а то с комбинаторикой не дружу
Заранее спасибо
1
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2010, 14:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Генерация всех перестановок n элементного множества (C++):

Алгоритм генерирования перестановок n-элементного множества - C++
разработать алгоритм генерирования перестановок n-элементного множества за минимальное число транспозиций соседних элементов. ...

Генерация массива всех перестановок из n элементов. - C++
Нашел по этой теме здесь на форумах такой код: #include <iostream.h> int X; int N; void Swap(int a,int b) { int t=X; ...

По перестановке определить его номер в лексикографическом перечислении всех перестановок множества - C++
По перестановке определить его номер в лексикографическом перечислении всех перестановок множества {1,2,…,n}. Формат входных данных: ...

Генерация всех подмножеств данного множества - C++
Друзья, помогите написать программку в консольном приложении VS 2008, задание такое: Генерация всех подмножеств данного множества Буду...

Перечислить все подмножества n элементного множества {1,2,.,n} - C++
Помогите пожалуйста написать программу для этой задачи: Перечислить все подмножества n элементного множества {1,2,...,n}

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

3
Dexter
285 / 145 / 16
Регистрация: 13.10.2009
Сообщений: 164
29.09.2010, 15:11 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
1) Напечатать все перестановки чисел от 1 до n используя рекурсивный алгоритм
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
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++)
            std::cout<<X[i]<<" ";
        std::cout<<"\n";
    }
    else
    { 
        for(int j=k;j<N;j++)
        {
            Swap(k,j);
            Generate(k+1);
            Swap(k,j);
        }
    }
}
 
int main()
{
    std::cout<<"N=";
    std::cin>>N;
    for(int i=0;i<N;i++)
        X[i]=i+1;
    Generate(0);
}
Добавлено через 14 минут
2)Перечислить все последовательности длины к из чисел 1 2 3 ... n
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
int N,K;
int X[100];
void Generate(int k)
{
    if(k==K)
    {
        for(int i=0;i<K;i++)
            std::cout<<X[i]<<" ";
        std::cout<<"\n";
    }
    else
    {
        for(int j=0;j<N;j++)
        {
            X[k]=j+1;
            Generate(k+1);
        }
    }
 
}
int main()
{
    std::cout<<"N=";
    std::cin>>N;
    std::cout<<"K=";
    std::cin>>K;
    Generate(0);
}
5
TommyG
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 48
23.12.2012, 13:15 #3
Слушайте ребята, а не мог ли кто-нибудь на псевдокоде написать как и что делается в 1ой задаче? очень нужно...
1
romaa6
0 / 0 / 0
Регистрация: 08.04.2015
Сообщений: 1
08.04.2015, 00:03 #4
А как сделать чтоб і елемент не занимал і-ю позицию? Пример – 2,5,4,3,1
0
08.04.2015, 00:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2015, 00:03
Привет! Вот еще темы с ответами:

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

Выведение всех перестановок - C++
Драсте, я вот все время писал на паскале и мне с трудом дается переход на c++. Не могу сделать и простых вещей, просто не разбираюсь в...

Рекурсивная процедура печати всех перестановок из n символов - C++
&quot;Написать процедуру печати всех перестановок из n символов&quot; методом рекурсии непривычно и трудно в C++ помогите пожалуйста! ...

Вывод всех перестановок без использования массивов - C++
Вот есть такая проблема: нужно вывести все возможные перестановки чисел от 1 до n тема жутко заезженная, есть рекурсивные подходы, есть...


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

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

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