该算法来源于我研究生课堂上,老师提出的一讨论题:

假设教室有一开关,现有100人,他们必须设计一个规则,利用该开关确定所有的人都进入过教室,所有人在设计好规则后都不允许再接触共享信息,且每个人被叫入教室的时机和次数都是随机的。

场景一:假设教室的开关的状态一开始为off(两种状态,off和on)

思路:从100个人中选择一个人进行计数,并且只有计数的人才能关闭按钮,其他非计数人如果进入该教室,有三种选择:

1.如果发现开关处于on状态就什么也不做直接出去

2.如果发现开关处于off状态且自己为第一次进入教室则将开关打开

3.如果发现开关处于off状态且自己为非第一次进入教室则直接离开教室

最终直至计数人确定已关闭由其他人开启的99次开关后,报告所有人已全部进入过房间。

场景二:假设教室的开关一开始状态不知

思路:仍然从100个人中选择一个人进行计数,并且只有计数的人才能关闭按钮,此时其他非计数的人需都按两次开关,有种选择:

1.如果发现开关处于on状态就什么也不做直接出去

2.如果发现开关处于off状态且自己为第一次进入教室则将开关打开

3.如果发现开关处于off状态且自己为第二次进入教室则将开关打开

4.如果发现开关处于off状态且自己已两次进入教室则直接离开教室

最终直至计数人确定已关闭198次开关后,报告所有人已全部进入过房间。

该算法为课堂小游戏,觉得这个比较有趣,就把其记录下来,一开始大家讨论的时候都说要七个开关,老师说一个的时候大家都炸了,不过如果真只有一个开关,这个游戏得花不少时间。

算法:根据一个开关确定一百人是否都进入过房间相关推荐

  1. 每一个搞爬虫的人,都应该知道的神器!

    大家好~作为一个爬虫小菜鸟,一般爬的网站都是比较简单. 也就是先F12接口抓包,再requests爬取. 往往还需要复制header.Cookie等. 太麻烦了,对于我们来说,有没有更简单的办法呢? ...

  2. Jcseg是基于mmseg算法的一个轻量级Java中文分词器

    Jcseg是基于mmseg算法的一个轻量级中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了一个基于Jetty的web服务器,方便各大语言直接http调用,同 ...

  3. 为什么edge AI是一个无需大脑的人

    为什么edge AI是一个无需大脑的人 Why edge AI is a no-brainer 德勤预计,到2020年,将售出超过7.5亿个edge AI芯片,即在设备上而不是在远程数据中心执行或加速 ...

  4. 64% 的企业未实现智能化,5成公司算法工程师团队规模小于 10人,AI 工程师的机遇在哪里?...

    整理 | 夕颜 责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 当前,人工智能技术已应用于各行各业,落地成为大家关注的核心问题. 在经历了 2019 年的行业低谷期之后,无论是行业巨头 ...

  5. 一个互联网「打工人」的卑微一天

    大家好,我是「打工人」安酱.午安!打工人! 今天是一年一度的程序员日,但是老天也给我们开了一个玩笑,2020-1024=996.冥冥之中在暗示着什么,但是好像也没啥办法.另外,不知道最近大家有没有被「 ...

  6. 判断大小简单算法_算法浅谈——人人皆知却很多人写不对的二分法

    本文首发于公众号:TechFlow 1 二分法可以说是鼎鼎大名,哪怕是没有学过编程的同学,也许说不上来二分法这个名字,但是对于其中的精髓应该都是有所了解的.不了解的同学也没关系,我一句话就能交代清楚: ...

  7. 作词家下岗系列:教你用 RNN 算法做一个写词软件

    作者 | 李秋键 编辑 | Carol 出品 | CSDN(ID:CSDNnews) 自然语言处理作为人工智能的一个重要分支,在我们的生活中得到了广泛应用.其中RNN算法作为自然语言处理的经典算法之一 ...

  8. 64% 的企业未实现智能化,5 成公司算法工程师团队规模小于 10人,AI 工程师的机遇在哪里?...

    整理 | 夕颜 责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 当前,人工智能技术已应用于各行各业,落地成为大家关注的核心问题. 在经历了 2019 年的行业低谷期之后,无论是行业巨头 ...

  9. 数据结构与算法笔记:计算思维之人鬼渡河问题

    人鬼渡河问题 1 ) 问题描述 目标:将东岸的3人3鬼通过一只小船安全转移到西岸,希望摆渡次数尽可能少 条件 船的容量有限,一次最多只能坐2人(或2鬼或1人1鬼) 无论是在河的东岸还是在河的西岸,一旦 ...

最新文章

  1. python 批量下载 代码_Python + Selenium +Chrome 批量下载网页代码修改
  2. Python游戏开发,Pygame模块,Python从零开始带大家实现一个魔塔小游戏
  3. 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览
  4. WPF 仿QQ登录框翻转效果
  5. Spring再次涵盖了您:继续进行消费者驱动的消息传递合同测试
  6. python学习感悟第3节
  7. jquery easy ui 1.3.4 窗口,对话框,提示框(5)
  8. 《统计学习方法》代码全解析——第十一部分条件随机场
  9. 挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?
  10. 未格式化的硬盘识别失败
  11. ps盖印图层在哪里_盖印图层在哪
  12. 单点登录: 企业微服务架构中实现方案-上篇
  13. SQL中Date 函数
  14. c语言void要用什么头文件,什么是C语言头文件?
  15. 不可混为一谈 说说数字机顶盒与网络机顶盒
  16. 阿里云配置域名CDN加速
  17. oracle 里sum(0),sum(1) ,sum(2) ,sum(num) over,count(*) over() ,coun(*),count(1)
  18. word中插入图片,转pdf后,打印的图片出现阴影模糊的问题及处理办法
  19. 【观察】不断打破手机行业创新边界,三个维度解读vivo NEX双屏版
  20. cadence 常见pcb电阻_利用Cadence PCB SI分析特性阻抗变化因素

热门文章

  1. node の SQLite
  2. hive CLI、hwi、beeline、hiveserver、hiveserver2之间的关系
  3. STM32之485通信(RS485串口编程)
  4. geolocation.js
  5. JESD204接口调试总结——JESD204C协议的介绍
  6. bp前向传播和反向传播举例
  7. 【计算机网络】传输层主要作用和功能简述
  8. 计算机一级考试wps应用题库,一级计算机基础及WPS Office应用考前练习题
  9. matlab 保存三维矩阵,如何以Python语法读取Matlab中保存的三维矩阵(Dicom矩阵)?...
  10. Haplotype-aware genotyping from noisy long reads 单倍型识别的基因分型来自嘈杂的长读