遗传算法(GeneticAlgorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它最初由美国Michigan大学J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著《AdaptationinNaturalandArtificialSystems》,GA这个名称才逐渐为人所知,J.Holland教授所提出的GA通常为简单遗传算法(SGA)。
  遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。
每个个体实际上是染色体(chromosome)带有特征的实体。
染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。
因此,在一开始需要实现从表现型到基因型的映射即编码工作。
由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小选择(selection)个体,并借助于自然遗传学的遗传算子(geneticoperators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。
这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。
2024/1/4 8:44:42 910KB 遗传算法
1
用labVIEW做的通信原理的小实验,可以实现三种不同的调制方式
2024/1/4 0:13:11 79KB labVIEW 二进制 数字调制
1
1.一棵二叉树的顺序存储情况如下:树中,度为2的结点数为()。
A.1B.2C.3D.42.一棵“完全二叉树”结点数为25,高度为()。
A.4B.5C.6D.不确定3.下列说法中,()是正确的。
A.二叉树就是度为2的树B.二叉树中不存在度大于2的结点C.二叉树是有序树D.二叉树中每个结点的度均为24.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是()。
A.CABDEFGB.BCDAEFGC.DACEFBGD.ADBCFEG5.线索二叉树中的线索指的是()。
A.左孩子B.遍历C.指针D.标志6.建立线索二叉树的目的是()。
A.方便查找某结点的前驱或后继B.方便二叉树的插入与删除C.方便查找某结点的双亲D.使二叉树的遍历结果唯一7.有abc三个结点的右单枝二叉树的顺序存储结构应该用()示意。
A.abcB.ab^cC.ab^^cD.a^b^^^c8.一颗有2046个结点的完全二叉树的第10层上共有()个结点。
A.511B.512C.1023D.10249.一棵完全二叉树一定是一棵()。
A.平衡二叉树B.二叉排序树C.堆D.哈夫曼树10.某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是()的二叉树。
A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子11.一棵二叉树的顺序存储情况如下:123456789101112131415ABCDE0F00GH000X结点D的左孩子结点为()。
A.EB.CC.FD.没有12.一棵“完全二叉树”结点数为25,高度为()。
A.4B.5C.6D.不确定二、填空题(每空3分,共18分)。
1.树的路径长度:是从树根到每个结点的路径长度之和。
对结点数相同的树来说,路径长度最短的是完全二叉树。
2.在有n个叶子结点的哈夫曼树中,总结点数是2n-1。
3.在有n个结点的二叉链表中,值为非空的链域的个数为n-1。
4.某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是任一结点无左孩子的二叉树。
5.深度为k的二叉树最多有个结点,最少有k个结点。
三、综合题(共58分)。
1.假定字符集{a,b,c,d,e,f}中的字符在电码中出现的次数如下:字符abcdef频度9122023155构造一棵哈夫曼树(6分),给出每个字符的哈夫曼编码(4分),并计算哈夫曼树的加权路径长度WPL(2分)。
(符合WPL最小的均为哈夫曼树,答案不唯一)哈夫曼编码:2.假设用于通信的电文由字符集{a,b,c,d,e,f,g}中的字符构成,它们在电文中出现的频率分别为{0.31,0.16,0.10,0.08,0.11,0.20,0.04}。
要求:(1)为这7个字符设计哈夫曼树(6分)。
(2)据此哈夫曼树设计哈夫曼编码(4分)。
(3)假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制数等长编码使电文总长压缩多少?(4分)(1)为这7个字符设计哈夫曼树为(符合WPL最小的均为哈夫曼树,答案不唯一):(2)哈夫曼编码为:a:01;b:001;c:100;d:0001;e:101;f:11;g:0000(3)假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制数等长编码使电文总长压缩多少?采用等长码,100个字符需要300位二进制数,采用哈夫曼编码发送这100个字符需要261二进制位,压缩了30
1
GrADS(GridAnalysisandDisplaySystem)是当今气象界广泛使用的一种数据处理和显示软件系统。
该软件系统通过其集成环境,可以对气象数据进行读取、加工、图形显示和打印输出。
它在进行数据处理时,所有数据在GrADS中均被视为纬度、经度、层次和时间的4维场,而数据可以是格点资料,也可以是站点资料;
数据格式可以是二进制,也可以是GRIB码,还可以是NetCDF,从而具有操作简单、功能强大、显示快速、出图类型多样化、图形美观等特点。
正因为如此,GrADS已迅速成为国内外气象界通用的标准图形环境之一。
2023/12/28 16:31:36 64KB GrADS 教程
1
这个是《linux二进制分析》的随书源码,并且增加了第二章的源码,国内不好找的。
另外还有该书的勘误,有需要的可以下载看看。
2023/12/28 16:37:03 186KB 随书源码 linux二进制
1
利用汇编语言实现一个可以在显示器上显示时、分、秒的电子时钟,并能提供整点报时功能。
基本要求:(1)设计一个基本的具有显示时、分、秒的电子时钟。
(2)到整点或预定的报警时间,能够以不同的音乐进行报时,可以自行设置闹钟报警时间;
(3)实物演示时要求讲出程序原理和设计思想;
(4)程序运行良好、界面清晰。
提高要求:设计一个具有钟面、分针、秒针的指针式钟表,在圆盘上有均匀分布的60根刻度,对应小时的刻度用不同颜色的长刻度区别,并且将12、3、6、9对应的拉丁文绘制于表盘外。
设计提示:(1)指针式钟表的绘制。
将屏幕设置成图形显示方式,通过画点、画线,画圆等基本程序完成钟表的绘制。
表盘圆周上刻度线段两端点坐标计算是钟表绘制的核心部分。
(2)秒针、分针、时针的转动。
是经过一定的延时时间,通过在下一位置重新画一个,在原来的位置用背景色覆盖的方法实现。
(3)音乐的演奏。
利用CPU支持的外围电路8254与8255,通过汇编程序改变8255的PB0,PB1口,接通扬声器,使得计算机能够发出一定频率的声音,同时通过8254的与8255连接的2号计数器控制指定频率,从而达到控制扬声器的音乐的效果。
通过建立适当的延时程序达到一定时间后则改变2号计数器产生的方波的频率,实现音乐程序的演奏。
二、需求和思路分析经分析本次程序设计的主要内容主要分为如下的几个模块:当前时间的获取并显示,码制转换,设定闹钟报鸣的时间,不同频率的闹铃声,钟表的绘制和并实现动态等模块。
其中钟表的绘制和动态走动部分比较难是本次课程设计的提高部分,且改模块可单独形成一个模块,所以放到最后进行考虑1时间的获取可以用INT21H的2CH功能,该功能调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在,保存的形式是以二进制的形式,故显示时要2码制转化利用ASCII码与二进制码的关系ASCII=二进制+30H3闹钟鸣叫主要利用8254的二号计数器和8255的PB0和PB1来设定4闹钟的表盘,指针的绘制,并实现时针,分针,秒针的走动。
主要通过过图形的画点进行操作,并通过在固定的区域内不断的刷屏来实现
2023/12/24 13:58:35 305KB 实验报告
1
arm64_rop_exploitarm64rop小工具二进制文件,用于将arm64反向外壳程序代码映射到内存中并执行代码这仅适用于目标arm64设备。
用于将rop小工具映射到内存中并从libc库执行shell代码的源代码。
在运行Ubuntu18.04.4LTS(GNU/Linux4.15.0-1062-raspi2aarch64)的RaspberryPi上测试了arm64代码。
执照有关详细信息,请参阅文件。
rop.py关于该项目将研究漏洞的利用以及面向收益的编程的使用。
这将建立在注入外壳程序代码以进行开发的基础上。
该项目的创举来自以下博客:但是,该博客有一些非常有用的小工具,但找不到该博客所指向的解决方案。
因此,决定以此为基础,并使用该rop博客的一些小工具来设计项目。
在受DEP(数据执行保护)保护的过程中-不应同时存在可执行和可写的
2023/12/24 12:53:47 16KB Python
1
SSCOM4。
2最好用的串口调试工具,让您爱不释手的专业串口调试软件,使用完全免费!本软件可以在Win95/98、Win2000、WinNT、WinXP等下面运行.软件功能主要为:1.接收从串口进来的数据并在窗口显示.显示流畅,可以保持接收大量数据不死机.2.所接收到的数据数据显示方式可以选择为字符方式或者HEX方式4.中文显示无乱码,且不影响速度5.串口波特率可以选择为110bps-256000bps.(波特率>115200时需要硬件支持)6.可以即时显示存在的串口号.如果您增加了usb转串口等设备,串口号也会在列表中出现.7.可以选择“5、6、7、8”四种数据长度.8.可以选择为“1、1.5、2”三种停止位.(1.5停止位需要硬件支持)8.可以自由选择校验方式.9.可以自由选择流控方式.(某些计算机不能选择硬流控)10.串口设置和字符串操作等设置在程序关闭时自动保存,打开时自动载入.11.可以在接收窗口按键即发送该键值.12.可以在字符串输入框输入您想发送的字符串,并发送.13.可以在字符串输入框输入您想发送的HEX数据串,数据的值从00到FF,没有任何限制.14.可以定时重复发送数据,并可以设置发送时间间隔.15.可以在发送字符串时选择发送新行,即自动加上回车换行.16.可以显示当前串口的CTS、DSR、RLSL(CD)信号线的状态.17.可以自由控制当前串口的DTR、RTS信号线的输出状态.18.可以打开一个文本文件或者一个二进制文件预览其内容,查看方式可以是文本或者HEX方式.19.可以打开一个文本文件或者一个二进制文件并以当前波特率发送到串口.20.可以保存串口接收到的内容到文件,文件名取自当前时间,保存在当前目录.21.可以即时显示发送的字节数和接收到的字节数,按清除窗口将会清零.22.带有功能强大的扩展功能:多条字符串发送预先定义,并自动保存.23.可以定义最多32条预备发送的字符串,每条字符串可以定义为HEX数据串或者字符串方式.在每一条数据的左边打勾就表示这是一条hex数据串.24.点击字符串右边的标号即可以发送这条定义好的字符串.25.可以设置为循环发送你定义过的多条字符串,并且可以设置发送时间间隔.25.可以同时打开多次软件,进行不同的串口的调试.26.在产品信息栏可以从网上自动获得现时最新的产品信息.27.这是个绿色软件,单个文件即可执行,不会给您的机器增加任何负担.28.发送字符串时选择'发送新行',可以加发回车换行.V4.1(2007-9-15)主要改进在:1。
发送文件字节数增加到8M字节2。
增加发送过程中断停止发送功能3。
增加发送进度条显示4。
修改保存接收到的数据为二进制文件,是原始的从串口收到的数据内容(不再修改00H为空格了)5.串口打开时的容错.由于很多人使用usb串口,当串口拔出时经常发生串口丢失错误.6.奇偶校验选择和流控生效了.(不过很多计算机还是无法选择硬流控)7.可以关闭设置栏,留出更多位置显示数据.
2023/12/24 8:25:30 716KB sscom4.2
1
定点除法运算有两种不同的实现方法,一种是恢复余数法,即在运算过程中,必须先算减法,若余数为正,才知道够减,若余数为负,则知道不够减,不够减时必须恢复原来的余数,以便再继续往下运算。
另一种是不恢复余数法,又称加减交替法,此次设计即是采用加减交替法来实现四位二进制数的定点原码一位除法。
2023/12/22 4:01:48 660KB 加减交替法
1
波形,图片,信号通过二进制存储方式存储在数据库access中,本实例是从access中读取波形,图片和信号并且显示。
2023/12/21 20:21:32 1.56MB labview 数据库 access 波形
1
共 550 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡