信息论与编码大作业
function [ Huff_chart, Ave_length, yita] = huff_code( c )
%统计字符串中字符出现频率
t=unique(c);
for i=1:length(t)
Num(i)=length(strfind(c,t(i)));
end
Num=Num/sum(Num);
%构建Huffman编码表
Huff_chart=cell(3,length(t));
for i=1:length(t)
Huff_chart(1,i)={t(i)};
Huff_chart(2,i)={Num(i)};
Huff_chart(3,i)={0};
end
%生成待编码矩阵,每列最后一个元素为新求和得到元素的位置
n=length(t);
A=sort(Num,'descend');%按降序排列
T=A;
A=A/sum(A);
B=zeros(n,n);
%生成第一列
for i=1:n
B(i,1)=T(i);
end
r=B(i,1)+B(i-1,1);
T(n-1)=r;T(n)=0;
T=sort(T,'descend');
t=n-1;
%生成编码表的其他各列
for j=2:n
for i=1:t
B(i,j)=T(i);
end
if t>1
K=find(T==r);
B(n,j)=K(end);
r=(B(t-1,j)+B(t,j));
T(t-1)=r;
T(t)=0;
T=sort(T,'descend');
t=t-1;
else
B(n,j)=1;
end
end
%对编码矩阵进行Huffman编码编码格式为:
%2--->0
%1--->1
Huff_code=zeros(1,n);
Huff_code(1,1)=2;
Huff_code(1,2)=1;
for i=n-2:-1:1
t1=Huff_code(B(n,i+1))*10+1;
t0=Huff_code(B(n,i+1))*10+2;
Huff_code(B(n,i+1))=[];
Huff_code(n-i+1)=t1;
Huff_code(n-i)=t0;
end
%将Huffman编码对应输出到Huffman编码表格中
A1=A;
for i=1:n
t=find(abs(A-Num(i))<10.^-3);
t=t(1);
A(t)=0;
Huff_chart(3,i)={strrep(num2str(Huff_code(1,t)),'2','0')};
end
%相关计算
Ave_length=zeros(1,n);
for i=1:n
Ave_length(i)=length(num2str(Huff_code(i)));
end
Ave_length=sum(Ave_length.*A1);
H1=log2(Num);
H=-Num*(H1');
yita=H/Ave_length;
end
文章浏览阅读1.2k次。Syntax Error: Error: Node Sass version 6.0.1 is incompatible with ^4.0.0,提示:Error: Rule can only have one resource source (provided resource and test + include + exclude)_syntax error: error: node sass version 6.0.1 is incompatible with ^4.0.0.
文章浏览阅读760次。DataNode(面试开发重点)_datanode
Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。这里使用 Python 基于 OpenCV 进行视觉图像处理,......
在多媒体通信领域,MRCP(Media Resource Control Protocol)协议被广泛用于控制语音识别和合成等媒体资源。UniMRCP是一个开源的MRCP实现,提供了客户端和服务端的库。UmcFramework是一个基于UniMRCP客户端库的示例应用程序框架,它帮助开发者快速集成和测试MRCP客户端功能。本文将详细介绍如何使用UmcFramework和unimrcpclient.xml配置文件连接到多个SIP设置,以及如何用C代码进行示例说明。
文章浏览阅读3k次。报错:java.net.ProtocolException: Server redirected too many times (20)1.没有检查到cookie,一直循环重定向。解决:CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));URL url = new URL(url); ..._java.net.protocolexception: server redirected too many times (20)
文章浏览阅读4.1k次。问题这是部分报错信息2019-07-11 14:03:34.283 WARN [restartedMain][DirectJDKLog.java:175] - Failed to scan [file:/D:/repo/org/apache/derby/derby/10.14.2.0/derbyLocale_ja_JP.jar] from classloader hierarchyjava...._failed to scan from classloader hierarchy
文章浏览阅读1.9k次。声明:此博客为学习笔记,学习自极客学院ZooKeeper相关视频;非常感谢众多大牛们的知识分享。相关概念:负载均衡(相关节点)架构图:说明:每当往集群中新增一个工作服务器时,都会再/server节点下创建一个对应的临时节点,该节点中应含有该服务器 的连接信息以及均衡标识等。当客户端需要连接worker server时,就会先读取/servers节点下的所..._zookeeper实现负载均衡案例
文章浏览阅读448次。枚举注解替换枚举java 虚拟机内存分配java 内存区域可分为方法区 存放虚拟机加载的类信息,常量,静态变量等数据。虚拟机栈 java 方法执行的内存模型:每个方法在执行的时候创建的栈帧,包括存储局部变量表,操作数栈,动态链接,方法出口等信息。本地方法栈 主要与Native相关堆 存放对象实例。程序计数器 当前线程执行的字节码行号指示器。java 数据类型占内存大小java 数据类型分为基本数据类型和引用数据类型。在32位系统上基本数据类型,本文中中的所有内存空间大小都在_android 枚举注解
文章浏览阅读486次。HDU1715:大菲波数求第i个斐波那契数问题(与HDU1316类似,但更简单):总结:数组开多大?题目中让求的最大的是第1000个斐波那契数是多少,由于f[0]不用,所以数组开到1001。import java.util.Scanner;import java.math.BigInteger;public class Main { public static void main..._返回第i个斐波那契数
文章浏览阅读418次。概述说明CAS内置了密码找回和密码修改的功能; 密码找回功能是,系统会吧密码重置的连接通过邮件或短信方式发送给用户,用户点击链接后就可以重置密码,cas还支持预留密码重置的问题,只有回答对了,才可以重置密码;系统可配置密码重置后,是否自动登录; 密码修改功能是,用户登录后输入新密码即可完成密码修改。安装步骤`1. 首先,搭建好cas sso server您需要按..._修改cas默认用户密码
文章浏览阅读141次。之前几章演示的熔断,降级 都是 RestTemplate + Ribbon 和RestTemplate + Hystrix ,但是在实际开发并不是这样,实际开发中都是 Feign 远程接口调用。Feign + Hystrix 演示: eruka(略)order 服务工程: pom.xml<?xml version="1.0" encoding="U..._this is order 服务工程
文章浏览阅读3.4k次,点赞35次,收藏43次。学习率是影响目标检测精度和速度的重要因素之一。合适的学习率调度策略可以加速模型的收敛和提高模型的精度。在YOLOv7算法中,可以使用基于余弦函数的学习率调度策略(Cosine Annealing Learning Rate Schedule)来调整学习率。