信息熵(香农熵)与文件压缩

2011年8月3日 1 条评论

上学期的毛概是一场噩梦,到最后简直背的吐血,吐血之余冒出了个想法:用文件的压缩率来判定一本书的优劣。我背诵用的笔记是被一个哥们人工压缩之后的版本(至于怎么压缩,就是戴三个表缩写为三代之类的人民群众喜闻乐见的方法),这样简单的方法就已经把文件压缩了50%以上。显然,除了纸张挺好,从其它任何一个角度来看这本书都非常糟糕,句子、短语的不断重复使得我们可以毫不费力地用几个关键字来复原一长段话。

也许我们可以用这个方法来判断一本书的好坏,当然这可能很片面。现在,我们来试验一下。先选择两本具有代表性的书,三体1和毛概。毛概的电子版没找到,不过找到了一个课后习题答案,试验假设课后习题的答案可以代表整本书的平均水平。试验前,把两个TXT文件的名字都改成A.txt以消除文件名不同导致的差别。使用winrar作为压缩工具。

下面是试验结果:

毛概 三体1
压缩前大小 124KB 388KB
压缩后大小 38KB 194KB
压缩率 30.6% 50.0%

如果你和我的观点一样(三体1写的比毛概好),那么这个方法还是有一定的参考价值的。

一个月后,在数学建模校内选拔赛上,我知道了一个新的概念:信息熵(information entropy)。维基百科上这样介绍信息熵

In information theory, entropy is a measure of the uncertainty associated with a random variable.

信息论中,用信息熵来衡量一个随机变量的不确定度。通俗说,信息熵越大,系统越混乱。原来这个东西早已经是一套成熟的理论了,创始人就是有名的香农大牛。

这套理论好像已经被应用到文件压缩中了(对文件压缩不了解,不过最基本的原理应该也是用简单的符号代替一长串出现概率大的符号),从这个角度上讲,文件压缩的水平就是人工智能的水平。未来的某天,我们也许能看到一本书,你一个字都不能缩写,用中国的一个成语来说就是“字字珠玑”,而这本书,可能是由压缩工具生成的。大笑

纯瞎扯,欢迎拍砖!

分类: Idea 标签: , ,

NEC学习笔记3:PWM的应用

2011年8月1日 1 条评论

78K0/KC2有四个8位定时器(50、51、H0、H1),都可以输出PWM信号,下面的程序以定时器TM50为例说明:

阅读全文...

分类: MCU, 杂记 标签: , ,

NEC学习笔记2:78K0/Kx2_定时器的使用

2011年7月31日 没有评论

折腾了一天多终于有了眉目。

下面的程序使LED以1Hz的频率闪烁:

阅读全文...

分类: MCU, 杂记 标签: ,

NEC(瑞萨)的一些资料

2011年7月30日 没有评论

这是IAR for NEC以及一些(入门级别的)教程

主要是想试一下SkyDrive的外链功能大笑

还有很多,过两天有空再发

分类: MCU 标签: ,

NEC学习笔记1:流水灯

2011年7月30日 没有评论

前几天来学校准备电赛,离比赛只有一个月了,但是什么都没开始准备,信心是一点都没有,没指望得个什么奖,学点东西就好了。在这儿记录一下每天的学习。 ===================================================================
前两天才开始看NEC的芯片手册和开发环境,今天总算有了个眉目。照葫芦画瓢写了个流水灯程序,发一下(78K0/KC2的芯片):

阅读全文...

分类: MCU, 杂记 标签: , , ,

占坑贴

2011年6月27日 1 条评论

久未更新,这学期课少但还是很忙,打算最近(说是最近,可能还得一个月)写两篇文章,一个是关于傅里叶变换的,这个东西太牛逼了,另一个是这两天背毛概的时候想到的一个评判书籍优劣的方法(好像有点类似于pagerank,bookrank?:-)),先记一下,免得之后忘记了。

分类: MyLife, 杂记 标签:

Linux笔记(一)

2011年3月29日 1 条评论

 

最近在学习linux的相关知识,选择了最流行的发行版:Ubuntu 10.10。这次下了狠心把Windows给格了,硬盘全给了linux,也不枉Canonical 07年给我寄的那张7.04的光盘 :-).

安装过程简直没法更简单了,而且随意Google一下就有很多教程,这里不多赘述了。下面主要记录一下我在安装几个软件时遇到的问题和解决的方法,希望大家能在安装过程中少浪费一些时间,也方便自己以后查阅。

1.Matlab linux版下载地址

这个主要是下载了,虽然在学校,但是我用的还是外网,下载地址倒是好找,就是速度奇慢,两天都没有下好,昨天终于忍不住了,又去google了半天,找到了一个速度很好的地址,速度基本上可以稳定到400Kb+

Matlab R2010a linux版下载地址

ed2k://|file|[矩陣實驗室].Mathworks.Matlab.R2010a.UNIX.ISO-TBE.iso|4902662144|23d2d23050f366e03290437a68693102|
h=GWP7ARO7JGBOOH2DBX3E3KLUMQR2WLZW|

上面的镜像已经包含了32位和64位的版本。

2.Mathematica8 linux版的安装

下载地址没找到特别快的,Verycd上的那个速度不算太慢,下载完之后得到一个.sh的文件。进入文件的目录直接 sudo sh mathematica.sh就开始安装了,一路y下去就安装成功了。下一步是破解,就用keygen for 7.0就行,关键在mathematica里面是找不到mathid了,在这个问题上花了很长时间,甚至产生了再安上Windows的想法。其实方法很简单,在提示输入Activation key的时候选择Manual Activation,然后你的mathid就出来了,然后用wine运行keygen,序列号就用L0000-0000好了,然后输入得到的mathid,Generate一下就得到了一个key,但是这个key是不能直接贴在Activation key栏里面的,因为格式不对。你需要新建一个名为mathpass的文件,里面添加上IODINE+MathID+序列号 +key+ 用户名 +公司名称

比如IODINE 1234-12345-12345 L0000-00001234-123-123TreeastTreeast

然后把文件放在/你的安装路径/Wolfram/Mathematica/8.0/Configuration/Licensing文件夹下。之后重启Mathematica就行了。

 

 

分类: Linux 标签: , ,

发一下这学期课表,顺便测试Windows Live Writer

2011年3月2日 没有评论

image

//除去周末的英语课,这学期的课太少了,哈哈!

分类: MyLife 标签:

第一帖

2011年2月15日 3 条评论

OK,start here.

分类: MyLife 标签:

Hello world!

2011年2月15日 1 条评论

欢迎使用 WordPress。这是系统自动生成的演示文章。编辑或者删除它,开始您的博客!

分类: MyLife 标签: