C++ code:位操作实例(bit operation example)

某任务需要在A、B、C、D、E这五个人中物色人员去完成,但派人受限于下列条件:

(1)若A去,则B跟去

(2)D,E两人中必有人去

(3)B,C两人中必有人去,但只去一人

(4)C,D两人要么都去,要么都不去

(5)若E去,则A,B都去

分析:

对于这个逻辑判断例子,得到了条件的逻辑表达式,我们还有逻辑判断类的求解模式。如果将每个人的去与不去看成是5位整数中的其中1位,其中A对用最高位,E对应最低位,那么所有有可能的调派方案为从全部不派的00000到全部都派的11111之间变化。显然,共有32中方案,全部遍历的循环为:

C++ code:位操作实例(bit operation example)

C++ code:位操作实例(bit operation example)

再将A、B、C、D、E的式子代入表达式,即可以构成程序:

C++ code:位操作实例(bit operation example)

C++ code:位操作实例(bit operation example)

C++ code:位操作实例(bit operation example)

C++ code:位操作实例(bit operation example)

上一篇:机器学习方法出现在AER, JPE, QJE等顶刊上了!!!


下一篇:Anaconda"无法定位程序输入点 OPENSSL_sk_new_reserve 于动态链接库Anaconda3\Library\bin\libssl-1_1-x64.dll上"的解决办法