【SICP练习】97 练习2.70

练习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


时间: 2024-09-20 20:55:08

【SICP练习】97 练习2.70的相关文章

网站基本配色——专职

配色 在商业活动中,颜色受到仔细的评估,一般流行的看法,灰色或黑色系列可以象征"职业",因为这些颜色较不具个人主义,有中庸之感. 灰色其实是鲜艳的红色或橘色最好的背景色.这些活泼的颜色加上低沉的灰色,可以使原有的热力稍加收敛.含蓄一些. 虽然灰色不具刺激感,却富有实际感.它传达出一种实在.严肃的气息,绝少幽默之感. 12 100 97 97 2 98 106 102 98 100 11 98 3 100 98 99 97 106 99 104 102 98 100 101 97 14

由Jsp+Mysql注入到root权限的全程展

js|mysql 最近有点空闲,所以写点垃圾文章来消磨一下时间.文中没有什么技术含量,如果要转载,请注明作者并保持文章的完整.很多人可能都知道asp,php的编程要防止sql注入漏洞,而并不知道jsp编程同样也需要防备sql注入漏洞.其实,一旦jsp代码有注入漏洞,将直接影响到整个系统的安全.本文就是主要展示一下我的一次JSP+MYSQL注入导出webshell的过程.    www.***.***.cn是国内某一个著名研究所的网站,我们在这里对其进行善意的测试.当然,在写此文之前我已经将漏洞通

网页设计基本配色参考色谱——职业

在商业活动中,颜色搭配会受到仔细的评估,按一般流行的看法灰色或黑色系列可以象征"职业",因为这些颜色较不具个人主义,有中庸之感. 灰色其实是鲜艳的红色或橘色最好的背景色.这些活泼的颜色加上低沉的灰色,可以使原有的热力稍加收敛.含蓄一些. 虽然灰色不具刺激感,却富有实际感.它传达出一种实在.严肃的气息,绝少幽默之感.   12 100 97 97 2 98 106 102 98 100 11 98 3 100 98 99 97 106 99 104 102 98 100 101 97 1

查询结果-查询一张表中的某个字段对应另一张表中多条数据某个字段等于第一张表的那个字段的数据,并按要求显示

问题描述 查询一张表中的某个字段对应另一张表中多条数据某个字段等于第一张表的那个字段的数据,并按要求显示 给的表例如 表一: stuID stuName 1 小明 2 小红 表二: stuID course Score 1 数学 97 1 语文 70 1 英语 88 2 数学 92 要求查询结果为: stuID stuName 语文 数学 英语 1 小明 70 97 88 2 小红 92 解决方案 类似下面这样,下面语句没有调测过. select stuID,(select stuName fr

Project euler 18题解答

 By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. 37 4 2 4 6 8 5 9 3 That is, 3 + 7 + 4 + 9 = 23. Find the maximum total from top to bottom of the triangle below

还贷的那些事IV——等增额还贷的计算

前文介绍了还贷的基本知识,以及"等本还贷的计算"和"等额还贷的计算".这两种贷款是目前银行推出的贷款方式,虽然有部分银行推出了"周周贷"等贷款,这也是这两种贷款的衍生. 纵观这两种的贷款,都有一个明显的特点,就是每月的还款额是不增长的(等本还贷是每月递减的:等额还贷是每月不变的).但这种特点,似乎不能满足一些人的需要. 例如,某位工作一定年限的青年,有了一点积蓄,准备买房.他就矛盾了,是贷多一点吗?目前的收入解决不了每月的还贷.贷少一点,买不到合

预计上半年电子信息产业完成产品销售收入10804亿元

今年以来,我国电子信息产业在党和国家各项经济政策的指导和扶持下,全行业紧紧抓住国际经济全面复苏和国内市场不断升温的良好机遇,努力开拓国内外市场,不断调整产品结构,经济运行继续保持了良好发展态势.全行业发展速度快速增长,出口大幅度增加,产销衔接继续趋好,经济效益不断改善,经济运行质量明显好于上年. 一.基本情况 预计上半年电子信息产业完成产品销售收入10804亿元(含软件产业为12004亿元),同比增长44.5%:工业增加值2239亿元,同比增长45.1%:完成进出口总额1690亿美元,同比增长5

11月中国实际利用外资70.23亿美元增31.97%

中新网12月16日电 国家商务部本日举行例行发布会,商务部发言人姚坚表示,11月份中国实际利用外资金额70.23亿美元, 同比增长31.97%,今年以来连续第四个月实现正增长.

【SICP练习】103 练习2.81-2.97

练习2-81 这里再次需要用到第186页的创建表格部分内容.当然了现在完全可以只是将make-table加载到这道题中.还有我们前面几题中用到的apply-generic. a) 载入 Louis 的强制过程后,对两个复数调用exp会出现解释器假死的情况. b) Louis并没有纠正该问题,反而会让程序进入无限循环之中. c) 解决这个错误的办法就是让apply-generic能够在其两个输入的参数的类型相同时让强制转换停止下来. (define (apply-generic op . args