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

Перебор комбинаций - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
Tokenzier
0 / 0 / 0
Регистрация: 20.01.2011
Сообщений: 15
06.06.2011, 20:06     Перебор комбинаций #1
Здравствуйте! Возникла такая задача. Дан одномерный массив из N цифр,нужно составить все возможные комбинации чисел из этих цифр(числа должны состоять из N цифр). Т.е, например, дан массив из 3х элементов {1,2,3}
Числа: 123, 132, 213, 231, 321, 312. Цифры не должны повторяться. Помогите, пожалуйста. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2011, 20:06     Перебор комбинаций
Посмотрите здесь:

C++ Помогите с выводом комбинаций
Функция количества комбинаций C++
Перебор комбинаций C++
C++ Генерация комбинаций из n по m
Количество различных комбинаций C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
06.06.2011, 21:22     Перебор комбинаций #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
#include <iostream>
#include <algorithm>
#include <iomanip>
 
#define SizeOfArray 5
 
void PrintingArray ( int * Mas )
{
    for ( int index = 0; index < SizeOfArray; index++ )
        std::cout << std::setw (4) << Mas [ index ];
    std::cout << std::endl;
}
 
void FillingArray ( int * Mas )
{
    for ( int index = 0; index < SizeOfArray; index++ )
        Mas [ index ] = index;
}
 
int main()
{
    int * Array;
    Array = new int [ SizeOfArray ];
    
        FillingArray ( Array );
    
        do
    {
        PrintingArray ( Array );
    }
    while ( std::next_permutation ( Array, Array + SizeOfArray ) );
 
        delete [] Array;
    std::cin.get();
    return 0;
}
артист
 Аватар для артист
0 / 2 / 3
Регистрация: 17.09.2014
Сообщений: 562
Завершенные тесты: 1
13.11.2015, 19:34     Перебор комбинаций #3
Что - то не понятно...

Как подставить?
resc - массив с цифрами.
buf - массив для вставки комбинаций.

C++ (Qt)
1
2
3
4
5
6
7
8
9
do
{
    i = -1;
    while(++i < nums) std::cout << std::setw(4) << resc[i];
    std::cout << std::endl;
}
while(std::next_permutation(resc, resc + nums)) ;
                    
std::cin.get();
Куда совать?
Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
13.11.2015, 19:44     Перебор комбинаций #4
Генерация всех перестановок n элементного множества
Найти все десятизначные числа с неповторяющимися цифрами
Yandex
Объявления
13.11.2015, 19:44     Перебор комбинаций
Ответ Создать тему
Опции темы

Текущее время: 00:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru