- 博客(22)
- 收藏
- 关注
原创 堆——实现及应用
概念完全二叉树:若设二叉树的深度为 h,除第 h 层外,其它各层(1~h-1)的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边。用数组表示(下标从 1 开始),则有:arr[i] 的左孩子是 arr[2*i],右孩子是 arr[2*i+1];arr[i] 的父节点是 arr[i/2]。大顶堆:每个结点的值都大于或等于其左右孩子结点的值。小顶堆:每个结点的值都小于或等于其左右孩子结点的值。操作注:本节以小顶堆为例,记堆的大小为 n。首先定义一个堆。class He
2020-09-17 01:29:18 1059
原创 北航大学生活动发布与社交平台-UniActive
目前北航的学术讲座、博雅课堂、社团活动和各个学生会组织的活动并没有一个统一的发布平台和入口,学生、老师及活动组织者需要通过不同的网站进行注册报名,并且这些网站也没有相关的日程提醒功能,也无法让活动参与者对组织者提供反馈。我们旨在用一个带有网页端的平台,来改变这一现状,方便北航师生的课余生活。本系统为面向北航全校师生的活动发布、管理和社交平台,目的旨在方便全校的活动组织者和参与者,在活动发布、宣传通知、日程提醒和参与层面,给予一个统一的发布平台,并基于推荐算法为广大师生提供当前北航正在进行的、人气高的或用户
2020-07-19 15:31:28 273
原创 基于 Django 的图书馆借阅系统
项目 GitHub 仓库项目需求系统建模活动图普通用户注册后通过前台页面登录,进行浏览、查询、借书、还书等操作。图书馆管理员通过后台管理界面登录,可直接对数据库进行增删改查操作。用例图首页用户可以选择登录或注册。个人中心用户可以浏览借阅列表,对列表中的书籍进行还书操作。如果逾期,则还需要缴纳罚金。借书页面用户首先通过输入关键字查询相关书籍,然后对返回列表中的书籍进行借书操作。后台管理管理员登录后台后可以查看数据库和日志信息,必要时进行增删改查
2020-07-19 14:32:58 3135 9
原创 网络嗅探与防范实验
实验工具与环境配置服务器操作系统:macOS Catalina 10.15.2客户端操作系统:macOS High Sierra 10.13.6FTP 服务器:QuickFTP Server 1.0.4FTP 客户端:ForkLift 2.6.6浏览器:Chrome 83.0.4103.61Sniffer 工具:Wireshark 3.2.3邮箱登录嗅探我们知道,现在绝大多数网页访问都是基于安全的 HTTPS 协议,本实验选择的 QQ 邮箱也不例外。不同于 HTTP 协议,HTTPS 使
2020-07-19 13:33:48 981
原创 虚拟病毒分析与清除方法
实验工具与环境配置虚拟机软件:VMware Fusion 11.5.5操作系统:Windows XP虚拟病毒:VirtualVirus进程管理器:IceSword运行虚拟病毒在 Windows XP 虚拟机中,运行 VirtualVirus 可执行文件。从现象上看,病毒会导致每隔一段时间就弹出一个对话框,不断累积。事实上,触发虚拟病毒之后,除了开启本身进程(VirtualVirus)之外,还会把自身复制到 C:\WINDOWS\system32 和 C:\WINDOWS\ 目录,并分别
2020-07-19 12:14:33 1377 1
原创 Python 实现图像快速傅里叶变换和离散余弦变换
图像的正交变换在数字图像的处理与分析中起着很重要的作用,被广泛应用于图像增强、去噪、压缩编码等众多领域。本文手工实现了二维离散傅里叶变换和二维离散余弦变换算法,并在多个图像样本上进行测试,以探究二者的变换效果。1. 傅里叶变换实验原理对一幅图像进行离散傅里叶变换(DFT),可以得到图像信号的傅里叶频谱。二维 DFT 的变换及逆变换公式如下:DFT 尽管解决了频域离散化的问题,但运算量太大。从公式中可以看到,有两个嵌套的求和符号,显然直接计算的复杂度为 O(n2)O(n^2)O(n2) 。为了加快傅
2020-07-19 10:56:33 1659 1
原创 图像灰度直方图均衡和线性变换
灰度变换是指根据某种目标条件,按一定变换关系逐点改变源图像中每一个像素灰度值的方法,目的是为了改善画质,使图像的显示效果更加清晰。图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。本文通过实现直方图均衡和线性变换分别对图像进行处理,研究其原理及效果。1. 直方图均衡算法流程统计各灰度级的像素点个数,并计算从 0 到 255 的累积值。根据频率的累积分布计算得到各灰度级变换后的灰度级。对原图像的每个像素点进行映射变
2020-07-19 10:20:00 3778
原创 HTTP 与 HTTPS 协议分析
万维网客户程序与万维网服务器程序之间的交互遵守严格的协议,这就是超文本传输协议 HTTP(HyperText Transfer Protocol)。HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。安全套接字层 SSL(Secure Socket Layer) 和运输层安全 TLS(Transport Layer Security)是现在广泛使用的两个安全协议,作用在端系统应用层的 HTTP 和运输层之间,在 TCP 之上建立起一个安全通道,为通过 TCP 传输的应用层数据提供安全保障。超
2020-07-15 23:15:25 699
原创 Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines 论文研读
摘要本文提出了一种用于训练支持向量机的新算法:序列最小优化算法(SMO)。训练支持向量机需要解决非常大的二 次规划(QP)优化问题。SMO 将这个大的 QP 问题分解为一系列最小的 QP 问题。这些小的 QP 问题可以通过解析来解决, 从而避免了将耗时的数值 QP 优化用作内部循环。SMO 所需的内存量与训练集大小成线性关系,这使 SMO 可以处理非常大 的训练集。由于避免了矩阵计算,因此对于各种测试问题,SMO 随训练集大小在线性和二次方之间缩放,而标准分块 SVM 算法随训练集大小在线性和三次方之间缩
2020-07-15 23:06:54 1491 2
原创 高通滤波法、微分算子法、神经网络方法实现图像边缘检测
边缘检测(Edge detection)是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。本文使用多种不同的方法,实现对 Lena 肖像的边缘检测,研究分析各算法的效果和优缺点。所涉及的方法如下:高通滤波法理想高通滤波器Butterworth 高通滤波器指数高通滤波器微分算子法Roberts 算子Sobel 算子Laplacian 算子Canny 算子神经网络方法HED 算法高通滤波法图像中的边缘或线条等细节部分与图像频
2020-05-15 23:41:34 4020
原创 Linux 上搭建 Snort+BASE 入侵检测系统
配置实验环境由于本人电脑的存储空间不足,无法再承担安装一个虚拟机的开销,因此在阿里云上申请了一个云服务器进行本次实验。服务器配置如下:1 核 - 2GB 内存 - 40GB 系统盘操作系统:Ubuntu 18.04修改 Ubuntu 源查看 /etc/apt/sources.list 发现已经配置好了阿里源,故不再做修改。如有需要,可自行改为阿里源或清华源,提高安装包下载速度。...
2020-05-04 22:20:53 2961 3
原创 洛谷 P1219 八皇后
这道题感觉没有必要用好几个数组甚至二维数组来做吧……把问题抽象一下,其实不需要显式地模拟棋盘的行列,这样代码也更简洁。实际上,要满足“每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子”的条件,只需要让序列任意两个位置上的数字之差不等于其距离之差。举个例子,假设当前要决定第pos行的棋子所在的列数i,即序列ans[]的第pos个位置的数字为i,那么只要让i与po...
2019-08-28 11:29:29 223
原创 Kaggle比赛(二)House Prices: Advanced Regression Techniques
房价预测是我入门Kaggle的第二个比赛,参考学习了他人的一篇优秀教程:https://www.kaggle.com/serigne/stacked-regressions-top-4-on-leaderboard通过Serigne的这篇notebook,我学习到了关于数据分析、特征工程、集成学习等等很多有用的知识,在这里感谢一下这位大佬。本篇文章立足于Serigne的教程,将他的大部分代...
2019-08-21 18:23:53 3160 1
原创 Kaggle比赛(一)Titanic: Machine Learning from Disaster
泰坦尼克号幸存预测是本小白接触的第一个Kaggle入门比赛,主要参考了以下两篇教程:https://www.cnblogs.com/star-zhao/p/9801196.html https://zhuanlan.zhihu.com/p/30538352本模型在Leaderboard上的最高得分为0.79904,排名前13%。由于这个比赛做得比较早了,当时很多分析的细节都忘了,而且由...
2019-08-20 10:33:52 254
原创 洛谷 P1080 国王游戏
这是一道贪心题,贪心的策略是将大臣们按左右手金币的乘积升序排列,具体证明过程可以参见洛谷大佬的题解,这里就不再赘述了。因为本菜鸡之前没有接触过高精度运算,对C++的运算符重载也不太熟练,所以正好借此机会记录一下用到的高精度模版。模版框架参考于:https://blog.csdn.net/Wall_F/article/details/8373395然而,直接复制该模版会导致TLE,原因在于这...
2019-08-20 10:32:24 173
原创 洛谷 P1177 【模板】快速排序
这道题用传统快排(如下所示)的结果就是最后三个点TLE:void swap(int &a, int &b){ int tmp = a; a = b; b = tmp;}void quickSort(int a[], int left, int right){ if (left >= right) return;...
2019-08-20 10:28:29 208
原创 洛谷 P1036 选数
这道题的关键在于如何列出所有的选数组合,那么自然想到递归。我们将n个数存入数组num[]中,选数过程可以看作是从下标0~n-1中选择不重复的k个填满k个空位。函数dfs()中sum记录当前已选数的累加和,left记录当前剩余空位数,p指出当前空位可以从num[]中哪一位下标开始选。由于组合是无序的,且不能选择重复的数,所以要遵循从前往后选数的规则,即后一个空位只能选择num[]中下标比前一个空位所...
2019-08-20 10:20:20 126
原创 BUAA-OO-2019 第四单元总结
UML作业架构设计这一单元的作业本质上是对数据之间的联系进行解析,并重新建立数据结构以方便查询的工作,这就要求我们了解各种UmlElement的结构以及他们之间的关系是如何组织的。第十三次作业在这次作业的架构上,首先是建立了MyUmlInteraction类,实现UmlInteraction接口,以完成各种查询方法。由于输入数据不保证顺序性,所以不能边读边处理,而是要先将各种元素分类保存在...
2019-08-20 10:16:12 225
原创 BUAA-OO-2019 第三单元总结
JML语言理论基础梳理及工具链注释结构JML以javadoc注释的方式来表示规格,每行都以@起头。行注释://@annotation块注释:/* @ annotation @*/JML表达式JML的表达式是对Java表达式的扩展,新增了一些操作符和原子表达式。原子表达式\result表达式:表示一个非 void 类型的方法执行所获得的结果,即方法执行后的返回值。\resul...
2019-08-20 10:15:23 180
原创 BUAA-OO-2019 第二单元总结
第五次作业本次作业,需要完成的任务为单部多线程傻瓜调度(FAFS)电梯的模拟。设计策略先来先服务的单电梯是一个标准的**"生产者-消费者"模型**。虽然在本次作业中调度器似乎是不必要的,但为了更好地应用"生产者-消费者"模型,并方便下一次作业的扩展,还是应该保留了调度器的概念,将其作为"托盘"来存放还未服务的请求。显然,读取输入并解析为请求就成为了生产者,而电梯就成为了消费者,而在本次作业...
2019-08-20 10:14:12 298
原创 BUAA-OO-2019 第一单元总结
第一次作业第一次作业需要完成的任务为简单多项式导函数的求解。思路因为仅仅是简单多项式的求导,所以求导本身没有什么可说的,直接套用幂函数的求导公式就行了,主要的精力是花在了正则表达式上。这里推荐两个网站:https://github.com/ziishaned/learn-regexhttps://regex101.com前者可以用来学习正则表达式的语法,后者则提供实时的正则表达式匹配,...
2019-08-20 10:13:06 558
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人