【SICP练习】97 练习2.70
来源:互联网 发布:java o2o 商城源码 编辑:程序博客网 时间:2024/05/12 02:07
练习2.70
既然要解码,那必须先将树给定义好了。
(define tree (generate-huffman-tree ‘((A 2) (NA 16) (BOOM 1) (SHA 3) (GET 2) (YIP 9) (JOB 2) (WAH 1))
然后就是来编码题目中给出的歌词了。
(define message-1 ‘(Get a job))(define message-2 ‘(Sha na na na na na na na na))(define message-3 ‘(Wah yip yip yip yip yip yip yip yip yip))(define message-4 ‘(Sha boom)) (encode message-1 tree);Value: (1 1 0 0 1 1 1 1 0 1 1 1 1 1)(encode message-2 tree);Value: (1 1 1 0 0 0 0 0 0 0 0 0)(encode message-3 tree);Value: (1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0)(encode message-4 tree);Value: (1 1 1 0 1 1 0 1 1)
由于题目中还要求计算编码所需的二进制位树,我们可以用length来计算。
(length (encode message-1 tree));Value: 14(length (encode message-2 tree));Value: 12(length (encode message-3 tree));Value: 23(length (encode message-4 tree));Value: 9
因此将这4个数乘以各自出现的次数然后相加便是所需的二进制位数了,即84。
如果要采用定长编码的话,题目中的8个字符由于每个都要占用到3个二进制位以上,而歌词中一共用了36个字符,乘起来便是用定长编码最少需要的二进制位数了,也即是108。
感谢访问,希望对您有所帮助。 欢迎关注或收藏、评论或点赞。
为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp
5 0
- 【SICP练习】97 练习2.70
- 【SICP练习】2 练习1.6
- 【SICP练习】3 练习1.7
- 【SICP练习】4 练习1.8
- 【SICP练习】5 练习1.9
- 【SICP练习】6 练习1.10
- 【SICP练习】7 练习1.11
- 【SICP练习】8 练习1.12
- 【SICP练习】9 练习1.15
- 【SICP练习】10 练习1.16
- 【SICP练习】11 练习1.17
- 【SICP练习】12 练习1.18
- 【SICP练习】13 练习1.19
- 【SICP练习】14 练习1.20
- 【SICP练习】15 练习1.21
- 【SICP练习】16 练习1.22
- 【SICP练习】17 练习1.23
- 【SICP练习】18 练习1.24
- 大二的迷茫
- 日经社説 20150305 中1殺害は防げなかったか
- 给Html5视频播放器添加字幕
- 使用统一服务名连接RAC数据库报ORA-12545错误
- Swift之Attempting to badge the application icon but haven't received permission from the user to badg
- 【SICP练习】97 练习2.70
- 八大排序算法之堆排序
- WWDC-Watch and learn from our Engineers
- TF-IDF算法的java实现
- Javascript异步编程的方法
- 15 Awesome Sites with Stuning Stock HD Videos
- 交互数据解析之JSON解析
- 【创业家】汽车后万亿市场即将爆发,谁是最后赢家?
- 123445466