吴军老师好:
信息量是在宏观角度计算概率,信息编码是在微观角度解释产生信息的具体方法。老师用很精巧的一个“锤子、剪子、布”的游戏将两者联系起来,让同学们思考的过程中建立起对信息论研究的各个方向的联系和整体认知,而一个简单的游戏也拉进了信息论和人们日常生活的距离,可谓是独具匠心,谢谢您!
具体讲到“锤子、剪子、布”这个游戏,如果想玩得好,最佳的策略就是随机,用今天课程的内容讲就是信息熵要大,具体的算法可参见老师的文稿,这里主要说说玩此类游戏的方法。
玩游戏前我们首先要强调一个前提就是假定玩家都没有作弊的想法,在公正的前提下,对于玩的“己方”指导思想就是要消除出“锤子、剪子、布”的规律性;对于玩的“对方”就是要尽可能的猜出对方出“锤子、剪子、布”的规律性。
要消除规律性最好的方法就是随机,但对于一个人来说,由于心里和生理的因素,完全的随机是做不到的,这就引出了密码学中的一个重要的概念“伪随机”。
假设玩“锤子、剪子、布”游戏的双方都是不受输赢感情波动的高手,人也是背对背互不知情的,那么所谓“随机”,就是无论我们出多少“锤子、剪子、布”,在出的序列中永远不会出现循环的现象。
而在计算机领域要模拟这个“随机”的过程就不是那么容易了,就需要引入一个可控的算法概念“伪随机码”,生成方法有多种,包括直接法、逆转法、接受拒绝法等。
所谓“伪随机码”在码长达到一定程度时会从其第一位开始循环,由于出现的循环长度相当大,例如CDMA采用42的伪随机码,重复的可能性为4.4万亿分之一,所以可以当成随机码使用。
伪随机序列是用函数生成随机数。它并不真正是随机的。只是比较近似随机一个简单的随机数产生方法如下:X0=345Xn=(Xn-1*A+B)/C其中A,B,C是常数,上式每执行一次就生成一个伪随机数。还可以在数组中填入若干个数然后顺序取出进行模拟,性能好,但是这种随机数就很不象随机数了。有的就是根据当前系统时间,内存值等等用函数生成了。
有了上述的知识做根基,玩“锤子、剪子、布”游戏就有了科学意义,老师教我们的信息论知识就更大可能性会融会贯通了。
感谢老师的教导。
祝安康!
启航
2019年5月30日晨
网友评论