刑侦科推理试题(不知来源,最右APP看到)

最右APP看到的一个帖子感觉挺有意思自己做一下

在这里插入图片描述

审视完题目,还是先找突破口,可知第二题是突破口,因此从第二题开始进行推理

(1)第二题选A

当第2题选A时第5题选C
在这里插入图片描述
第5题选C时59同答案,因此第9题选C
在这里插入图片描述
此时已经没有明显的线索了
从第5题找线索,因为第5题选C,那么导致ABD选项的题目都不选C,因此可得478不选C
那么可得

19答案不同
最少字母不为A
第2题答案与第1题答案相邻

因为第2题答案与第1题答案相邻,所以第1题选B
在这里插入图片描述
从第9题得知 16题答案相同真假性与25题答案真假性相反,已知25分别为AC已经不同,则16相同都为B
在这里插入图片描述
由第6题得知168答案相同,则168都为B
在这里插入图片描述
此时从第8题得知第5题答案与第一题不相邻,与现在1B5C相悖,因此第二题不选A
在这里插入图片描述

(2)第二题选B

当第2题选B时第5题选D
在这里插入图片描述
第5题选D时第7题选D
在这里插入图片描述
由第7题可知D选项为最少,但此时D选项已经有2个那么ABC每个选项至少需要3个,此时
3*3+2=11,超过了10个题,排除第二题选B
在这里插入图片描述

(3)第二题选C

当第2题选C时第5题选A
在这里插入图片描述
第5题选A时第8题选A
在这里插入图片描述
此时已经没有明显的线索了
从第5题找线索,因为第5题选A,那么导致BCD选项的题目都不选A,因此可得479不选A
那么可得

15答案不同
最少字母不为C

还是没有明显的线索
此时观察第6题
假设第6题选

A:248相同,此时2C8A,排除
B:168相同,此时6B8A,排除
C:3108相同,没有明显逻辑漏洞
D:598相同,由上面第五题的线索得知,479不能选A,此时第8题已经是A,那么此选项也排除

因此第6题选C

在这里插入图片描述
由第6题得知3108答案相同,那么都为A
在这里插入图片描述
由第3题得知第3题答案与246不同,此时3A,2C6C,那么4为C
在这里插入图片描述
由第4题得知19同答案
观察第10题,已知答案最多的与答案最少的相差3个,此时题面上已经由4个A,那么最少的选项有且只有一个为B或者D,此时因为19答案,那么19不可能为A或者C,如果那样会导致AC的数量过高,因此19只能为B或者D,7题也是B或者D
那么当19为

B:1B6C,10A5A,符合题意
D:1D6C,9D5A,不符合排除

因此19选B
在这里插入图片描述
7自然而然选D
在这里插入图片描述

(4)第二题选D

当第2题选D时第5题选B
在这里插入图片描述
由5可知4为B
在这里插入图片描述
由4可知27相同,因为2为D,那么7为D
在这里插入图片描述
由7可知D选项最少,那么ABC至少3个,因此3*3+2=11,超过了10个题,排除第二题选D

总结

在这里插入图片描述

### 蓝桥杯基于Python的刑侦科推理试题解答示例 对于蓝桥杯中的刑侦科推理题目,可以利用逻辑判断和数据结构来实现解决方案。下面展示一个简单的例子,该案例涉及通过分析嫌疑人的陈述找出真相。 假设有一道题目的背景如下:有三名嫌疑人A、B、C在接受警方询问时分别做了陈述,其中只有一位说了真话,其余两人撒谎。已知条件为: - A说:“不是我做的。” - B说:“是C干的。” - C说:“B在胡扯。” 为了求解这个问题,可以通过编写一段Python程序来进行模拟验证各个可能性并得出结论。 ```python def find_truth_teller(statements): suspects = ['A', 'B', 'C'] for i in range(len(suspects)): # Assume the current suspect is telling the truth. assumed_true_suspect_index = i count_of_truths = 0 for j, statement in enumerate(statements): if (j == assumed_true_suspect_index and eval(statement)) or \ (j != assumed_true_suspect_index and not eval(statement)): count_of_truths += 1 if count_of_truths == 1: return f"The truth teller is {suspects[i]}" return "No solution found" statements = [ "not guilty_A", # Statement by A: It's not me. "guilty_C", # Statement by B: It was C who did it. "not(guilty_B)" # Statement by C: What B said is false. ] # Define variables based on assumptions about guilt. for combination in [(True, False, False), (False, True, False), (False, False, True)]: globals().update(dict(zip(['guilty_' + s for s in ['A', 'B', 'C']], combination))) result = find_truth_teller(statements) if result.startswith('The'): break print(result) ``` 这段代码定义了一个函数`find_truth_teller()`用于遍历所有可能的情况,并根据给定的陈述列表检查哪一种情况满足只有一个人说实话这一前提。终输出那个唯一讲实话的人是谁[^1]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值