算法
six horse
这个作者很懒,什么都没留下…
展开
-
霍夫曼编码的正常思维
受到刘未鹏的启发,思考了霍夫曼编码。 霍夫曼编码要解决什么目的? 本质是找到一种编码,使期望值最小。用公式表达就是 编码有两种,一种定长,一种不定长。定长的很好理解。 那么不定长的最优解码会存在吗? 不定长的情况下,就要引入前缀码了。所谓的前缀码就是任意一个的编码不是其他任意一个的前缀。为什么?如果一个码是另一个码的前缀,当你解析到这个码的时候,你就无法分清谁是谁了。 比如a编原创 2016-04-25 16:46:47 · 717 阅读 · 0 评论 -
Bulb Switcher
这个问题很有意思 答案是 public int BulbSwitch(int n) { return (int)Math.Sqrt(n); }证明过程如下: 先看每个数据P是否亮着,然后统计从1到N的所有亮着的总数。 假设P=P1的K1次方*P2的K2次方.....*Pn的Kn次方。其中,P1到Pn都是排序的质数。 比如6=2的1次方*3的一次方 开关次数N=(K1+1)(K2原创 2016-07-10 11:14:33 · 199 阅读 · 0 评论