“不问,知你名”的玄学问题

博客探讨了如何利用信息熵理论解决一种看似玄学的问题,即如何不用询问就能猜到人的姓氏。通过信息论的分析,解释了信息熵的概念,并详细介绍了如何对百家姓进行编码,通过多次选择降低不确定性,最终设计出通过3次8选1的方式确定姓氏的方案。此外,还提供了程序设计和GUI设计的思路。
摘要由CSDN通过智能技术生成

1.前言

不知道大家有没有遇到路边有人问你,不用问你的姓就能知道你姓什么,当然我也遇到了。我怕被要钱就没有问,但后来仔细寻思挺有趣的,到底是什么原理呢,很多人都在网上给出了自己的解释,但在我看来却没有完全解决我的疑惑。近期看信息论有感,感觉是很有智慧的信息编码技术。

2.理论分析

2.1 信息论

这个问题,看起来是一道玄学题,本质上其实是信息论问题。解决这个问题并不是我们的最终目的,我们应该通过这个简单的问题了解信息论的本质,以小见大,一通百通。
信息论可以很好的给一个问题快速找到他的一个边界,每个信息所包含的信息量。最让人吃惊的是信息论的作者在上世纪中叶就给所有人类可以接触的所有信息问题设置了边界。人类遇到的全部都是经典问题,为这种问题设置了一个绝对的边界,无论你怎么设置也不能逾越的一个最大边界。任何人想要压缩数据、用一个事件发生去必然寻找另一个小概率事件所需要的数量等都已经被信息论所决定。
当别人还在寻找问题的解决方案的时候,信息论可以让你迅速从理论角度找到答案,降维打击。让我们知道这个问题的极限在哪里,不需要做很多没意义的工作。
所以我首先给大家介绍一下信息熵。

2.2 信息熵

热力学的熵主要指的是:在一个孤立系统中没有外力做功的情况下,该系统的混乱程度(熵)会不断的增大。
信息论中的熵则指的是:信息的不确定程度

种类 区别
热力学熵 系统的混乱程度
信息熵 信息的不确定度

根据定义我们不难想到,一个信息的出现概率越小,这个信息的熵也就越大。那么举个例子:
两个人进行博弈,A和B这两个人如果势均力敌两者获胜的概率都是0.5,则这个两人无论谁获胜,获胜者的熵是:

H ( x ) = ∑ i = 1 n p i ( x ) l o g 2 ( 1 p i ( x ) ) H(x) =\sum_{i=1}^np_i(x)log_2(\frac 1 {p_i(x)}) H(x)=i=1npi(x)log2(pi(x)1)
b=2的时候单位是bits
上述例子的熵即可简单计算得到为 H ( x ) = 1 2 l o g 2 ( 1 1 2 ) ) + 1 2 l o g 2 ( 1 1 2 ) ) = 1 H(x) =\frac 1 2log_2(\frac 1 {\frac 1 2}))+\frac 1 2log_2(\frac 1 {\frac 1 2}))=1 H(x)=21log2(211))+21log2(211))=1

而如果两个人的概率并不相等,比如两个人打球一个是乔丹,一个是小白。那小白获胜的概率基本上是百万分之一,那么一旦小白获胜这个事件发生的信息熵是相当大的,也就是这个事件发生的信息论巨大。

因此综上所述:接下来的问题用信息论进行解决。

2.3 百家姓的编码

有了信息熵的基础,我们现在就可以很容易的将中国500多个姓进行编码,那么就可以很用以的从图片是否有你的姓名这个信息很容易,找到你自己的姓。

姓名: {“赵”,“钱”,“孙”,“李”,“周”,“吴”,“郑”,“王”,“冯”,“陈”,“褚”,“卫”,“蒋”,“沈”,“韩”,“杨”,“朱”,“秦”,“尤”,“许”,“何”,“吕”,“施”,“张”,“孔”,“曹”,“严”,“华”,“金”,“魏”,“陶”,“姜”,“戚”,“谢”,“邹”,“喻”,“柏”,“水”,“窦”,“章”,“云”,“苏”,“潘”,“葛”,“奚”,“范”,“彭”,“郎”,“鲁”,“韦”,“昌”,“马”,“苗”,“凤”,“花”,“方”,“俞”,“任”,“袁”,“柳”,“酆”,“鲍”,“史”,“唐”,“费”,“廉”,“岑”,“薛”,“雷”,“贺”,“倪”,“汤”,“滕”,“殷”,“罗”,“毕”,“郝”,“邬”,“安”,“常”,“乐”,“于”,“时”,“傅”,“皮”,“卞”,“齐”,“康”,“伍”,“余”,“元”,“卜”,“顾”,“孟”,“平”,“黄”,“和”,“穆”,“萧”,“尹”,“姚”,“邵”,“湛”,“汪”,“祁”,“毛”,“禹”,“狄”,“米”,“贝”,“明”,“臧”,“计”,“伏”,“成”,“戴”,“谈”,“宋”,“茅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值