zhenyulu18 发表于 2009-1-29 16:25

关于求算术编码的码长

假设:p(0)=1/4,p(1)=3/4,a=11111100,
p(a)=p(11111100)= 0.01112366       L==7
所得码长等于7
以上这段文字求码长用Matlab编写应该怎么编?

ChaChing 发表于 2009-1-29 17:13

水平及专业有限, 没能看懂楼主的问题!

zhenyulu18 发表于 2009-1-29 19:34

就是求概率的问题,p(11111100)就是(3/4)^6乘以(1/4)^2

ChaChing 发表于 2009-1-29 22:17

L==7, 什麽意思?

zhenyulu18 发表于 2009-1-29 22:22

L==7,p(a)=为前面算出的数值.。7就是所求的码长。就是怎么用Matlab编写来求出这个7来?

ChaChing 发表于 2009-1-29 22:43

log(1/ 0.01112366)=7? or ln(1/ 0.01112366)=7?
好像都不是!

[ 本帖最后由 ChaChing 于 2009-1-29 22:48 编辑 ]

zhenyulu18 发表于 2009-1-29 22:54

是log2(1/0.01112366),在把他取整~

ChaChing 发表于 2009-1-29 22:59

pp=(3/4)^6*(1/4)^2;
LL=log2(1/pp); ceil(LL)

答案是7, 但不确定是否为楼主要的!?
还有建议以後问问题要明确点!

[ 本帖最后由 ChaChing 于 2009-1-29 23:03 编辑 ]

zhenyulu18 发表于 2009-1-31 18:59

我这里只是举个例子,每次题目都不一样的。。。

ChaChing 发表于 2009-1-31 21:06

回复 9楼 zhenyulu18 的帖子

没懂楼主的意思!
还有使用ceil对吗? ceil是无条件进位!

zhenyulu18 发表于 2009-1-31 21:19

我的意思是:p(a)的时候要根据p{0)、(p)1、和a的大小来求的,用ceil对的。。。
页: [1]
查看完整版本: 关于求算术编码的码长