【SICP练习】97 练习2.70
发布时间:2020-12-13 20:04:45 所属栏目:PHP教程 来源:网络整理
导读:练习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 ⑴ ‘ ( Get a job
练习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⑴ ‘(Get a job))
(define message⑵ ‘(Sha na na na na na na na na))
(define message⑶ ‘(Wah yip yip yip yip yip yip yip yip yip))
(define message⑷ ‘(Sha boom))
(encode message⑴ tree)
;Value: (1 1 0 0 1 1 1 1 0 1 1 1 1 1)
(encode message⑵ tree)
;Value: (1 1 1 0 0 0 0 0 0 0 0 0)
(encode message⑶ 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⑷ tree)
;Value: (1 1 1 0 1 1 0 1 1) 由于题目中还要求计算编码所需的2进制位树,我们可以用length来计算。 (length (encode message⑴ tree))
;Value: 14
(length (encode message⑵ tree))
;Value: 12
(length (encode message⑶ tree))
;Value: 23
(length (encode message⑷ tree))
;Value: 9 因此将这4个数乘以各自出现的次数然后相加便是所需的2进制位数了,即84。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |