猜猜世界上哪个国家的人民最早使用姓和名?对,没错!就是中国。中国人早在上古时代就有了姓和名,比如周王的姓就是‘姬’。而日本人直到明治维新之后才有姓。在这之前,日本人只有名没有姓。当时由于政府催得紧,很多日本人只能待在哪里就用哪里的位置随便给自己取个姓。比如田中、井上、渡边、松下、山口、山田、川口、河野、东条、御手洗(即厕所)等。所以日本以区区2亿多人口居然拥有10万多姓,真是令人叹为观止啊!

关于姓氏,我给大家讲个故事啊:那还是我当学生的时候,有一天在学校附近的马路菜场上闲逛。忽然听到一个算命老者高声招揽生意——不要觉得奇怪啊,不要说20多年前,就是现在在七宝,你还能看到算命摊子,常有漂亮女生羞答答地伸手让人算命。老者说他是一个神算子,测事业姻缘前途祸福能生几个娃无一不准。有好事者不信,问他能否猜出我姓什么?只见老者拿出几张纸来,每张纸上密密麻麻地写满了各种姓氏(比如赵钱孙李什么的)。他说只要你告诉他你的姓在哪几张纸上出现过,他就能猜出你的姓。好事者上前实验,告诉老者自己的姓在这张、这张、这张纸上出现过。老者立刻报出他的姓氏。现在问题来了:你能想出老者是怎么做到的吗?当然,虽然算命是一种迷信,但猜姓氏他的确没有作弊。

答案:这是一个很典型的二进制编码问题。以百家姓为例,“赵钱孙李周吴郑王......“,可以分别编码为1、2、3、4、5、6、7、8.....。但是这是十进制编码,如果改成等价的二进制,就分别是1、10、11、100、101、110、111、1000......。为了便于比较,我们把这些二进制编码都转成4位的,并且一行一个排列:

1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111

为了简单起见,我们只对前15个姓氏编码。然后我们就可以按照这个二进制编码的每一位把每个姓氏写到对应的纸上即可。比如“赵”的编码是0001,这说明“赵”只需出现在第四张纸上,而前三张纸上不出现“赵”。“陈”的编码是1010,这说明,“陈”只需出现在第一张和第三张纸上即可。所以只要纵向沿着二进制的第1位读每一个二进制编码,就可以得到第一张纸上的姓氏。第二、第三和第四张纸上的姓氏依此类推。最终结果如下:

第一张纸:王 冯 陈 褚 卫 蒋 沈 韩
第二张纸:李 周 吴 郑 卫 蒋 沈 韩
第三张纸:钱 孙 吴 郑 陈 褚 沈 韩
第四张纸:赵 孙 周 郑 冯 褚 蒋 韩

这样,当人们报出自己的姓在哪些纸上出现时,老者就可以把这些信息换成二进制编码,进而”算“出人们的姓氏。比如姓氏在第二、第三和第四张纸上出现过,则编码是0111,即第7个姓,也就是郑。

世界上还有人以“厕所”为姓,都知道是哪国人相关推荐

  1. 被阿里舍弃,2020年了,还有人在迷恋Oracle数据库?

    数据库领域,有曾经被誉为地球最强的--Oracle数据库. 注意,这里说的是Oracle数据库,并非Oracle公司.在Oracle数据库最为顶峰的时候,世界500强.互联网公司.业界的DBA码农们, ...

  2. 完美,这个世界上根本就没有完美的东西

    序言 风的形态...你追求风,风就在哪里,等你到了,风又换了一种形态... 银弹不存在,完美,也同样不会存在...只会在无穷大的时候趋近于完美... 风言风语 幻象...很多东西都是幻象,广告里面的总 ...

  3. 1968年12月9日,恩格尔巴特公开演示了世界上第一个鼠标盒子

    鼠标之父"道格拉斯·恩格尔巴特 腾讯科技讯,肖华2013年12月19日编译 计算机的几次革命和大规模普及都是始于人机交互的改变,今年7月2日,"鼠标之父"道格拉斯·恩格尔 ...

  4. 万人请愿别让贝索斯重返地球 还有人建议带上马斯克

    贝索斯刚宣布完准备退休后,就随后宣布了其退休后准备乘飞船进行"太空之旅",没想到,这一计划遭到了外国网友的"集体讨伐". 不久前,贝索斯宣布,他的太空公司 &q ...

  5. 世界上最难的视觉图_看看世界上驾照最难考的国家,你还会觉得考驾照难吗?...

    导读:许多人在考驾照的时候,对于路考都慌乱不已,在驾校学车时,更是左右不分,刹车油门不分!甚至更有甚者紧张到无法参加考试.那么国外考驾照到底难不难,我们不妨来看看:考驾照比较难的国家 外国的驾照考试有 ...

  6. php 7月世界排名2017,TIOBE2017榜单公布,PHP还会是世界上最好的语言吗?

    TIOBE 2017最新编程榜单 第1:java,第2:C,第3:C++....第6:php 看到这个榜单,我的记忆瞬间回到了十年前. 那时我结识了原配asp,asp代码真的好简单啊,看了遍<十 ...

  7. 它是世界上最轻的固体!1000℃下不会熔化,上过火星,还能进你家......

    全世界只有3.14 % 的人关注了 爆炸吧知识 小果冻 大难关 开学了,8岁表妹逮着这个机会讹了我一大箱果冻,超模君糊里糊涂就进了这只神兽的套.今天估计是一口气吃了太多,腻了,一边用手敲着果冻一边问超 ...

  8. 世界上第一台电子计算机很大 质量为35吨,世界上第一台电子计算机很大.质量为35吨.比一头大象体重的6倍还多0.2吨.一头大象重多少吨? 题目和参考答案——青夏教育精英家教网——...

    数学阅读 电子计算机的家谱 世界上第一台电子计算机是1946年在美国的宾夕法尼亚诞生的.它是一个庞然大物,占地170平方米,重30吨,由18000个电子管组成,每小时耗电140千瓦,每秒可以进行500 ...

  9. 有人说Java是世界上最好的语言,也有人说Java这几年就会没落,你怎么看呢

    Java语言长期以来一直霸占多数热门编程语言榜单的榜首,可见这是一个备受程序员热捧的编程语言.但随着各种语言的兴起,出现了很多问题,Java真的要没落了吗?Java这个20多年的后端常青树难道真的要走 ...

最新文章

  1. 地球是否健康,最新“诊断报告”来了
  2. 免费Opengrok-代码阅读工具:Kernel,Optee,ATF,Uboot...
  3. nyist---组队赛(三)
  4. C++Breadth First Search 广度优先搜索(附完整源码)
  5. DataWorks功能实践速览 05——循环与遍历
  6. 150929.js过完
  7. C#获取本机可用端口
  8. 手把手教你写一个spring IOC容器
  9. Linux入门实践笔记(七)——云服务器中配置Java项目的JMX连接失败问题解决记录
  10. BlenderPython (三)bpy模块
  11. 如何方便的下载csdn博客正文
  12. 【转载】标准电阻阻值表及说明
  13. 软件设计师考试真题链接
  14. 紫书习题3-6纵横字谜的游戏
  15. Linux对文本查找、检索、统计及替换的常用命令
  16. Cordova打包Scratch为APP
  17. 详解C#中的命名空间
  18. 8.0魔兽服务器维护时间,《魔兽世界》8.0上线时间公布 取消PVE、PVP服务器之分...
  19. 一般计算机电源都在什么服务,1u工控服务器电源与普通电脑电源能互用吗
  20. 蓝桥试题 算法提高 使用指针逆序输出 JAVA

热门文章

  1. TextView和EditText
  2. 大众点评的大数据实践转
  3. 9.Vue中mounted的简单理解
  4. 利用CANoe Vector LDF Explorer Pro创建LDF文件
  5. 项目沟通管理流程的6大规范步骤
  6. js onmousemove使用注意:进入onmousemove不代表移动鼠标
  7. 34. 实战:基于某api实现歌曲检索与下载(附完整源代码)
  8. 诚之和:李子柒向资本发起“反击战”
  9. 百度地图开发之实现运动轨迹 一
  10. hadoop实战(三) 使用HDFS操作文件