- 博客(36)
- 收藏
- 关注
原创 2024届计算机保研经验贴(部分版)中国海洋大学OUC版
由于网上有大量关于保研基本流程的介绍。阅读本文前,已默认读者对保研有了基本的了解。因此,本文出现的概念,如:bar、弱com、CCF A、oq等需要读者提前了解。
2023-10-06 16:34:01
814
原创 数据结构实验7:校园地图导航(QT版)
地图不低于五个点可以在代码里设置好点名,路径,路径权重程序运行,输入两个点,输出最短距离及最短路径加分项:可视化地图 QThttps://github.com/adventurer-w/OUCmapmainwindow.hwangziyi.hmain.cppmainwindow.cppwangziyi.cppmainwindow.ui...
2022-07-01 18:39:38
2989
原创 数据结构实验6:哈夫曼编码实现文本压缩
两个功能输入字符串,输出字符串的哈夫曼编码输入文本文件(英文),输出哈夫曼编码文件附加:解压缩,即给出哈夫曼编码文件和哈夫曼树,恢复原始字符串文件。功能一:输入字符串,输出字符串的哈夫曼编码功能二:输入文本文件(英文),输出哈夫曼编码文件功能三:解压缩,即给出哈夫曼编码文件和哈夫曼树,恢复原始字符串文件。...
2022-07-01 17:53:32
1827
2
原创 数据结构实验5:KMP算法查找自己生日
利用圆周率生成函数生成圆周率,并在此基础上实现KMP算法查找自己生日这里使用的是梅钦公式(Machin formula):\frac{\pi}{4}=4\arctan\funcapply\frac{1}{5}-\arctan\funcapply\frac{1}{239}或者写为:\begin{matrix}\arccot\funcapply(x)=\frac{1}{x}-\frac{1}{3x3}+\frac{1}{5x5}-\frac{1}{7x^7}+\ldots\\pi=4\times(4\ti
2022-07-01 17:51:18
803
原创 数据结构实验4:栈迷宫、队列迷宫
1、 利用栈的迷宫求解2、 利用队列的迷宫求解求迷宫路径算法的基本思想若当前位置“可通”,则纳入路径,继续前进; 若当前位置“不可通”,则后退,换方向继续探索; 若四周“均无通路”,则将当前位置从路径中删除出去。用栈求迷宫中一条从入口到出口的路径的算法设定当前位置的初值为入口位置;do{若当前没探索过且可通,则{将当前位置插入栈顶;//纳入路径若该位置是出口位置,则结束;//求得路径存放在栈中否则切换当前位置的东邻方块为新的当前位置;}否则 //当前位置探索过,或不可通若栈不
2022-07-01 17:48:41
1337
原创 数据结构实验3:一元多项式的乘法
实现一元多项式的乘法(需要编写可运行程序)要求:1、通过键盘随机输入两个多项式P(x)和Q(x)的内容。2、输出结果要有P(x)、Q(x)以及他们的积。3、输入输出多项式的格式可自行定义。...
2022-07-01 17:45:12
899
原创 数据结构实验2:一元多项式的加法
实现一元多项式的加法(需要编写可运行程序)要求:1、通过键盘随机输入两个多项式P(x)和Q(x)的内容。2、输出结果要有P(x)、Q(x)以及他们的和。3、输入输出多项式的格式可自行定义。...
2022-07-01 17:43:48
1556
原创 NLP实验五:形态分析
请实现以下有限自动机的状态转移过程,通过它的状态转移过程可以识别happy的原型, 比较级happier, 最高级happiest,可以将单词的比较级和最高级转换为“原型+后缀”的形式,进行单词形态的还原,其中为输入输出标签对,即输入i不仅进行状态转移,同时会输出y,可以理解为把i转换为y,另外ε为空输入,即不需要输入,可以输出+,可以理解为这一步转移不需要识别字符,直接输出+。状态转移过程需要自己实现。图1 happy的状态转移过程操作系统:macOS Monterey 12.4IDE:CLion
2022-07-01 17:39:14
440
原创 NLP实验四:汉语分词
利用人民日报语料库或自己构建的语料库(30词以上)作为词典,任选五个句子,并基于正向最大匹配算法和最短路径法分别对这五个句子进行分词,并分别计算分词结果的正确率,召回率和F-测度值。输出句子,基于两种算法的分词结果和其对应的评价指标值。操作系统:macOS Monterey 12.4IDE:CLion 语言:C++中文编码:UTF-8...
2022-07-01 17:36:58
933
原创 NLP实验二:二元文法模型
熟练掌握语言模型的基本概念,深入理解n 元文法(n-gram)模型。熟练掌握参数估计的方法,实现在语料库中对句子中的词进行词频统计,输出句子的出现概率。附加:使用代码实现数据平滑。用免费的中文分词语料库,如人民日报语料库PKU,使用语料库中的常见词编写一个句子,使用二元语法(即每个词只与和它相邻的前一个词有关)在语料库中对句子中的词进行词频统计,输出句子的出现概率。举例:假设语料为:\langleBOS\ket 商品 和 服务 \langleEOS\ket\langleBO\mathrm{\ }
2022-07-01 17:33:52
1283
原创 NLP实验一:形式语言和自动机
掌握有限自动机的基本概念掌握有限自动机与正则文法的联系,并设计程序实现有限自动机,判断字符串是否被接受请设计程序实现如下有限自动机, 并且输入三个不同的字符串, 对字符串进行合法性检测 (即判断字符串中的字符是否在输入符号集中), 之后由有限自动机判断字符串是否被接受。状态集: \left{q_0,q_1,q_2,q_3\right} (可用其他字符代替)输入符号集: {0,1}初始状态: q_0终止状态: q_0状态转移函数:开始...
2022-07-01 17:29:39
775
原创 深度学习基础——week4
音乐、语言、文本、视频、股价…假设当前当前数据只跟 τ\tauτ 个过去数据点相关p(xt∣x1,…xt−1)=p(xt∣xt−τ,…xt−1)=p(xt∣f(xt−τ,…xt−1))p\left(x_{t} \mid x_{1}, \ldots x_{t-1}\right)=p\left(x_{t} \mid x_{t-\tau}, \ldots x_{t-1}\right)=p\left(x_{t} \mid f\left(x_{t-\tau}, \ldots x_{t-1}\right)\righ
2022-06-17 21:49:01
404
原创 深度学习基础——week3
残差结构有效解决了梯度消失/爆炸、退化问题重点:1X1卷积层作用是改变通道数右边的方法有效减少了参数重点:目的:使得一批(Batch)数据的特征矩阵每个维度满足均值为0,方差为1。(还有γβ\gamma \quad \betaγβ)对象:一批数据,某一个通道的所有特征矩阵注意:训练时,traning:True 验证时:traning:FalseBatch size 越大越好bn层建议放在卷积层后,卷积不要使用bias (没用)μσ2\mu \quad \sigma^{2}μσ2在正向传播过程中统计得到γβ
2022-06-17 21:45:09
137
原创 深度学习基础——week2
Step1: 搭建神经网络结构Step2: 找到一个合适的损失函数(Cost Function)Eg : 回归损失:均方误差(MSE),平均绝对值误差(MAE)分类损失:交叉熵损失,hinge lossStep3: 找到一个合适的优化函数,更新参数反向传播(BP),随机梯度下降(SGD),螺旋数据分类用的 Adam 等等。全连接层的花费是巨大的,一张百万像素的图片输入维度1000000,假如隐藏层维度为1000,那么就需要10910^9109个参数。此外拟合这么多的参数也需要巨量的数据,参数过多也可能会出现
2022-06-17 21:44:05
782
原创 深度学习基础——week1
PyTorch 是基于以下两个目的而打造的python科学计算框架:无缝替换NumPy,并且通过利用GPU的算力来实现神经网络的加速。通过自动微分机制,来让神经网络的实现变得更加容易。张量如同数组和矩阵一样, 是一种特殊的数据结构。在PyTorch中, 神经网络的输入、输出以及网络的参数等数据, 都是使用张量来进行描述。张量属性从张量属性我们可以得到张量的维数、数据类型以及它们所存储的设备(CPU或GPU)。张量运算运算例如转置、索引、切片、数学运算、线性代数、随机采样等,下面是一些常见的张量运
2022-06-17 21:41:51
307
原创 离散数学实验4 平面图判定及对偶图的求解 c++
1、掌握最⼤匹配,交错路径的定义;2、掌握最⼤匹配的求解⽅法。输⼊:⽆向简单连通图的关联矩阵(例如:)。输出:此图的最⼤匹配数,和⼀个最⼤匹配例如:M={e1,e3}*说明:要求学⽣设计的程序不仅对给定相邻矩阵得出正确结果,还要对教师测试数据集得出正确结果。根据关联矩阵求出相邻矩阵,在根据匹配的定义找到⼀个最⼤匹配。预设输入边范围 :0......
2022-06-04 16:56:59
1779
原创 离散数学实验3 平面图判定及对偶图的求解 C++
给定平面图此图的面矩阵, 即 Mr=(mij)r×mM r=\left(m_{i j}\right)_{r \times m}Mr=(mij)r×m,mij={1ej 是 Ri 的边界 0ej 不是 Ri 的边界 m_{i j}=\left\{\begin{array}{cc}1 & e_{j} \text { 是 } R_{i} \text { 的边界 } \\0 & e_{j} \text { 不是 } R_{i} \text { 的边界 }\end{array}\right.mij=
2022-06-04 16:55:28
2232
2
原创 离散数学实验2 关联矩阵、相邻矩阵、生成树、环路空间、断集空间的求解 C++
掌握无向连通图生成树的求解方法;掌握基本回路系统和环路空间的求解方法;掌握基本割集系统和断集空间的求解方法;了解生成树、环路空间和断集空间的实际应用。给定相邻矩阵,求关联矩阵,生成树个数,输出其中任意一颗生成树的相邻矩阵和关联矩阵。求此生成树对应的基本回路系统,环路空间求此生成树对应的基本割集系统,断集空间预设输入点范围 :0.........
2022-06-04 16:54:21
3013
原创 离散数学实验1 可图画,可简单图化,连通图和欧拉图的判断 C++
掌握可简单图化的定义及判断方法掌握连通图、欧拉图的判断方法掌握欧拉回路的搜索方法了解欧拉图的实际应用给定一非负整数序列(例如:(4,2,2,2,2))判断此非负整数序列是否是可图化的,是否是可简单图化的如果是可简单图化的,根据Havel定理过程求出对应的简单图,并输出此简单图的相邻矩阵(默认第i行对应顶点vi)判断此简单图是否是连通的如果是连通图,判断此图是否是欧拉图。如果是欧拉图,请输出一条欧拉回路(输出形式如:v2−v1−>v5−>v3−>v4−>v5−>v2v_2-v_1->v_5->v_3->v_4
2022-06-04 16:53:19
4025
原创 CSAPP LAB buflab-handout实验报告
加深对IA-32函数调用规则和栈帧结构的理解对目标程序实施缓冲区溢出攻击(buffer overflow attacks)通过造成缓冲区溢出来破坏目标程序的栈帧结构继而执行一些原来程序中没有的行为要求通过栈溢出攻击,使之跳到smoke函数。文档给已经出了getbuf()、test()、smoke()的高级语言代码老规矩,先从 804934b 行指令可以看到 buf 缓冲区的大小为 50 个字节smoke 函数的地址为 0x08048ba1攻击字符串用来覆盖数组 buf,进而溢出并覆盖 ebp 和 ebp
2022-06-04 16:51:39
1407
原创 CSAPP LAB Binary bombs实验报告
逆向工程拆除“二进制炸弹”程序增强对程序机器级表示、汇编语言、调试器和逆向工程等 理解。一个“Binary Bombs”(二进制炸弹,简称炸弹)是一个 Linux可执行C程序,包含phase1~phase6共6个阶段。炸弹运行各阶段要求输入一个字符串,若输入符合程序预 期,该阶段炸弹被“拆除”,否则“爆炸”。你需要拆除尽可能多的炸弹拆弹装备:熟练使用gdb调试器和objdump;单步跟踪调试每一阶段的机器代码;理解汇编语言代码的行为或作用;“推断”拆除炸弹所需的目标字符串。在各阶段的开始代码前和引爆炸弹函数
2022-06-04 16:50:48
2467
原创 计算机系统基础Lab 1 位运算
实验前请认真阅读本文档和bits.c中的代码及注释(特别是bits.c前面部分的编程说明与示例),然后根据要求相应完成bits.c中的各目标函数的实现代码。 实验中实现的函数代码必须满足下述基本条件:只能使用有限类型和数量的C语言算术、逻辑操作,具体要求见每个函数前的注释说明中的"Legal ops"(允许使用的操作符)和"Max ops"(允许使用的最多操作符数量)。不得使用任何形式的强制类型转换。不得使用除整型外的任何其它数据类型,如数组、结构、联合等。不得定义和使用宏。不得定义除已给定的框架函数外的其
2022-06-04 16:48:55
3052
1
原创 五种常见的最短路算法 (朴素Dijkstra,堆优化Dijkstra, Bellman-Ford,SPFA,Floyd)
常见的五种最短路算法摘要本文主要介绍关于图的最短路的五种常用算法和其应用。朴素Dijkstra, 堆优化Dijkstra,Bellman-Ford,SPFA, Floyd。这几种算法有各自的优势和劣势,适用于不同的场景。文章的难度不大,适合算法初学者学习。五种最短路算法之间的区别注:n表示图中点的数目,m表示图中边的数目。朴素Dijkstra算法介绍DijKstra的核心思想是贪心。先将起点距离自己的距离设为0,其余设为正无穷。一共循环n次,每一次循环,找到目前没有被找到过并且距离起点
2021-08-06 21:05:17
404
原创 洛谷P2024 POJ 1182 食物链 【带权并查集】
洛谷P2024 POJ 1182 食物链 【带权并查集】题目描述动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B 吃 C,C 吃 A。现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 N 个动物所构成的食物链关系进行描述:第一种说法是 1 X Y,表示 X 和 Y 是同类。第二种说法是2 X Y,表示 X 吃 Y 。此人对 N 个动物,用上述两种说法,一句接一句地说出 K 句话,这
2021-08-05 00:39:17
203
1
原创 洛谷 P1379 八数码难题【搜索】
洛谷 P1379 八数码难题【搜索】题目描述在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。输入格式输入初始状态,一行九个数字,空格用0表示输出格式只有一行,该行只有一个数字,表示从初始状态到目标状态需要的最少移动次数(测试数据中无特殊无法到达目标状态
2021-08-05 00:22:04
229
原创 Acwing143.最大异或对 【字典树】【Trie】
143. 最大异或对在给定的 N 个整数 A1,A2……AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少?输入格式第一行输入一个整数 N。第二行输入 N 个整数 A1~AN。输出格式输出一个整数表示答案。数据范围1≤N≤10^5,0≤Ai<2^31输入样例:31 2 3输出样例:3这道题如果没有标签的提示的话,很难想到可以用字典树来完成,不过Ai的数据范围提到了2^31,也不难想到字典树还可以存储二进制数字。思路:将每个数以二进制方式存入字典树,找的时候从
2021-07-28 22:21:35
137
原创 Acwing831. KMP字符串【KMP模板】
831. KMP字符串给定一个模式串 S,以及一个模板串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串 P 在模式串 S 中多次作为子串出现。求出模板串 P 在模式串 S 中所有出现的位置的起始下标。输入格式第一行输入整数 N,表示字符串 P 的长度。第二行输入字符串 P。第三行输入整数 M,表示字符串 S 的长度。第四行输入字符串 S。输出格式共一行,输出所有出现位置的起始下标(下标从 0 开始计数),整数之间用空格隔开。数据范围1≤N≤1051≤M≤106输入样
2021-07-28 09:53:06
357
原创 实验十二 对象的持久化和异常
实验十二 对象的持久化和异常1 实验目的(1)学习对象的持久化方法 —— 文件操作(2)学习如何读取和写入文本文件(3)学习如何读取和写入二进制固定长文件(4)正确理解C++的异常处理机制,学习异常处理的声明和执行过程2 实验内容在《实验十 抽象类》的基础上进行扩展。(1)在类的层次中添加正方形框架(Square),声明为长方形的子类。为每类框架定义一个classId,即圆,1;长方形,2;直角三角形,3;正方形,4。定义每个框架的单价,单位是 元**/**厘米。(2)用一个文
2021-07-05 20:37:11
433
原创 实验十一 函数模板
实验十一 模板类1 实验目的学习函数模板的使用方法,包括以下几个方面:(1)学习为什么要使用模板,掌握函数模板的定义方法;(2)理解函数模板实例化的原理。2 实验内容定义一个求最大值的函数模板,可以求出一个下列数组中的最大者。(1)点(Point)对象数组。对《实验三 面向对象初步》中的Point类进行适当修改,通过调用函数模板,求出数组中离坐标系原点最远的点。请使用Point对象的distanceTo函数。(2)日期(Date)对象数组。对《实验三 面向对象初步》中的Dat
2021-07-05 20:34:42
595
原创 实验十 多态:抽象类
实验十 多态:抽象类1 实验目的学习为什么要使用抽象类;学习通过继承,实现代码重用的机制和方法;学习如何声明函数为纯虚函数;学习如何利用纯虚函数,编写一般成员函数。2 实验内容问题描述有一家叫“周大框”的公司,用金属线为客户定制各种图案的框架。目前,该公司只生产圆(Circle)、长方形(Rectangle)和直角三角形(Right Triangle)等三种框架。店铺负责接受客户的订单。客户除了选择图案的种类外,还要给出图案的大小,其中包括:圆形的半径;长方形的长、宽;直角
2021-07-05 20:32:57
673
原创 实验九 多态:虚函数
实验九 多态:虚函数1 实验目的(1)学习为什么要使用虚函数;(2)学习如何声明函数为虚函数;(3)学习如何声明异类数组(基类指针分别指向不同的派生类对象);(4)学习如何使用虚函数和异类数组实现多态调用。2 实验内容2.1 模拟银行帐户管理程序问题描述创建一个银行账户的继承层次,表示银行的所有客户账户。所有的客户都能在他们的银行账户存钱,取钱,并且账户还可以分成更具体的类型。例如,存款账户SavingsAccount依靠存款生利,支票账户CheckingAccount会对
2021-07-05 20:29:21
698
原创 实验八 多态:运算符的重载
实验八 多态:运算符的重载1 实验目的学习面向对象程序设计中“多态机制”的一种实现方法——运算符重载,包括:(1)学习如何定义运算符的重载;(2)学习如何使用重载的运算符。2 实验内容2.1 改进《实验三 面向对象初步》中的日期类在《实验三 面向对象初步》中,设计了日期类Date。本次实验将daysTo函数重载为减号运算符,使得t1 - t2的值为从日期t2到日期t1的天数。如果t1在t2之前,则为负数,即计算t1比t2晚多少天。重载大于运算符,如果t1在t2之后,则表达式t
2021-07-05 20:16:59
748
原创 实验七 继承与派生
实验七 继承与派生1 实验目的学习继承与派生的相关理论,熟悉不同继承方式下对基类成员的访问方式,包括以下几个方面:(1)学习声明和使用类的继承关系,声明派生类;(2)熟悉不同继承方式下,对基类成员的访问控制;2 实验内容2.1 停车场程序问题描述请根据题目要求完成简单的停车场管理程序。1.停车场(Park)有N个停车位(space),每个停车位可以停放不同类型的汽车(Automobile),包括卡车(Truck)、轿车(Car)、公交车(Bus),但同一时刻一个停车位只能停
2021-07-05 20:06:39
681
原创 实验六 对象数组
实验六 对象数组1 实验目的(1)学习如何使用数组名作为函数的参数,通过传数组的方式,在被调用函数中访问主调函数中的多个对象的方法。(2)学习如何在类中内嵌对象数组成员变量。(3)学习对象数组的初始化。2 实验内容2.1 根据题目要求编写模拟的程序(1)五一小假期,许多人选择外出旅游。每位乘客(Passenger)最多可以携带3件行李(Luggage)。并且乘客可以选择个人自由行;或者参加旅行社(TravelAgency)组织的旅行团。(2)自由行的目的地、旅行团的目的地都相
2021-07-05 20:03:40
918
原创 实验五 结构体和指针
实验五 结构体和指针1 实验目的(1)学习如何使用结构体的指针作为函数的参数,通过传地址的方式,在被调用函数中修改主调函数中的多个结构体变量的方法。(2)学习如何把逻辑结构相同的部分抽象为函数,以提高代码的可重用性,达到提高程序的可维护性的目的。2 实验内容2.1 模拟画图功能问题描述模拟计算机的画图功能,能够模拟画圆和长方形的功能。程序主要功能如下:① 提供一个如下的主菜单。\1. Circle (圆)\2. Rectangle (长方形)\0. Exit (退出)
2021-07-05 19:56:56
345
原创 实验4 对象作为数据成员
实验四 对象作为数据成员1 实验目的学习对象作为类的数据成员的使用方法,学习对象数据成员的初始化以及“成员初始化器”的使用方法。2 实验内容2.1 使用Date类,定义Employee类问题描述在《实验三 面向对象初步》中,设计了日期类Date。本次实验将设计雇员类Employee,并将日期类Date作为雇员类Employee的内嵌数据成员。日期类Date和雇员类Employee的声明分别如下所示:class Date {public:/* 默认构造函数,以fullye
2021-07-05 19:40:17
657
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人