用位操作解人员派遣问题:
Question:
某项任务由A、B、C、D、E五个人去完成,但人员派遣受限于以下条件:
(1) 若A去,则B跟去
(2) D、E两人中必有人去
(3) B、C两人中必有人去,但只去一人
(4) CD两人要么都去,要么都不去
(5) 若E去,则AB都不去
answer:
将约束条件用逻辑运算表达式表示如下:
(1) A->B,即:!A||B
(2) D||E
(3) (B&&!C)||(!B&&C),即:B!=C
(4) (!C||D)&&(C||!D),即:C==D
(5) !E||(A&&B)
如果将每个人的去与不去表示5位整数中的1位,其中A对应最高位,E对应最低位。那么所有的派遣方案位从全部不派遣00000到都派遣11111之间变化。共32种方案,对之进行判断,符合条件的即为合适的派遣方案。
将以上逻辑表达式取反:、
(1) A&&!B
(2) !D && !E
(3) B==C
(4) C!=D
(5) E&&!(A&&B)
程序如下: