我最近在我的大学开始了一门关于数据压缩的课程。然而,我发现术语“熵”的使用相当含糊,因为它适用于计算机科学。据我所知,它大致转化为一个系统或结构的“随机性”。
计算机科学“熵”的正确定义是什么?
发布于 2009-02-04 07:41:54
熵可以表示不同的含义:
在计算中,熵是操作系统或应用程序收集的随机性,用于密码学或其他需要随机数据的用途。这种随机性通常是从硬件来源收集的,要么是预先存在的,比如鼠标移动,要么是专门提供的随机性生成器。
在信息论中,熵是与随机变量相关的不确定性的度量。在本文中,术语本身通常指的是香农熵,它从期望值的意义上量化消息中包含的信息,通常以比特等为单位。同样,香农熵是在不知道随机变量的值的情况下缺少的平均信息量的度量
数据压缩中的熵
数据压缩中的熵可能表示输入到压缩算法的数据的随机性。熵越大,压缩比越小。这意味着文本的随机性越强,压缩效果就越差。
香农的熵代表了任何通信的最佳无损压缩的绝对极限:将要编码的消息视为独立且同分布的随机变量序列,香农的信源编码定理表明,在该极限中,以给定字母表编码消息的最短可能表示的平均长度是它们的熵除以目标字母表中的符号数量的对数。
发布于 2009-02-04 07:55:14
我最喜欢的定义是更实用的定义,可以在安德鲁·亨特和大卫·托马斯写的优秀著作The Pragmatic Programmer: From Journeyman to Master的第一章中找到:
软件熵
虽然软件开发几乎不受所有物理定律的影响,但熵给我们带来了沉重的打击。熵是物理学中的一个术语,指的是系统中“无序”的数量。不幸的是,热力学定律保证宇宙中的熵趋于最大值。当软件中的无序增加时,程序员称之为“软件腐烂”。
有很多因素会导致软件腐烂。最重要的一个似乎是在项目中工作的心理或文化。即使你是一个团队,你的项目心理也可能是一个非常微妙的东西。尽管有最好的计划和最好的人,一个项目在其生命周期中仍然会经历毁灭和衰败。然而,还有其他一些项目,尽管存在巨大的困难和不断的挫折,但它们成功地与自然的混乱趋势作了斗争,并取得了相当好的成果。
..。
..。
一扇破窗。
一扇坏了的窗户,在很长一段时间内都没有修好,给这座建筑的居民灌输了一种被遗弃的感觉--一种权力并不关心这座建筑的感觉。所以另一扇窗户被打破了。人们开始乱扔垃圾。出现涂鸦。严重的结构性破坏开始。在相对较短的时间内,建筑物被损坏,超出了业主修复它的愿望,这种被遗弃的感觉变成了现实。
“破窗理论”激励了纽约和其他大城市的警察部门打击小事情,以防止大的事情。它是有效的:保持对破碎的窗户,涂鸦和其他小违规行为的控制,降低了严重犯罪水平。
提示4
不要生活在破碎的窗户里
不要让“破碎的窗口”(糟糕的设计、错误的决策或糟糕的代码)得不到修复。一旦发现,就立即修复每个问题。如果没有足够的时间来正确地修复它,那么就用木板把它装起来。也许您可以注释掉有问题的代码,或者显示一条“未实现”消息,或者替换为伪数据。采取一些行动来防止进一步的损害,并表明你已经掌握了情况。
文本摘自:http://pragprog.com/the-pragmatic-programmer/extracts/software-entropy
发布于 2009-02-04 07:41:17
我总是遇到香农熵意义上的熵。
来自http://en.wikipedia.org/wiki/Information_entropy
在信息论中,熵是与随机变量相关的不确定性的度量。在本文中,术语本身通常指的是香农熵,它从期望值的意义上量化消息中包含的信息,通常以比特等为单位。等同地,香农熵是当一个人不知道随机变量的值时,他丢失的平均信息量的度量。
https://stackoverflow.com/questions/510412
复制相似问题