java课程设计关于哈夫曼树编码译码,输入一串字符串,将其根据字符出现的频率建哈夫曼树并根据树进行译码。
此word的代码完全拷贝在eclipse可直接运行,此文档仅供参考,希望各位能做出自己的修改成适合自己的文档。
2023/7/2 21:15:13 761KB 哈夫曼树
1
简单的遗传算法,计算函数最值.functionga_main()%遗传算法程序%n--种群规模%ger--迭代次数%pc---交叉概率%pm--变异概率%v--初始种群(规模为n)%f--目标函数值%fit--适应度向量%vx--最优适应度值向量%vmfit--平均适应度值向量clearall;closeall;clc;%清屏tic;%计时器开始计时n=20;ger=100;pc=0.65;pm=0.05;%初始化参数%以上为经验值,可以更改。
%生成初始种群v=init_population(n,22);%得到初始种群,22串长,生成20*22的0-1矩阵[N,L]=size(v);%得到初始规模行,列disp(sprintf('Numberofgenerations:%d',ger));disp(sprintf('Populationsize:%d',N));disp(sprintf('Crossoverprobability:%.3f',pc));disp(sprintf('Mutationprobability:%.3f',pm));%sprintf可以控制输出格式%待优化问题xmin=0;xmax=9;%变量X范围f='x+10*sin(x.*5)+7*cos(x.*4)';%计算适应度,并画出初始种群图形x=decode(v(:,1:22),xmin,xmax);"位二进制换成十进制,%冒号表示对所有行进行操作。
fit=eval(f);%eval转化成数值型的%计算适应度figure(1);%打开第一个窗口fplot(f,[xmin,xmax]);%隐函数画图gridon;holdon;plot(x,fit,'k*');%作图,画初始种群的适应度图像title('(a)染色体的初始位置');%标题xlabel('x');ylabel('f(x)');%标记轴%迭代前的初始化vmfit=[];%平均适应度vx=[];%最优适应度it=1;%迭代计数器%开始进化whileit<=ger%迭代次数0代%Reproduction(Bi-classistSelection)vtemp=roulette(v,fit);%复制算子%Crossoverv=crossover(vtemp,pc);%交叉算子%Mutation变异算子M=rand(N,L)<=pm;%这里的作用找到比0.05小的分量%M(1,:)=zeros(1,L);v=v-2.*(v.*M)+M;%两个0-1矩阵相乘后M是1的地方V就不变,再乘以2.NICE!!确实好!!!把M中为1的位置上的地方的值变反%这里是点乘%变异%Resultsx=decode(v(:,1:22),xmin,xmax);%解码,求目标函数值fit=eval(f);%计算数值[sol,indb]=max(fit);%每次迭代中最优目标函数值,包括位置v(1,:)=v(indb,:);%用最大值代替fit_mean=mean(fit);%每次迭代中目标函数值的平均值。
mean求均值vx=[vxsol];%最优适应度值vmfit=[vmfitfit_mean];%适应度均值it=it+1;%迭代次数计数器增加end
2023/7/1 23:41:32 4KB 遗传算法
1
BM算法被认为是亚线性串匹配算法,它在最坏情况下找到模式所有出现的时间复杂度为O(mn),在最好情况下执行匹配找到模式所有出现的时间复杂度为O(n/m)。
2023/7/1 10:20:04 147KB BM模式匹配算法-原理(图解)
1
1、掌握晶体振荡器的电路组成与基本工作原理。
2、熟悉晶体振荡器的串并联型的判断方法。
3、掌握晶体振荡器各项主要技术指标意义及测试技能。
1
ATMEL的AT91SAM7S64的RS485通讯程序,中断方式接收,收到后立即通过485发送出去,485配置的管脚为PA5,PA6,PA7(收发使能),开发环境是IAREmbeddedWorkbench4.5。
对于一个数据串的接收也是类似的,采用收到数据中断方式,在收完完整的数据后(接收结束后)才能发送,否则会存在总线冲突。
2023/6/10 18:33:27 1.1MB AT91SAM7S64 RS485
1
此代码是遍历pc上usb设备。
包含控制器hubport设配id等信息usb其实和串口是一样的,其端口也是固定的(如果你不接扩展hub)。
有时一台电脑接多个相同的usb设备,如果接连个摄像头(前后各一个),我们如果区分打开的是哪一个呢?1、先把usb设备先遍历出来,得到usb信息(设备串等)。
2、通过打开usb设备时返回信息(这个很重要//usb#vid_1d27&pid;_0600#5&10ef021e;&0&5#{c3b5f022-5a42-1980-1909-ea72095601b1})。
3、遍历注册表得到usb设备信息(#defineUSB_REGPATH"SYSTEM\\CurrentControlSet\\Enum\\USB\\")。
4、通过第1条的设备串、第2条打开设备返回信息、注册表。
就可以确定usb设备(控制器->hub->端口)readbyjerry
1
编译原理第一个实验,用C语言编写的词法分析器(附源文件)。
输入一串字符,可以识别出关键字、运算符,标识符等。
2023/6/8 9:50:55 312KB 编译原理实验 词法分析器
1
用汇编语言写的一端程序,它的功能是从大到小排列一列的数字。
2023/6/5 20:08:51 2KB 汇编 排序
1
文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。
试写一个实现这一目标的文字统计系统 (1)英文小说存于一个文本文件中。
待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。
程序的输出结果是每个词的出现次数和出现位置所在的行的行号,格式自行设计。
待统计的“单词”在文本串中不跨行出现,它或者从行首开始,或者前置以一个空格符。
(2)模式匹配要基于KMP算法(3)Java实现
2023/6/2 8:39:31 20KB java
1
利用First集,Follow集,预测分析表以及先进后出栈来实现LL(1)文法的分析程序,以及判别某个串是否属于当前文法的范畴,内含c++源代码和实验报告说明
2023/6/1 12:52:36 3.1MB 编译原理 上下文无关文
1
共 360 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡