蒙眼翻硬币
来源:互联网 发布:adhoc网络 编辑:程序博客网 时间:2024/05/01 17:56
问题描述
有四个硬币,正反面随机地放在正方形的四个角,像这样:
正 反正 反
蒙着眼,每次可以同时翻两个,请设计一个策略,使得4个硬币最后是同一面朝上。
分析
其实初始情况只有三种。
- 情况A 对角线相同
正 反反 正
- 情况B 有一个边相同
正 正反 反
- 情况C 三个正一个反。这种无论怎么翻都翻不赢。
正 正正 反
策略
第一步。翻对角线。如果成功,说明原来是对角线相同(情况A)。
正 反 -> 反 反反 正 反 反
第二步。翻对角线不成功,考虑情况B,翻对角线后,原来竖着的边相同会变成横着的边相同,原来横着的边相同会变成竖着的边相同。其实翻对角线并不会改变情况B,仍然是一个边相同。
2.1
正 正 -> 正 反反 反 正 反
或者
2.2
正 反 -> 反 反正 反 正 正
第三步。我再翻横着的一条边,有以下可能性:
3.1
正 正 -> 正 反 -> 正 反反 反 正 反 反 正
或者
3.2
正 反 -> 反 反 -> 反 反正 反 正 正 反 反
如果成功了,说明现在的情况是3.2,原来是情况2。如果失败了,有可能是情况3.1。
第四步。翻对角线,验证情况3.1。
正 正 -> 正 反 -> 正 反 -> 正 正反 反 正 反 反 正 正 正
如果是情况3.1,第四步后会成功。
如果依然不成功,说明一开始就是情况C,怎么翻都不会成功了。
0 0
- 蒙眼翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- 翻硬币
- Qt 下快速读写Excel指南
- 使用sshfs挂载远程主机文件到linux
- BSTR、CString、char*之间的互相转换
- 使用java语言生成二维码
- java层反编译
- 蒙眼翻硬币
- android studio 之完美修改包名
- CocoaPods错误:The dependency `xxx ` is not used in any concrete target
- vector使用排序函数实例
- 关于禁止直接url浏览网页,并3秒返回指定页面
- 配置管理-使用SVN创建分支
- 程序员到底该学什么
- (四)、ZooKeeper Java示例
- 一种新型双频双圆极化微带天线的设计