上周看到刘谦在表演“读心术”。

表演方式如下:

1. 让嘉宾心里默想一个数字,在0-63之间。

2. 依次给嘉宾看六张牌,每张牌上有若干个数字(我猜想是32个)。

3. 让嘉宾回答,心理默想的数字有没有在扑克牌上。

4. 六张牌看完,刘谦写出一个数字,然后让嘉宾说出心里默想的数。

5. 吻合,掌声雷动。

我看了之后,挺晕的……看来术业有专攻……这么简单的二进制问题,也能拿来做魔术表演。

于是写了个程序来模拟刘谦的魔术,变给老婆看……

1 import sys
2
3 NUM = 6
4 LINE_NUM = 70
5
6 maxMargin = 1 << NUM
7 numList = range(0, maxMargin)
8
9 resultNum = 0
10
11  for x in range(0, NUM):
12 print "=" * LINE_NUM
13 tmpSet = set([(tmpNum | 1 << x) for tmpNum in numList])
14 for (tmpNum, tmpCount) in zip(list(tmpSet), range(1, len(tmpSet) + 1)):
15 sys.stdout.write("%d\t" % tmpNum)
16 if tmpCount % 8 == 0:
17 print ""
18 print "=" * LINE_NUM
19 print ""
20
21 tmpStr = raw_input("Is the number in list? n(y/n)?\n")
22 tmpStr = tmpStr.strip()
23 if (tmpStr == "y"):
24 resultNum += 1 << x
25
26  print "The number is: %d" % resultNum

运行结果如下:(老婆心里默想的是17)

$ python guessNumberMagic.py
======================================================================
1 3 5 7 9 11 13 15
17 19 21 23 25 27 29 31
33 35 37 39 41 43 45 47
49 51 53 55 57 59 61 63
======================================================================

Is the number in list? n(y/n)?
y
======================================================================
2 3 6 7 10 11 14 15
18 19 22 23 26 27 30 31
34 35 38 39 42 43 46 47
50 51 54 55 58 59 62 63
======================================================================

Is the number in list? n(y/n)?
n
======================================================================
4 5 6 7 12 13 14 15
20 21 22 23 28 29 30 31
36 37 38 39 44 45 46 47
52 53 54 55 60 61 62 63
======================================================================

Is the number in list? n(y/n)?
n
======================================================================
8 9 10 11 12 13 14 15
24 25 26 27 28 29 30 31
40 41 42 43 44 45 46 47
56 57 58 59 60 61 62 63
======================================================================

Is the number in list? n(y/n)?
n
======================================================================
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
======================================================================

Is the number in list? n(y/n)?
y
======================================================================
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
======================================================================

Is the number in list? n(y/n)?
n
The number is: 17

果然猜出来了,老婆说没有脑筋急转弯好玩……

心里拔凉拔凉的……

转载于:https://www.cnblogs.com/maodouzi/archive/2011/07/12/2104005.html

Python趣味编程(一)破解刘谦的“读心术”(原创)相关推荐

  1. python趣味编程10例-Python趣味编程 20行代码实现读心术

    秘读心术 这是一个吉卜赛人古老的神秘读心术,它能测算出你内心的感应.百试不爽,非常的可怕.在心中从10~99之间任意挑选一个数,用这个数先减去它自己的十位数再减去它的个位数,得到最终的数.在图表中找出 ...

  2. python趣味编程表白_【暖心一笑】Python趣味编程:定时给Ta讲笑话

    原标题:[暖心一笑]Python趣味编程:定时给Ta讲笑话 大四的生活就是这么无聊,我琢磨着也学了这么多东西了,为啥不能用自己的知识来给生活找点乐子呢?我想反正每天都要给Ta问候一声早安,为何不同时讲 ...

  3. python趣味编程10例-python趣味编程100例(99个)

    [实例简介] python如今很流行,AI的首选工具:python趣味编程100例(99个),学习编程不枯燥. [实例截图] [核心代码] python趣味编程100例(99个) └── python ...

  4. python趣味编程10例-Python趣味编程与精彩实例

    Python趣味编程与精彩实例 共19 章,前12章主要以Python 基础知识如文件创建.输出与变量.输入与判断.运算符和循环.列表和字典.函数编程.pygame的各种知识为主,13-19章则以游戏 ...

  5. python录入学生信息网_干货满满 | Python趣味编程教学实践

    Python趣味编程教学实践 近几年间,Python 的火热有目共睹,在IEEE Spectrum 2020 编程语言 Top 10排行榜中,Python位居第一.这是因为Python 与人工智能.机 ...

  6. python精彩编程200例-python趣味编程100例(99个)

    [实例简介] python如今很流行,AI的首选工具:python趣味编程100例(99个),学习编程不枯燥. [实例截图] [核心代码] python趣味编程100例(99个) └── python ...

  7. python精彩编程200例-Python趣味编程与精彩实例

    Python趣味编程与精彩实例 共19 章,前12章主要以Python 基础知识如文件创建.输出与变量.输入与判断.运算符和循环.列表和字典.函数编程.pygame的各种知识为主,13-19章则以游戏 ...

  8. python趣味编程100例-儿童Python趣味编程课程

    儿童Python趣味编程课程 南京杜恩培训隶属于南京卡尔威特教育咨询有限公司,秉承"以人为本"的办学宗旨,致力于给每一位前来学习的学员专业优质的服务.中心成立于2002年,在南京已 ...

  9. 小学生python趣味编程-【少儿编程】python趣味编程第二课:写文字

    python趣味编程第二课:本文仅针对8-16岁的青少年,所以流程是按如何去教好中小学生走的,并不适合成人找工作学习,因为进度也是按照青少年走的 大家好,我是C大叔,上一篇文章已经跟大家介绍了一款开发 ...

  10. python趣味编程与精彩实例-python趣味编程100例(99个)

    [实例简介] python如今很流行,AI的首选工具:python趣味编程100例(99个),学习编程不枯燥. [实例截图] [核心代码] python趣味编程100例(99个) └── python ...

最新文章

  1. VTK:可视化之RenderLargeImage
  2. QSplitter分割器窗口比例设定
  3. leetcode 547. 省份数量(bfs)
  4. hibernate 多条件组合查询之sql拼接
  5. 音视频开发(23)---音视频直播技术--10分钟搭建好直播平台
  6. linux的帮助命令有,Linux帮助命令有哪些
  7. 51nod 1605:棋盘问题
  8. iphone编辑过的录音怎么还原_ios录音误剪怎么恢复
  9. SHT20读取温湿度,基于cubemx
  10. linux中安装微信开发者工具
  11. Linux命令--god
  12. 考勤登记管理系统(参考答案)
  13. C#,欧拉数(Eulerian Number)的算法与源代码
  14. 企业上云,打造数字经济新动能
  15. 一文读懂深度学习与机器学习的差异
  16. MATLAB动画绘制
  17. sklearn.metrics.pairwise.paired_distances
  18. python子域名扫描脚本
  19. 如何掌控工作节奏感?
  20. 进阶无人驾驶—百度Apollo规划技术介绍

热门文章

  1. CAN总线设计---CAN节点的电容、CAN终端电阻、CAN总线共模电感/共模扼流圈
  2. 51单片机定时器扫描按键
  3. Matlab与外部接口:MAT文件基础
  4. 基于WEB的高校校车管理系统设计与实现
  5. Python abaqus实现二维裂纹扩展(XFEM)
  6. 安卓设备互相投屏_【安卓投屏下载】安卓投屏软件下载 v6.6.3 电脑版-七喜软件园...
  7. 2022年最新整理,动力节点Java自学全套资源
  8. Ubuntu 20.10 安装五笔输入法
  9. H5唤醒本地APP(谷歌地图、百度地图等相通)传递数据
  10. ip查询是什么地区的宽带