离散数学:赵钱孙李,派谁出国?编程实现

某公司要从赵,钱,孙,李,周五名新毕业的大学生中选派一些人出国学习,选派必须满足以下条件:

(1)若赵去,则钱也去

(2)李,周两人中必有一人去

(3)钱,孙两人中去且仅去一人

(4)孙,李两人同去或者同不去

(5)若周去,则赵,钱也同去

用等值演算法分析该公司如何选派他们出国。

解 设命题:

        p:派赵去

        q:派钱去

        r:派孙去

        s:派李去

        u:派周去

上述公司选派条件分别表示:

        Q: p→q

        R: s∨u

        S: (q∧¬r)∨(¬q∧r)

        M: (r∧s)∨(¬r∧¬s)

        T: ¬u∨(p∧q)

有公司选派条件:

        A = Q∧R∧S∧M∧T

化简得到         A = (¬p∧¬q∧r∧s∧¬u)∨(p∧q∧¬r∧¬s∧u)

综上所述 共有两种选派方案:1.派孙、李去,而赵、钱、周不去

                                                2.派赵、钱、周去,而孙、李不去

                                                                                            

'''某公司要从赵,钱,孙,李,周五名新毕业的大学生中选派一些人出国学习,选派必须满足以下条件:

(1)若赵去,则钱也去

(2)李,周两人中必有一人去

(3)钱,孙两人中去且仅去一人

(4)孙,李两人同去或者同不去

(5)若周去,则赵,钱也同去

用等值演算法分析该公司如何选派他们出国。'''
#设命题: p:派赵去 q:派钱去 r:派孙去 s:派李去 u:派周去

#A 表示公司选派条件
for p in range(2):
    for q in range(2):
        for r in range(2):
            for s in range(2):
                for u in range(2):
                    #公司的五个选派条件(1)(2)(3)(4)(5)分别符号化且分别用Q R S M T表示
                    Q = (not p) or q
                    R = s or u
                    S = (q and (not r)) or ((not q)and r)
                    M = (r and s) or ((not r) and (not s))
                    T = ((not u) or (p and q))
                    #A 表示公司选派总判断

                    A = Q and R and S and M and T
                    if A == 1:#0 表示不去 1 表示去
                        print("是否派赵去{},是否派钱去{},是否派孙去{},是否派李去{},是否派周去{}".format(p,q,r,s,u))

运行结果:

是否派赵去0,是否派钱去0,是否派孙去1,是否派李去1,是否派周去0
是否派赵去1,是否派钱去1,是否派孙去0,是否派李去0,是否派周去1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值