【离散数学】作业记录

题目

用等值演算法解决下面问题:A、B、C、D4人参加百米竞赛,观众甲、乙、丙预测比赛的名次如下。
甲:C第一、B第二。
乙:C第二、D第三。
丙:A第二、D第四。
比赛结束后发现甲、乙、丙每人预测的情况都是各对一半,试问实际名次如何(假设无并列名次)?

代码

1.	from itertools import permutations  
2.	  
3.	def check(p):  
4.	    a,b,c,d=p  
5.= (c==1 and not b==2) or (not c==1 and b==2)  
6.= (c==2 and not d==3) or (not c==2 and d==3)  
7.= (a==2 and not d==4) or (not a==2 and d==4)  
8.	    returnandand9.	  
10.	for p in permutations([1,2,3,4],4):  
11.	    try:  
12.	        flag = check(p)  
13.	        assert flag,f'{p} is wrong!'  
14.	    except Exception as e:  
15.	        print(e)  
16.	    finally:  
17.	        if not flag:  
18.	            continue  
19.	        else:  
20.	            print(f'find it!!! the answer is {p}!')  

结果

在这里插入图片描述

结论

由运行结果可见,比赛的最终名次为A第二、B第四、C第一、D第三。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可可卷

不要看到我~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值