测出你的姓氏--算命先生的“算法”分析
来源:互联网 发布:网络上睿智是什么意思 编辑:程序博客网 时间:2024/04/28 17:24
在农村或者小城镇生活的人可能都见过这样一种算命的,他首先会给你8张卡片,上面写满了姓氏,让你从里面找出有你自己姓氏的卡片,当你把所有自己姓氏的卡片给他的时候,他竟然会一口说出你的姓氏。然后你就会相信他后面所说的所有话,当然,拿钱也是毫不犹豫的事情了。
不过,只要是读过书的人都知道,这肯定是骗人的,都明白这个道理很简单,不就是在几张卡片中找出相同的姓氏,而且这些卡片中有且仅有一个姓氏是同时存在的。但是,大家有没有想过,一个卡片上有三四十个姓氏,你给他拿去的可能加起来就是100好几个姓氏,他是怎样一眼就看出来的呢?当然,这个也不是难题,不就是给每个卡片、每个姓氏加一个唯一的标示嘛,但仔细一样,要怎样加这个标示呢?又怎么样来快速的辨认这些标示呢?
学过计算机的人可能一下子就明白了,“二进制”,或许能帮我们解决这个问题。大家都知道一个4位的二进制可以表示16以内任意一个十进制数,那么5位,6位...11111111这个8位的二进制数相当于10进制的255,也就是说一个8位的二进制数可以表示255以内的任意一个十进制数值。那么,我们就不难想到,取出他们的权值“1,2,4,8,16,32,64”,那么255以内的任意一个10进制数值都可以通过这8个数值中的任意个数想加得到。比如说:我们分别为8张卡片(假设为:A1,A2,A3,A4,A5,A6,A7,A8)分配上述8个数值。然后为所有姓氏分配一个唯一的大于0的数值。比如有:赵(1),钱(5),孙(14),李(43),王(90),卢(104)那么我们可以得到如下集合
A1=“赵,钱,李”;
A2=“孙,李,王”;
A3=“钱,孙”;
A4=“孙,李,王,卢”;
A5=“王”;
A6=“李,卢”;
A7=“王,卢”;
如果你是个要算命的,你给我拿来A1,A3卡片,我可以很快的算出:1+4=5,既“钱”;拿来A4,A6,A7,那就是“8+32+64=104” 既“卢”。异词类推,想必大家都已经豁然开朗。如果想通过计算机实现此功能也就相当简单了,只是对每个姓氏对应的数值转换成2进制,然后根据它的权值就可以确定这个字应该放在那些卡片里,然后把选出的卡片的值想加,再查询响应的姓氏就搞定了。
由此我们可以清楚的认识到,不管是算命还是魔术或者其他,“骗人”只是众人的一种叫法,其实,它只是科学知识的另一种用途而已,所以,不管遇到什么让我们难以想象的事情,如果仔细想想,或许能通过自己所学来揭开它的迷团
不过,只要是读过书的人都知道,这肯定是骗人的,都明白这个道理很简单,不就是在几张卡片中找出相同的姓氏,而且这些卡片中有且仅有一个姓氏是同时存在的。但是,大家有没有想过,一个卡片上有三四十个姓氏,你给他拿去的可能加起来就是100好几个姓氏,他是怎样一眼就看出来的呢?当然,这个也不是难题,不就是给每个卡片、每个姓氏加一个唯一的标示嘛,但仔细一样,要怎样加这个标示呢?又怎么样来快速的辨认这些标示呢?
学过计算机的人可能一下子就明白了,“二进制”,或许能帮我们解决这个问题。大家都知道一个4位的二进制可以表示16以内任意一个十进制数,那么5位,6位...11111111这个8位的二进制数相当于10进制的255,也就是说一个8位的二进制数可以表示255以内的任意一个十进制数值。那么,我们就不难想到,取出他们的权值“1,2,4,8,16,32,64”,那么255以内的任意一个10进制数值都可以通过这8个数值中的任意个数想加得到。比如说:我们分别为8张卡片(假设为:A1,A2,A3,A4,A5,A6,A7,A8)分配上述8个数值。然后为所有姓氏分配一个唯一的大于0的数值。比如有:赵(1),钱(5),孙(14),李(43),王(90),卢(104)那么我们可以得到如下集合
A1=“赵,钱,李”;
A2=“孙,李,王”;
A3=“钱,孙”;
A4=“孙,李,王,卢”;
A5=“王”;
A6=“李,卢”;
A7=“王,卢”;
如果你是个要算命的,你给我拿来A1,A3卡片,我可以很快的算出:1+4=5,既“钱”;拿来A4,A6,A7,那就是“8+32+64=104” 既“卢”。异词类推,想必大家都已经豁然开朗。如果想通过计算机实现此功能也就相当简单了,只是对每个姓氏对应的数值转换成2进制,然后根据它的权值就可以确定这个字应该放在那些卡片里,然后把选出的卡片的值想加,再查询响应的姓氏就搞定了。
由此我们可以清楚的认识到,不管是算命还是魔术或者其他,“骗人”只是众人的一种叫法,其实,它只是科学知识的另一种用途而已,所以,不管遇到什么让我们难以想象的事情,如果仔细想想,或许能通过自己所学来揭开它的迷团
- 测出你的姓氏--算命先生的“算法”分析
- 准确测出你的年龄
- 巴贝奇的困境 by: 天涯ID--先生会算命V1
- 查看你的姓氏排名和姓氏来源
- 9个字中能测出你心仪的人啥时出现?
- 电脑算命和八字算命的区别
- 算命的科学性
- 姓氏的来历
- 姓氏的来历
- 姓氏的联想
- 日本人姓氏的由来
- hnldysf先生的身份分析
- 拍照方式测出你的性格!带照片去相亲。你会选:
- 量手知姓氏 :算命测姓氏 之 数学原理
- 微信好友数据统计,能测出删除你的好友
- 容易读错的姓氏
- 中国姓氏的日语发音
- 取得姓氏的拼音索引
- 卸掉stdup.dll的方法,这是个广告自动弹出的垃圾
- test
- SOA的业务分析做出来了 ----苏振兴
- javascript调试经验
- SOA 资料
- 测出你的姓氏--算命先生的“算法”分析
- 争议话题:选择JSF不选Struts的十大理由
- JSF与Struts的异同
- 开发客户兴趣而非工作原理
- 各大网站所用的操作系统与Web服务器
- 做人学佛百句良言
- JSP从WebService取天气预报数据,很精简的代码[效果图]。
- xPath常用语法实例版
- Tomcat配置MySQL JDBC数据库连接池