Генерация всех комбинаций методом грубой силы в C++

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

Вопрос заключается в следующем:

Предположим, что у меня есть 3 задачи и 2 процесса. Я создам массив 3x2 и сделаю все возможные комбинации, чтобы назначить каждую задачу каждому процессу и, таким образом, создать разные комбинации. Обратите внимание, что мне не нужно создавать процесс через fork() или что-то в этом роде; Я просто хочу показать все возможные комбинации того, как 3 задачи могут быть назначены 2 процессам. Я должен показать каждую комбинацию. Комбинация будет состоять из всех задач, выполненных с помощью процессов. Я покажу вам несколько примеров того, как создавать комбинации.

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

e.g-1

T1 T2 
T3 -
-  -

e.g-2

T1 T2 
-  T3
-  -

e.g-3

T1 - 
T2 -
T3 -

e.g-4

T2 - 
T1 -
T3 - 

Отсюда все возможные факторы. Вы можете видеть, что в примере есть все задачи I.E. T1,T2,T3 и ни один из них не повторяется.

Пожалуйста, помогите мне написать программу на С++ для решения этой проблемы.

Максимальный размер массива может быть 1000x5.


person ssaaddii    schedule 22.04.2012    source источник
comment
Алгоритмы STL имеют хорошую функцию для такого типа вещей. Хотя я не уверен, насколько хорошо это впишется в эту домашнюю работу.   -  person chris    schedule 22.04.2012


Ответы (1)


Вероятно, вам поможет чтение документации STL:

http://www.cplusplus.com/reference/algorithm/next_permutation/

person linello    schedule 22.04.2012
comment
нет... это полезно, когда задачи равны отсутствию процесса.... но это может быть не так... на самом деле процесс не представляет должности, которые нужно заполнить, а задача представляет того, кто их заполнит... например, если у меня 2 процесса и 5 задач..тогда у меня есть 2 позиции одновременно...так что - person ssaaddii; 23.04.2012