训练趣题:黑与白 有A、B、C、D、E五人,每人额头上都帖了一张黑或白的纸。(此处用javascript实现)...
今天的题目原题是这样的:
“
黑与白:
有A、B、C、D、E五人,每人额头上都帖了一张黑或白的纸。五人对坐,每人都可以看到其它人额头上的纸的颜色。五人相互观察后,
A说:“我看见有三人额头上帖的是白纸,一人额头上帖的是黑纸。”
B说:“我看见其它四人额头上帖的都是黑纸。”
C说:“我看见一人额头上帖的是白纸,其它三人额头上帖的是黑纸。”
D说:“我看见四人额头上帖的都是白纸。”
E什么也没说。
现在已知额头上帖黑纸的人说的都是谎话,额头帖白纸的人说的都是实话。问这五人谁的额头是帖白纸,谁的额头是帖黑纸?
“
这个问题跟上一篇的“谁说谎”原理是一样的。
“无论谁都有 黑 跟 白 两种可能”
那我们就能确定有 5 个for进行循环嵌套
for(var A = 0 ;A<=1;A++) {for(var B = 0 ;B<=1;B++){for(var C = 0 ;C<=1;C++){for(var D = 0 ;D<=1;D++){for(var E = 0 ;E<=1;E++){//逻辑判断的代码在这里 }}}} }
接下来我们一句一句的分析:
A说:“我看见有三人额头上帖的是白纸,一人额头上帖的是黑纸。”
那么,A 是白纸的话 有 A==(B+C+D+E==3)==true 如果 A 是黑纸 ,
那 A==(B+C+D+E==3) 依然成立,只是 此时为 A==(B+C+D+E==3)== false 而已 ,所以 我们写 A==(B+C+D+E==3)
B说:“我看见其它四人额头上帖的都是黑纸。”
意思是 B 等于1 的话 B==(A+C+D+E ==0)==true B 不等于 1 的时候也都变为 false 所以也可以写成 B==(A+C+D+E ==0) 或者 B==!(A||C||D||E)
C说:“我看见一人额头上帖的是白纸,其它三人额头上帖的是黑纸。”
同 A 的道理 有 A==(B+C+D+E==3)
D说:“我看见四人额头上帖的都是白纸。”
这里可以写成 D==(A+B+C+E==4) 或者 D==(A&&B&&C&&E)
最后得到的代码是这样的:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script> for(var A = 0 ;A<=1;A++) {for(var B = 0 ;B<=1;B++){for(var C = 0 ;C<=1;C++){for(var D = 0 ;D<=1;D++){for(var E = 0 ;E<=1;E++){if((B==!(A||C||D||E))&&(D==(A&&B&&C&&E))&&(C==(B+A+D+E==1))&&(A==(B+C+D+E==3)))alert("a:"+A+"b:"+B+"c:"+C+"d:"+D+"e:"+E);}}}} }</script>
结果 是 : C和E 是白纸,其它的是黑纸
ps:现在越想越觉得自己是有多蠢啊,明明很简单却花了挺长的时间来做,都有点想放弃做程序员的念头了
转载于:https://www.cnblogs.com/mengtree/p/5259784.html
训练趣题:黑与白 有A、B、C、D、E五人,每人额头上都帖了一张黑或白的纸。(此处用javascript实现)...相关推荐
- c语言编程判断谁说谎,c语言训练题:关于张三李四王五说谎的问题(此处用javascript实现)...
(第一篇博文) 今天在一个交流群里见他们无聊,然后找到之前收藏的一些c语言题目放出去想让他们做,结果反倒是自己不会做,于是花了很多时间去想. 原题:张三说李四在说谎,李四说王五在说谎,王五说张三和李四 ...
- LeetBook《程序员的算法趣题》Q18---水果酥饼日
<程序员的算法趣题>-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言. Q18 水果酥饼日 日本每月的 22 日是水果酥 ...
- 《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q13)
<程序员的算法趣题>-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言.有兴趣的同学,可以购书阅读~ 在此更新个人编写的Pyt ...
- 逻辑思维训练500题(带答案)前237题 文末附完整版PDF
第一章 假设法 一个真实的假设往往可以让事实呈现眼前,让真理浮出水面.一个人如果做什么事都可以让其思维以这些假设前提为基础,那么他便能真真正正地活在NLP里而不会陷入困境,他的人生也就会有更大地进步和 ...
- 趣题:求两圆柱相交部分的体积
昨天去图书馆看趣味数学大师马丁加德纳的小册子<意料之外的绞刑>,看到了这个趣题:求两圆柱相交部分的体积(两圆柱半径都为1)(正交).要求是不用微积分,只用高中生就能看懂的简单数学.如果你难 ...
- 《新知客》趣题专栏 2010.07
从本月起,我开始在<新知客>杂志上主持一个趣题栏目.每月杂志发行后,我将在 Blog 上同步更新. 推理: 1. 老王熬夜工作到凌晨 2 点多时,实在不行了,倒在床上就开始呼呼大睡.睡觉前 ...
- 《新知客》趣题专栏2010.08
目前,我正在<新知客>杂志上主持一个趣题栏目.每月杂志发行后,我将在 Blog 上同步更新.点击 这里 可以查看往期题目. 推理 1. 下一个图形是什么? 2. 小 A 和小 B 玩游戏. ...
- 100%的程序员都想挑战的算法趣题!| 码书
计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,"算法" ...
- 我敢打赌,这是98%的程序员都想挑战的算法趣题!
计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,"算法" ...
- 100% 的程序员都想挑战的算法趣题!
作者 | 图小敏 计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,&quo ...
最新文章
- 计算机视觉算法工程师(旷视、商汤、智云、海康)面试总结
- STM32向量表详细分析
- oracle 11g 环境,Linux彻底清理Oracle 11g RAC环境方案
- 日志中的秘密:Windows登录类型
- 深层神经网络——多层网络解决异或运算
- 给还是不给?又一个国家要求苹果必须为iPhone 12提供充电器
- 访问控制权限和 ------java命名规范
- VB6(Fast Report Studio 4.6.80)
- PAIP.WEB程序网站安全扫描检测工具(桌面程序)总结
- Python 计算彩色图像信噪比
- nginx 下配置禅道
- STM32制作FLASH字库
- c语言万花筒,C/C++——元胞自动机万花筒
- 批量注册阿里云备案域名
- 连接可用AP,提示“已连接,但无法访问互联网”,过一会变成“网络连接受限”,实际可以上网
- maxwell deamon 监听mysql binlog 二进制文件实现数据同步到
- MCU-LCD屏与RGB-LCD屏的区别?
- Python——describe函数值输出含义/分位值的计算和含义
- 【C++】入门第一课
- 现在QQ上的那些“黑客”们