名人问题 (Celebrity problem)

2023-11-14

问题:

在一个房间里有 N 个人,其中一个是名人,所谓名人就是大家都认识他,但是他不认识任何人。其它人可能认识房间里面另外的一部分人。你可以问任何人问题,但是问题只能是:你认识 X 吗,对方回答 Yes or No. 请问最少要问多少个问题才能把名人找出来?


分析:

我们把人编号,比如从1 到 N。

我们考虑最坏情况:你问每一个人是否认识 X ,如果大家都认识,那么 X 一定是名人,如果其中一个人说不认识,那么那个人一定不是名人。因为 X 的范围是 1 到 N, 所以,在最坏情况下,我们 要问 (N - 1)* N 个问题。


但是,有一种更好的方法。我们从1开始,依次问他是否认识他的下一个,比如 2, 如果 1 说认识,那么 1 一定不是名人,2 有可能是名人; 如果1 说不认识,2 一定不是名人,1 却有可能是名人。这是这个方法巧的地方。所以,不管1 回答是还是不是,我们都可以确定其中一个不是名人,然后,我们继续问 可能是名人那一位 是否认识 3, 然后依次下去,直到第 N 个人。这样我们就可以只要问 (N - 1) 个问题就可以把名人找出来。


转载请注明出处:http://blog.csdn.net/beiyeqingteng

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

名人问题 (Celebrity problem) 的相关文章

随机推荐

  • 【MySQL锁篇】一、MySQL当中有哪些锁

    本文为博主对于 小林coding 网站的学习笔记 详情请参考原网站 目录 全局锁 全局锁的使用 全局锁的应用场景 全局锁的缺点 比较高效的备份方式 表级锁 表锁 元数据锁 MDL MDL锁的设计初衷 MDL锁的工作场景 MDL锁 是在什么时
  • 华为OD机试 - 勾股数元组(Java)

    题目描述 如果3个正整数 a b c 满足a 2 b 2 c 2的关系 则称 a b c 为勾股数 著名的勾三股四弦五 为了探索勾股数的规律 我们定义如果勾股数 a b c 之间两两互质 即a与b a与c b与c之间均互质 没有公约数 则其
  • 【程序开发经验分享2024】计算机毕业设计吊打导师Python+Spark知识图谱课程推荐系统 课程预测系统 mooc慕课课程爬虫 课程大数据 课程数据分析大屏 大数据毕业设计 大数据毕设

    开发技术 前端 vue js 后端 springboot mybatis plus 数据库 mysql neo4j 算法 机器学习 深度学习 协同过滤算法 基于用户 基于物品全部实现 神经网络混合CF推荐算法 MLP深度学习算法 SVD深度
  • 【开源项目分享】GitHub中文排行榜 - 帮助你发现高分优秀中文项目-Java

    榜单设立目的 GitHub中文排行榜 帮助你发现高分优秀中文项目 各位开发者伙伴可以更高效地吸收国人的优秀经验 成果 中文项目只能满足阶段性的需求 想要有进一步提升 还请多花时间学习高分神级英文项目 榜单设立范围 设立1个总榜 所有语言项目
  • jenkins学习笔记第十篇下载Allure插件生成完美报告

    创建MAVEN项目 指定Maven仓库 指定分支 指定check out路径 构建执行 生成HTMLReport 生成报告 这里附加上自定义实现的监听类 public class ZTestReport implements IReport
  • Hadoop2.6(新版本)----MapReduce工作原理

    最近在研究Hadoop 发现网上的一些关于Hadoop的资料都是以前的1 X版本的 包括MapReduce的工作原理 都是以前的一些过时了的东西 所以自己重新整理了一些新2 X版本的MapReduce的工作原理 下面我画了一张图 便于理解M
  • Buncket Sort桶排序(c++)实现代码

    代码原理我就不说了 参考 算法导论 原书第三版 p112 直接上代码会不会很爽 ConsoleApplication1 cpp 定义控制台应用程序的入口点 This programme is designed to show the Bun
  • 并查集学习

    并查集 看的很好的博文 链接如下 https blog csdn net chen134225 article details 82052537 两个函数 1 查找 int pre 1000 int find int x 查找x的顶级 in
  • 上传视频至云端并在本地显示---记微信小程序云开发过程

    作者 大家好 我是alicomon 寄语读者 此篇博客为学习或开发记录 目的有二 1 记录知识点 方便温故知新 2 为自己和读者提供帮助 用于交流 共同提高 上传视频至云端并在本地显示 1 index wxml 2 index js 3 效
  • 配置Kettle连接大数据HDFS

    需求 配置Kettle连接大数据HDFS Kettle对接大数据平台的配置 一 软件环境 1 Hadoop集群 版本 Hadoop3 3 0 2 ETL工具Kettle 版本 pdi ce 7 0 0 0 25 解压命令 zip 用 unz
  • 【数据压缩】Exp05.JPEG解码

    实验原理 01 JPEG的编解码原理 输入图像的YUV数据先进行偏置 再将图片按8x8的块进行DCT变换编程8x8的系数块 接着再根据8x8的量化表对系数块进行量化 量化后的8x8的系数块需要对其进行不同的操作 其中左上角的直流系数进行 交
  • Python中将字典转换为字符串常用的方法!

    在Python中 字典是一种很常见的数据类型 其由一组键值对组成的无序集合 有时候需要将字典转换为字符串 以便于在网络传输 文件存储等场合使用 那么如何将字典转换为字符串格式呢 以下是详细的内容 1 使用json库 json是一种轻量级的数
  • thread创建线程的一些坑

    测试detach的坑 class A public int m i A int a m i a cout lt lt Construction lt lt endl A const A a m i a m i cout lt lt Copy
  • Nacos、Eureka和Zookeeper有什么区别

    Nacos Eureka和Zookeeper都是服务注册中心 它们的主要功能是管理分布式系统中各个微服务实例的注册与发现 它们之间的主要区别在于 1 语言支持 Nacos是用Java语言开发的 Eureka是用Java语言开发的 Zooke
  • Opencv4基于C++的 实时人脸监测

    文章目录 一 环境配置搭建 VS2015 Opencv4 6 二 下资源文件 第一种 本地生成 第二种 直接下载 三 代码展示 窗口布局 main cpp test h test cpp 效果图 opencv人脸识别效果图 请叫我真爱粉 一
  • 二进制部署高可用k8s集群

    一 前置知识点 1 1 环境准备 服务器要求 建议最小硬件配置 2核CPU 2G内存 30G硬盘 软件环境 软件 版本 操作系统 CentOS7 x x64 容器引擎 Docker CE 19 Kubernetes Kubernetes v
  • lambda

    外部变量访问方式说明符 不捕获任何变量 以引用方式捕获所有变量 用值的方式捕获所有变量 可能被编译器优化为const foo 以引用捕获foo 但其余变量都靠值捕获 foo 以值捕获foo 但其余变量都靠引用捕获 bar 以值方式捕获bar
  • 查看虚拟机CentOS7 的 IP 地址

    在CentOS7中我们不能输入ifconfig命令查看 而是要输入ip addr命令查看 此命令会出现3个条目 centos的ip地址是ens33条目中的inet值 发现 ens33 没有 inet 这个属性 那么就没法通过IP地址连接虚拟
  • Android 获取电池容量 mAh

    1 Java 反射获取电池容量 目前手机出厂下配置电池容量主要是通过修改 power profile xml 的电池容量参数 一般Google 默认配置为 1000 mAh 故只要是出货的手机一般都需要修改该值 我们可以直接导出 frame
  • 名人问题 (Celebrity problem)

    问题 在一个房间里有 N 个人 其中一个是名人 所谓名人就是大家都认识他 但是他不认识任何人 其它人可能认识房间里面另外的一部分人 你可以问任何人问题 但是问题只能是 你认识 X 吗 对方回答 Yes or No 请问最少要问多少个问题才能