PHP与SQL的错误问题
报错信息的意思是:
mysql_fetch_array 函数 提供的的参数不是一个有效的 结果集
检查 mysql_fetch_array 的参数的 有效性
可以修改函数为这样
function db_fetch_array($res){
is_object( $res ) and die( "无效的参数" );
return mysql_fetch_array($res);
}
造成这样的原因一般是 sql 语句有问题
用matlab软件把函数式子编成编程语言?
一般登记matlab语言编写的软件,需要准备至少以下材料:
1)填写软件基本信息采集表:委托凯迈乐时,会根据信息采集表内容为您整理需要盖章签字的材料 ;
2)提供部分源程序(电子版):委托凯迈乐时,您提供该软件的WORD电子版部分源程序(前2000行 和 后2000行,共计4000行,最后一页为软件退出部分代码。或者采用5号字体,13磅段落间距,100页左右提供),如软件实际代码量不足上述要求,需提供全部代码;
3)提供手册(电子版):委托凯迈乐时,需要您提供WORD版软件使用操作手册(存在操作界面时) 或者 软件设计说明书 (没有操作界面,无法实现可视化操作时)。
画出哈夫曼树,并求出每个字符的哈夫曼编码
哈夫曼树 74 / \ 42 32 / \ / \ 23 19 12 20 / \ / \ 15 8 9 10 / \ 8 7 / \ 3 5 编码:A(010)B(00000)C(00001)D(001)E(10)F(11)G(0001)H(011)带权路径长度值为:(3+5)*5+7*4+(8+9+10)*3+(12+20)*2=213 This is it!!! 求采纳
对灰度图像进行霍夫曼编码,用Matlab怎么实现啊?
给你一段程序,自己研究下吧!\x0d\x0a\x0d\x0aclc\x0d\x0aclear\x0d\x0acloseall;\x0d\x0a%定义HufData/Len为全局变量的结构体\x0d\x0aglobalHufData;\x0d\x0aglobalLen\x0d\x0adisp('计算机正在准备输出哈夫曼编码结果,请耐心等待??');\x0d\x0a%原始码字的灰度\x0d\x0aa=imread('kids.tif');\x0d\x0a\x0d\x0a%分区画出原始图像和灰度直方图\x0d\x0afigure;\x0d\x0asubplot(1,2,1)\x0d\x0aimshow(a);\x0d\x0a%取消坐标轴和边框\x0d\x0aaxisoff\x0d\x0aboxoff\x0d\x0atitle('MATLAB自带图像','fontsize',13);\x0d\x0asubplot(1,2,2);\x0d\x0aaxisoff\x0d\x0aboxoff\x0d\x0aimhist(a);\x0d\x0atitle('图像灰度直方图','fontsize',13);\x0d\x0a%图像的灰度统计\x0d\x0aGrayStatistics=imhist(a);\x0d\x0aGrayStatistics=GrayStatistics';\x0d\x0aGrayRatioo=GrayStatistics/sum(GrayStatistics);\x0d\x0aGrayRatioNO=find(GrayRatioo~=0);\x0d\x0aLen=length(GrayRatioNO);\x0d\x0a%初始化灰度集,防止系统随即赋予其垃圾值\x0d\x0aGrayRatio=ones(1,Len);\x0d\x0a\x0d\x0afori=1:Len\x0d\x0aGrayRatio(i)=GrayRatioo(i);\x0d\x0aend\x0d\x0a\x0d\x0aGrayRatio=abs(sort(-GrayRatio));\x0d\x0a%将图像灰度概率赋予结构体\x0d\x0afori=1:Len\x0d\x0aHufData(i).value=GrayRatio(i);\x0d\x0aend\x0d\x0a\x0d\x0a%哈夫曼编码/霍夫曼编码\x0d\x0aHuffmanCode(Len);\x0d\x0a%输出码字\x0d\x0a\x0d\x0azippedHuffman=1;\x0d\x0afori=1:Len\x0d\x0atmpData=HufData(i).code;\x0d\x0astr='';\x0d\x0aforj=1:length(tmpData)\x0d\x0astr=strcat(str,num2str(tmpData(j)));\x0d\x0azippedHuffman=zippedHuffman+1;\x0d\x0aend\x0d\x0adisp(strcat('a',num2str(i),'=',str))\x0d\x0aend\x0d\x0ai;\x0d\x0a%计算计算机一共输出多少个哈夫曼编码/霍夫曼编码\x0d\x0azippedHuffman;\x0d\x0a%计算在删去0灰度级压缩之前的原始图像字节容量\x0d\x0aunzipped_delete=i*8;\x0d\x0a\x0d\x0a%计算压缩比率\x0d\x0aratio_delete=zippedHuffman/unzipped_delete;\x0d\x0a\x0d\x0a%计算图像的压缩比率\x0d\x0aad=num2str(ratio_delete*100);\x0d\x0astr2=strcat(ad,'%');\x0d\x0adisp(strcat('哈夫曼编码压缩比率','=',str2))\x0d\x0a\x0d\x0a%子程序:哈夫曼编码/霍夫曼编码函数HuffmanCode.m\x0d\x0afunctionHuffmanCode(OriginSize)\x0d\x0aglobalHufData;\x0d\x0aglobalLen\x0d\x0afori=1:Len\x0d\x0a%%霍夫曼编码树左边纪录为1\x0d\x0aHufData(i).left=1;\x0d\x0a%%霍夫曼编码树右边纪录为0\x0d\x0aHufData(i).right=0;\x0d\x0a%%输出码初始化为0\x0d\x0aHufData(i).code=[];\x0d\x0a%%排序列表初始化\x0d\x0aSortList(i).symbol=i;\x0d\x0aSortList(i).value=HufData(i).value;\x0d\x0aend\x0d\x0a%初始化原始消息数目\x0d\x0anewsymbol=OriginSize;\x0d\x0aforn=OriginSize:-1:2\x0d\x0a%将N个消息进行排序\x0d\x0aSortList=sortdata(SortList,n);\x0d\x0a%将最后两个出现概率最小的消息合成一个消息\x0d\x0anewsymbol=newsymbol+1;\x0d\x0aHufData(newsymbol).value=SortList(n-1).value+SortList(n).value;\x0d\x0aHufData(newsymbol).left=SortList(n-1).symbol;\x0d\x0aHufData(newsymbol).right=SortList(n).symbol;\x0d\x0a%将消息添加到列队的最后,为N-1个消息重新排序作好准备\x0d\x0aSortList(n-1).symbol=newsymbol;\x0d\x0aSortList(n-1).value=HufData(newsymbol).value;\x0d\x0aend\x0d\x0a%遍历霍夫曼树,获得霍夫曼编码/哈夫曼编码\x0d\x0avisit(newsymbol,Len,[]);\x0d\x0aend\x0d\x0a\x0d\x0a%子程序:冒泡排序法函数sortdata.m\x0d\x0afunctionreData=sortdata(SortList,n)\x0d\x0a%根据消息概率进行排序\x0d\x0afork=n:-1:2\x0d\x0aforj=1:k-1\x0d\x0amin=SortList(j).value;\x0d\x0asbl=SortList(j).symbol;\x0d\x0aif(min0)\x0d\x0a%遍历右分支接点输出0,这里采用子函数嵌套调用\x0d\x0aocode2=[ocode0];\x0d\x0avisit(HufData(node).right,n,ocode2);\x0d\x0aend\x0d\x0aend\x0d\x0aend
用MATLAB生成哈夫曼编码,急求,在线等
clear all;
I=[3,1,3,2,4,3,2,1,2,3];
len=length(I);
t=2;
biaozhi=0;
b(1)=I(1);
for i=2:len
for j=1:i-1
if I(j)==I(i)
biaozhi=1;
break;
end
end
if biaozhi==0
b(t)=I(i);
t=t+1;
end
biaozhi=0;
end
fprintf('信源总长度:\n');
disp(len); %信源总长度
fprintf('字符:\n');
disp(b );
L=length(b);
for i=1:L
a=0;
for j=1:len
if b(i)==I(j)
a=a+1;
count(i)=a;
end
end
end
count=count/len;%各字符概率
fprintf('各字符概率:\n');
disp(count);
p=count;
%%%%%%%%%%%%%%%%%%%%%%%%%%%
s=0;
l=0;
H=0;
N=length(p);
for i=1:N
H=H+(- p(i)*log2(p(i)));%计算信源信息熵
end
fprintf('信源信息熵:\n');
disp(H);
tic;
for i=1:N-1 %按概率分布大小对信源排序
for j=i+1:N
if p(i)<p(j)
m=p(j);
p(j)=p(i);
p(i)=m;
end
end
end
Q=p;
m=zeros(N-1,N);
for i=1:N-1 %循环缩减对概率值排序,画出由每个信源符号概率到1.0 处的路径,
[Q,l]=sort(Q);
m(i,:)=[l(1:N-i+1),zeros(1,i-1)];
Q=[Q(1)+Q(2),Q(3:N),1];
end
for i=1:N-1
c(i,:)=blanks(N*N);
end
c(N-1,N)='0';
c(N-1,2*N)='1';
for i=2:N-1 %对字符数组c码字赋值过程,记下沿路径的“1”和“0”;
c(N-i,1:N-1)=c(N-i+1,N*(find(m(N-i+1,:)==1))-(N-2):N*(find(m(N-i+1,:)==1)));
c(N-i,N)='0';
c(N-i,N+1:2*N-1)=c(N-i,1:N-1);
c(N-i,2*N)='1';
for j=1:i-1
c(N-i,(j+1)*N+1:(j+2)*N)=c(N-i+1,N*(find(m(N-i+1,:)==j+1)-1)+1:N*find(m(N-i+1,:)==j+1));
end
end
for i=1:N
h(i,1:N)=c(1,N*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*N);%码字赋值
ll(i)=length(find(abs(h(i,:))~=32)); %各码字码长
end
l=sum(p.*ll); %计算平均码长
n=H/l; %计算编码效率
fprintf('编码的码字:\n');
disp(h) %按照输入顺序排列的码字
fprintf('平均码长:\n');
disp(l) %输出平均码长
fprintf('编码效率:\n');
disp(n) %输出编码效率
fprintf('计算耗时time= %f\n',toc);
1.假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为: A B C D E F G H 0.09 0.15 0.04
要建立赫夫曼树,然后在遍例(先树),如果不懂请回去看数据结构吧,叶子节点就是你要编码的字母。原始人发展出的图示和表意符号是如今现代字母的原型,比如楔形文字和象形文字。最早的字母,是东闪米特人(现代分类称之为闪米特北支)使用的一种早期的象形文字的组合,大约出现在公元前1700至1500年间。公元前1000年又有其它四种字母,由东闪米特人的字母发展而来,西闪米特人南支(现代分类称之为闪米特南支)所使用的字母、迦南字母、阿拉伯字母和希腊字母。而罗马字母,大约在公元前500年从希腊字母中衍生出来。截止到2015年,所有的西欧语言(包括爱尔兰语,荷兰语,法语,德语等语言)都使用这种字母。中国汉语音韵学术语。音韵学家用来指称汉字声母的代表字。字母一词来自梵文摩多(梵文作mata)。梵文摩多本指元音,后来梵文词义扩大,辅音也称摩多。该词传入中国后,当时音韵学家只用它表示声母。在此以前,汉语声母没有专门的名称,人们用双声来表示声母,反切上字与被切字双声,表明两字有相同的声母。唐末僧人从梵文字母得到启发,给每一声类规定了一个代表字,这就是字母。敦煌出土守温字母残卷列“不芳并明??”30字母,后来有人“益以‘娘床邦滂微奉'六母”,就有36字母。
假设用于通信的电文由9个字母A、B、C、D、E、F、G、H、K组成,字母在电文中出现的频率分别为1
假设这八个字母分别为:A、B、C、D、E、F、G、H,它们对应的频率为7、19、2、6、32、3、21、10。A(0010)B(10)C(00000)D(0001)E(01)F(00001)G(11)H(0011)【摘要】
假设用于通信的电文由9个字母A、B、C、D、E、F、G、H、K组成,字母在电文中出现的频率分别为18、20、15、16、7、5、2、8、9。试为这9个字母设计哈夫曼编码,按下表对应序号填空,并计算出带权路径长度WPL=(10)(注意构造哈夫曼树时要求左小右大,前小后大,编码时用左0右1编码)【提问】
假设这八个字母分别为:A、B、C、D、E、F、G、H,它们对应的频率为7、19、2、6、32、3、21、10。A(0010)B(10)C(00000)D(0001)E(01)F(00001)G(11)H(0011)【回答】
数字不一样【提问】
概率 组成 画出哈夫曼树 设计哈夫曼编码【回答】
不会画【提问】
首先给出生成的hafuman树:
26
/ \
8 18
/ \
7 11
/ \
5 6
/ \
2 4
叶子节点就是对应的字母出现的次数。按照左分支编码为0,右分支为1进行编码。那么电文字母编码如下:
a:1110
b:1111
c:110
d:10
e:0【回答】
哈夫曼树的构造规则是什么?
哈夫曼树的构造规则是若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。哈夫曼树的数据为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符编码的前缀),可用字符集中的每个字符作为叶子结点生成一棵编码二叉树,为了获得传送报文的最短长度,可将每个字符的出现频率作为字符结点的权值赋予该结点上,显然字使用频率越小权值越小,权值越小叶子就越靠下。于是频率小编码长,频率高编码短,这样就保证了此树的最小带权路径长度效果上就是传送报文的最短长度。因此,求传送报文的最短长度问题转化为求由字符集中的所有字符作为叶子结点,由字符出现频率作为其权值所产生的哈夫曼树的问题。利用哈夫曼树来设计二进制的前缀编码,既满足前缀编码的条件,又保证报文编码总长最短。
哈夫曼树的构造是什么?
哈夫曼树构造:结构化的Huffman算法生成的Huffman树子树都是有序的,所以一般生成Huffman树时都为节点排序,即使这样结果也不唯一。哈夫曼静态编码:它对需要编码的数据进行两遍扫描:第一遍统计原数据中各字符出现的频率,利用得到的频率值创建哈夫曼树,并必须把树的信息保存起来,即把字符0-255(2^8=256)的频率值以2-4BYTES的长度顺序存储起来,以便解压时创建同样的哈夫曼树进行解压;第二遍则根据第一遍扫描得到的哈夫曼树进行编码,并把编码后得到的码字存储起来。历史1951年,哈夫曼在麻省理工学院(MIT)攻读博士学位,他和修读信息论课程的同学得选择是完成学期报告还是期末考试。导师罗伯特·法诺(Robert Fano)出的学期报告题目是:查找最有效的二进制编码。由于无法证明哪个已有编码是最有效的,哈夫曼放弃对已有编码的研究,转向新的探索,最终发现了基于有序频率二叉树编码的想法,并很快证明了这个方法是最有效的。哈夫曼使用自底向上的方法构建二叉树,避免了次优算法香农-范诺编码(Shannon–Fano coding)的最大弊端──自顶向下构建树。1952年,于论文《一种构建极小多余编码的方法》(A Method for the Construction of Minimum-Redundancy Codes)中发表了这个编码方法。
bios中常说的S1,S2,S3,S4,S5分别是什么意思
S1 =>Standby。
即指说系统处于低电源供应状态,在 windows or BIOS 中可设定屏幕信号输出关闭、硬盘停止运转进入待机状态、电源灯处于闪烁状态。此时动一动鼠标、按键盘任一键均可叫醒电脑。
S2 =>Power Standby。和 S1 几乎是一样的。
S3 =>Suspend to RAM。即是把 windows 当前存在内存中的所有资料保存不动,然后进入“假关机”。此时除了内存需要电源来保持资料以外,其它的设备,装置全部停止供电。也就是说,理论上可以把CPU,PCI卡,AGP Device拿掉又插回去,电脑也可能正常完成开机及运作,只要不动到内存和电源的部份。这时只剩下电源灯一闪一闪的,其它和关机没什么两样。(电源供应器的风扇也停止运转)重新开机后,电脑只是把内存的资料完整性确认后,即立刻会回到你进S3前的画面。记得有人试过,在刻录中启动S3,CDRW还会自动启动Just-Link,等你回复后它又自动继续刻录(没实际试过)。
S4 =>Suspend to Disk。
即是把 windows 内存中的资料完整的保存在硬盘中,等开机时就直接从保存这些资料的地方直接完整的读到内存中,不需要跑一堆应用程序。使用这种模式,硬盘一定要腾出一个完整的连续空间。WinME/2000/XP 在电源管理中休眠的作用就是这个 。在启动后,C:下会看到一个和你电脑现有内存大小一样的文件。
bios中常说的S1、S2、S3、S4、S5分别是什么意思,谢谢
S1--也称为POS(Power on Suspend),这时除了通过CPU时钟控制器将CPU关闭之外,其他的部件仍然正常工作,这时的功耗一般在30W以下。(其实有些CPU降温软件就是利用这种工作原理)S2--这时CPU处于停止运作状态,总线时钟也被关闭,但其余的设备仍然运转。S3--这就是我们熟悉的STR(Suspend to RAM),这时的功耗不超过10W。S4--也称为STD(Suspend to Disk),这时系统主电源关闭,硬盘存储S4前数据信息,所以S4是比S3更省电状态。S5--这种状态是最干脆的,就是连电源在内的所有设备全部关闭,即关机(shutdown),功耗为0。扩展资料我们最常用到的是S3状态,即Suspend to RAM(挂起到内存)状态,简称STR。顾名思义,STR就是把系统进入STR前的工作状态数据都存放到内存中去。在STR状态下,电源仍然继续为内存等最必要的设备供电,以确保数据不丢失,而其他设备均处于关闭状态,系统的耗电量极低。一旦我们按下Power按钮(主机电源开关),系统就被唤醒,马上从内存中读取数据并恢复到STR之前的工作状态。内存的读写速度极快,因此我们感到进入和离开STR状态所花费的时间不过是几秒钟而已。而S4状态,即STD(挂起到硬盘)与STR的原理是完全一样的,只不过数据是保存在硬盘中。由于硬盘的读写速度比内存要慢得多,因此用起来也就没有STR那么快了。STD的优点是只通过软件就能实现,比如Windows 2000就能在不支持STR的硬件上实现STD。参考资料来源:百度百科—ACPI