TA的每日心情 | 郁闷 2024-10-28 10:11 |
---|
签到天数: 1703 天 连续签到: 1 天 [LV.Master]伴坛终老
|
本帖最后由 nemon 于 2012-12-28 11:21 编辑
昨日题中派任务
引回帖几度
逻数,逻数
我来抛砖充数
xinxin出了一道题(见https://www.cirmall.com/bbs/thread-5666-1-1.html),我很不自量力的的做了一下,然后由于一贯粗心的坏毛病,顺理成章的做错了。不过还好,思路没错,所以厚着脸皮和大家分享一下。
题目设这样的:
问题:
“现在有A,B,C,D,E五个人,要分配他们当中若干人等去做任务,但是这几个人性格乖张,必须要满足以下几个条件:
若A去,B也要去
D,E两个人中至少要一人去,
B,C两人中只能去一人,
C,D两人要么都去,要么都不去,
E若是去,则A和D都要去。
现在我应该派谁去才能满足以上几个人的要求呢? |
注意到“C,D两人要么都去,要么都不去,”那么可以认为C、D是同一个人。这样凡是出现c或者d的地方都可以替换成“C和D”了。约束简化为:
【1】若A去,B也要去
【2】C和D、E两组人中至少要一组去,
【3】B、C和D两组人中只能去一组,
【-】C,D两人要么都去,要么都不去,
【4】E若是去,则A和(C和D)都要去。 |
数字逻辑基础里面有一个工具叫卡诺图,纤细的不解释了,看这里:百度、wiki。使用这个工具可以很轻松的解决这个问题。先画好空白图:
| | CD | 0 | 0 | 1 | 1 |
|
| E | 0 | 1 | 0 | 1 | A | B | | | | | | 0 | 0 | | | | | | 0 | 1 | | | | | | 1 | 0 | | | | | | 1 | 1 | | | | | |
步骤如下:
首先看约束“【1】若A去,B也要去”,我们把不符合要求的,即a=1,b=0的标上1:
| | CD | 0 | 0 | 1 | 1 |
| | E | 0 | 1 | 0 | 1 | A | B |
| |
| |
| 0 | 0 |
| |
| |
| 0 | 1 |
| |
| |
| 1 | 0 |
| 1 | 1 | 1 | 1 | 1 | 1 |
| |
| |
|
看约束“【2】C和D、E两组人中至少要一组去”,我们把不符合要求的,即cd=0,e=0的标上2:
|
| CD | 0 | 0 | 1 | 1 |
| | E | 0 | 1 | 0 | 1 | A | B |
|
|
| |
| 0 | 0 |
| 2 |
| |
| 0 | 1 |
| 2 |
| |
| 1 | 0 |
| 2 1 | 1 | 1 | 1 | 1 | 1 |
| 2 |
| |
|
看约束“【3】B、C和D两组人中只能去一组”,我们把不符合要求的,即cd=1,b=1的标上3:
|
| CD | 0 | 0 | 1 | 1 |
| | E | 0 | 1 | 0 | 1 | A | B |
|
|
| |
| 0 | 0 |
| 2 |
| |
| 0 | 1 |
| 2 |
| 3 | 3 | 1 | 0 |
| 2 1 | 1 | 1 | 1 | 1 | 1 |
| 2 |
| 3 | 3 |
看约束“【4】E若是去,则A和(C和D)都要去”,我们把不符合要求的,即e=1时a=0或cd=0的标上4:
| | CD | 0 | 0 | 1 | 1 |
| | E | 0 | 1 | 0 | 1 | A | B |
| |
| |
| 0 | 0 |
| 2 | 4 |
| 4 | 0 | 1 |
| 2 | 4 | 3 | 3 | 1 | 0 |
| 2 1 | 41 | 1 | 41 | 1 | 1 |
| 2 | 4 | 3 | 3 |
表中唯一没有填数字的cd=1,e=0,a=0,b=0就是解。
有志考公务员的童鞋有福了
|
|