Программно создать таблицу решений в 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