日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个题目详解(逻辑类型题2)

news2024/11/14 15:27:00

题目内容

题目日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。

以下为4个嫌疑犯的供词:

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说

已知3个人说了真话,1个人说的是假话。

现在请根据这些信息,写一个程序来确定到底谁是凶手。

题目分析

这是一道经典的逻辑推理问题,如果我们从数学的角度来分析,就是要寻找矛盾点相同点进而做出假设分析,在假设的前提下来推理。

例如 C和D两个选手有一处矛盾点就是:D是否是凶手,我们可以从这个点进行突破,假设D是凶手这个是对的,那我们就根据A和B的话来判断;假设D是凶手这个是错的,同理推测

如果我们从编程的角度来分析,我们就要先知道总共的可能性,把每一种可能考虑到。

思路一

这个的思路就是和我之前写的那个逻辑类型题1中的跳水运动员预测比赛结果排名次问题一样。每个abcd四个人要么为0,要么为1,通过四个循环得到所有的结果,

然后我们通过这四个人说的话将其翻译为代码,然后有一个人说谎那么他说的话得到的就是0;

其他人说的是真话得到的答案为1,那么四个表达式相加就为3

但是千万不能忘了凶手只有一个那么四个值相加就只能为1最后再通过f语句判断哪一个是1由此就能得到谁是凶手了。

思路二

每次假设一个人说了谎,4次循环

然后cd说话矛盾

fd为1则表示矛盾任然存在

为0则表示矛盾消失,

那么当在这四次循环中有谁满足了只有一个凶手且fd为0则就抓住了凶手。

代码展示

思路一

#include<stdio.h>
int main()
{
  int a = 0, b = 0, c = 0, d = 0;
  for (a = 0; a <= 1; a++)
  {
    for (b = 0; b <= 1; b++)
    {
      for (c = 0; c <= 1; c++)
      {
        for (d = 0; d <= 1; d++)
        {//上面的代码
          if ((a != 1) + (c == 1) + (d == 1) + (d != 1)==3)
          {
            if (a + b + c + d == 1)
            {
              if (a == 1)
                printf("a为凶手");
              else if (b == 1)
                printf("b为凶手");
              else if (c == 1)
                printf("c为凶手");
              else
                printf("d是凶手");
            }
          }
        }
      }
    }

    return 0;
  }
}

思路二

#include<stdio.h>
int main()
{
  int a=0, b=0, c=0, d=0, fd=0;
  int i = 0;
  for (i = 0; i < 4; i++)
  {
    if (i == 0)//假设a说的就是假话
    {
      a = 1; c = 1; d = 0; fd = 1;
    }
    if (i == 1)//假设b说的是假话
    {
      a = 0; c = 0; d = 0; fd = 1;
    }
    if (i == 2)//假设c说的是假话
    {
      a = 0; c = 1; d = 0; fd = 0;
    }
    if (i == 3)//假设d说的是假话
    {
      a = 0; c = 1; d = 1; fd = 0;
    }
    if ((a + b + c + d + fd == 1) && (fd == 0))//锁定唯一的凶手
    {
      printf("A是%d,B是%d,c是%d,d是%d\n", a, b, c, d);//这里结果为1的那个人就是凶手
    }
  }
  return 0;
}

结果展示

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/932052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VUE笔记(十)Echarts

一、Echarts简介 1、什么是echarts ECharts是一款基个基于 JavaScript 的开源可视化图表库 官网地址&#xff1a;Apache ECharts 国内镜像&#xff1a;ISQQW.COM x ECharts 文档&#xff08;国内同步镜像&#xff09; - 配置项 示例&#xff1a;echarts图表集 2、第一个E…

腾讯音乐财务前景疲软,股价上涨势头难以持续

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 市场对腾讯音乐第二季度财报反应积极 猛兽财经之前在2023年6月12日发表的一篇文章中就曾分析过腾讯音乐&#xff08;TME&#xff09;股票&#xff0c;我们当时分析了腾讯音乐2023年第一季度的财务业绩。根据S P Capital IQ…

[halcon] 局部图片保存 gen_circle 和 gen_rectangle2 对比 这怕不是bug吧

背景 我想实现一个功能&#xff0c;获取图片中瑕疵的位置&#xff0c;将瑕疵周边的一块区域抠图并保存。 上代码 一开始我代码这么写的&#xff1a; gen_circle (Rectangle, Row[i], Column[i], 256) reduce_domain(Image,Rectangle,GrayEllipse) crop_domain(GrayEllipse,…

Mybatis中实现动态SQL

目录 1 背景2 if判断2 choose(when,otherwise)选择分支进入3 where4 set5 trim6 foreach循环遍历7 小结 1 背景 不建议使用&#xff0c;但是有些需求又不得不用回来温习下。动态SQL语句,也就意味着SQL语句不在是一成不变的而是具有多样性. 2 if判断 if的用法还是跟平常差不多…

[论文阅读笔记26]Tracking Everything Everywhere All at Once

论文地址: 论文 代码地址: 代码 这是一篇效果极好的像素级跟踪的文章, 发表在ICCV2023, 可以非常好的应对遮挡等情形, 其根本的方法在于将2D点投影到一个伪3D(quasi-3D)空间, 然后再映射回去, 就可以在其他帧中得到稳定跟踪. 这篇文章的方法不是很好理解, 代码也刚开源, 做一…

Git工作流

实际开发项目使用到的分支: main&#xff1a;生产环境&#xff0c;也就是你们在网上可以下载到的版本&#xff0c;是经过了很多轮测试得到的稳定版本。 release&#xff1a; 开发内部发版&#xff0c;也就是测试环境。 dev&#xff1a;所有的feature都要从dev上checkout。 fea…

【C51 GPIO的原理和内部结构】

51单片机项目基础篇 中篇&#xff1a;介绍GPIO1、认识GPIO2、GPIO 结构框图与工作原理2.1、P0端口结构框图与工作原理2.1.1、剖析组成 P0 口的每个单元的作用2.1.2、 P0 口做为 I/O 口及地址/数据总线使用时的具体工作过程 2.2、P1 端口结构框图与工作原理2.3、P2 端口结构框图…

求生之路2社区服务器sourcemod安装配置搭建教程centos

求生之路2社区服务器sourcemod安装配置搭建教程centos 大家好我是艾西&#xff0c;通过上文我们已经成功搭建了求生之路2的服务端。但是这个服务端是纯净的服务端&#xff0c;就是那种最纯粹的原版。如果想要实现插件、sm开头的命令等功能&#xff0c;需要安装这个sourcemod。…

JavaScript(笔记)

目录 Hello World JavaScript 的变量 JavaScript 动态类型 隐式类型转换 JavaScript 数组 JavaScript 函数 JavaScript 中变量的作用域 对象 DOM 选中页面元素 事件 获取 / 修改元素内容 获取 / 修改元素属性 获取 / 修改 表单元素属性 获取 / 修改样式属性 新…

如何可以管理监督员工工作微信?

自从微信管理系统研发上线之后&#xff0c;为了各企业带来了福音。 很多用户企业都是这样评论微信管理系统的&#xff1a;员工的所有微信聊天记录后台都可以清楚明了的看到&#xff0c;聊天记录都是永久保存的&#xff0c;不担心员工在手机上把聊天记录删除&#xff0c;杜绝员…

基于黑猩猩算法优化的BP神经网络(预测应用) - 附代码

基于黑猩猩算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于黑猩猩算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.黑猩猩优化BP神经网络2.1 BP神经网络参数设置2.2 黑猩猩算法应用 4.测试结果&#xff1a;5.Matlab代…

MyBatis 的关联关系配置 一对多,一对一,多对多 关系的映射处理

目录 一.关联关系配置的好处 二. 导入数据库表&#xff1a; 三. 一对多关系&#xff1a;-- 一个订单对应多个订单项 四.一对一关系&#xff1a;---一个订单项对应一个订单 五.多对多关系&#xff08;两个一对多&#xff09; 一.关联关系配置的好处 MyBatis是一…

Java——它要求用户输入一个整数(实际上是一个字符串),然后计算该整数的平方值,并将结果输出。

这是一个Java程序&#xff0c;它要求用户输入一个整数&#xff08;实际上是一个字符串&#xff09;&#xff0c;然后计算该整数的平方值&#xff0c;并将结果输出。程序的基本流程如下&#xff1a; 首先&#xff0c;声明并初始化变量data和result&#xff0c;它们的初始值都为…

咸鱼之王俱乐部网站开发

我的俱乐部 最新兑换码 *注意区分大小写&#xff0c;中间不能有空格&#xff01; APP666 HAPPY666 QQ888 QQXY888 vip666 VIP666 XY888 app666 bdvip666 douyin666 douyin777 douyin888 happy666 huhushengwei888 taptap666 周活动 宝箱周 宝箱说明 1.木质宝箱开启1个…

Netty入门学习和技术实践

Netty入门学习和技术实践 Netty1.Netty简介2.IO模型3.Netty框架介绍4. Netty实战项目学习5. Netty实际应用场景6.扩展 Netty 1.Netty简介 Netty是由JBOSS提供的一个java开源框架&#xff0c;现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具&…

nuxt.js框架使用swiper的5.4.5版本记录,创建广告位幻灯片

nuxt依赖 “nuxt”: “^2.15.8”, “swiper”: “^5.4.5”, “vue”: “^2.7.10”, “vue-awesome-swiper”: “^4.1.1”, 需要完成的效果是 参考地址&#xff1a;https://3.swiper.com.cn/demo/pcSlide/ nuxt代码&#xff1a; <template><div class"page&quo…

基于AI + Milvus Cloud拓展更多、更丰富的AI应用场景

项目后续:探索更多应用场景 欢迎大家基于本项目拓展更多、更丰富的应用场景,例如: 进一步延伸对比功能,例如将不同的单品归类到一起。同样,也可以上传更多图像到数据库中,丰富查询结果。 将本项目转变为时尚探测仪或者时尚推荐系统。例如,将明星图像替换成可购买的…

软件开发的201个原则 阅读笔记 第172-201个原则

目录 原则172 做项目总结 第8章 产品保证原则 原则173 产品保证并不是奢侈品 原则 174 尽早建立软件配置管理过程 原则175 使软件配置管理适应软件过程 原则176 组织SCM 独立于项目管理 原则 177 轮换人员到产品保证组织 给所有中间产品一个名称和版本 原则179 控制基准 原则…

五、多表查询-4.1子查询和分类

一、概念 SQL语句中嵌套select语句&#xff0c;成为嵌套查询&#xff0c;又称子查询。 子查询外部的语句 可以是 insert / update / delete / select 的任何一个。 二、子查询分类 1、根据子查询结果不同 标量子查询&#xff08;子查询结果为单个值&#xff09;、列子查询&a…

Xmind软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 XMind是一款非常流行的思维导图软件&#xff0c;可以帮助用户创建清晰、美观的思维导图&#xff0c;用于记录、整理思维和团队协作。以下是关于XMind软件的详细介绍。 1、XMind的历史和演变 XMind是由北京心图科技有限公司开发…