Программно создать таблицу решений в C #?

У меня есть такая ситуация, что я должен позволить пользователям определять решения на основе количества заданных условий. Например, моя программа должна автоматически генерировать матрицу, как показано ниже, учитывая, что есть два условия (IsMale и IsSmoker):

IsMale:   YES YES NO  NO
IsSmoker: YES NO  YES NO

И само определение определяется пользователем, поэтому может быть допустимо любое из следующего:

IsMale:   YES YES NO  NO
IsSmoker: YES NO  YES NO
Decision: T   F   T   F

IsMale:   YES YES NO  NO
IsSmoker: YES NO  YES NO
Decision: F   F   F   F

IsMale:   YES YES NO  NO
IsSmoker: YES NO  YES NO
Decision: T   T   T   T

Для каждого условия может быть только два состояния,True а такжеFalse, Таким образом, общее количество комбинаций рассчитывается так:

нет возможностиstates (S)  к власти нетconditions (C)     S ^ C = общее количество комбинаций

4 possibilities (2 ^ 2 = 4)

Condition A   T T F F
Condition B   T F T F

8 possibilities (2 ^ 3 = 8)

Condition A   T T T T F F F F
Condition B   T T F F T F T F
Condition C   T F T F T T F F

Надеюсь, я объяснил себя немного лучше, чем первоначальный вопрос.

Updated: в соответствии с ответом, даннымGuffa, Ниже приведен ручной расчет его алгоритма для генерации различных комбинаций.

4 possibilities (2^2=4)

index = 0, (right shift 0)

binary   8 4 2 1  Value

original 0 0 0 1  1
& 1      0 0 0 1  1 T

original 0 0 1 0  2
& 1      0 0 0 1  0 F

original 0 0 1 1  3
& 1      0 0 0 1  1 T

original 0 1 0 0  4
& 1      0 0 0 1  0 F

index = 1, (right shift 1)

binary   8 4 2 1  Value
original 0 0 0 1  1
shift    0 0 0 0  0
& 1      0 0 0 1  0 F

original 0 0 1 0  2
shift    0 0 0 1  1
& 1      0 0 0 1  1 T

original 0 0 1 1  3
shift    0 0 0 1  1
& 1      0 0 0 1  1 T

original 0 1 0 0  4
shift    0 0 1 0  2
& 1      0 0 0 1  0 F

combinations:

Condition 1: TFTF
Condition 2: FTTF

Ответы на вопрос(5)

Ваш ответ на вопрос