- 博客(39)
- 收藏
- 关注
原创 马拉车算法
这种算法的时间复杂度为O(n^2),并且奇偶字符串的中心点是不同的。因此在处理时,可以在字符串的中间加上特殊字符,以使其都变成奇字符串,列如字符串:abba可以变成:#a#b#b#a#,字符串aba可以变成:#a#b#a#这样无论对于奇字符串还是偶字符串都变成同样的处理逻辑了。2、遍历的下标小于r:根据回文字符串的特性,可以直接填充,比如·当我们遍历到底一个字符c时,前面p的值为0,0,1,0,3.此时中心值为4,r为7,则由回文字符串的特性可以直接将后面的三个进行对称填充为010。
2025-02-20 21:33:07
210
原创 unknown hook ‘pytest_yaml_run_step‘ in plugin....
使用 pip install pytest-yaml-sanmu就可以解决啦。这种原因是因为没有安装pytest-yaml-sanmu的包。
2024-12-17 10:59:11
186
原创 特工找密码(蓝桥杯)
此时x和y已知贡献为4。剩余部分x和y的共计需要贡献出6,转换成二进制为110,而这个第二位的1必定是其中一方贡献出来的,但是x和y已知的都贡献出了第二位的1(010),因此,这种情况下不能找到对应的x,和y。观察到x和y的和为8,那么这个和已知的贡献是x和y都有的2。注意:按位与是都为1时其值才为1,所以当x和y按位与的结果为2时,其x和y的二进制的第二位一定都为1。对于案例二,按位与结果是4 和为6,这是不成立的,因为按位与的x和y都贡献出了4,所以x和y的值必然是大于等于4的。
2024-12-13 12:09:05
641
原创 分布式数据库垂直分片如何计算?
上述的这种方式,计算的相对来说较慢,因为相同的还要相加。我们先来看图a,在a中关注数值不为0的,对于查询q1来说,数值不为0的属性为A2,A3,A5,这三个进行两两组合,可得到的组合为(A2,A3)、(A2,A5)、(A3,A5)然后再相应的AA矩阵中对应的位置填上q1的频次。同理,对于q2来说,不为0的位置为A1,A2,A3,A5,那么所得的组合为(A1,A2)(A1,A3)(A1,A5)(A2,A3)(A2,A5)(A3,A5),同样在其对应的位置填上q2的频次,如果原位置有数值,直接相加即可。
2024-06-24 20:33:29
816
1
原创 TypeError: __randomstate_ctor() takes from 0 to 1 positional arguments but 2 were given
但是代码在本地一切都能跑的通,所以一般不是代码的问题,此时需要检查一下自己安装的numpy版本。我的本地的numpy版本是1.26.4,。服务器上安的版本的是1.22.X。将服务器的numpy版本更改成与本地相同的之后,代码可以正常运行了。所以,如果同样出现了上述错误,并且代码确定没有问题的话,可以试着改一下自己的numpy版本。
2024-05-30 21:42:04
925
原创 ubuntu 使用conda 创建虚拟环境总是报HTTP错误,转换多个镜像源之后仍报错
开始,我以为是conda 镜像源的问题,但是尝试了好几个镜像源都不行,还是报各种各样的HTTP错误。后来查阅很多,总算解决了。使用vim 编辑器打开 ~/.condarc文件,之后再进行创建虚拟环境就没问题啦。
2024-04-16 18:54:50
551
原创 AttributeError: type object ‘mmap.mmap‘ has no attribute ‘ACCESS_READ
在使用mmap时,运行项目,出现了报错:AttributeError: type object ‘mmap.mmap’ has no attribute 'ACCESS_READ。在百度了很多都没有找到结果,后来将头文件引用改成了。代码成功运行,虽然我也不知道这是为什么。
2023-09-22 11:02:26
425
原创 关于Streamspot中StreamHash的介绍
在阅读这篇文章时,我对于文中所提到的StreamHash方法特别费解,在重复阅读了好几遍,并结合源代码进行分析,终于对此有所了解,特在此分享,如有不对的地方,请多多批评指正。最终得到的Projection即为该直方图所对应的L维向量,具体代码含义是:shingle全集中的每个字符串都进行相应的L次哈希映射,并且映射得出来的L。使用这种方法,当新的边到来时,需要相应的更新直方图的元素,同时更新对应的权重,也就数ZG也随之更新,但是,这样的话计算量会变大(因为新的ZG要与L。
2023-07-30 19:18:58
466
1
原创 2016年Streamspot、2020年Unicorn、2020年ProvDetector总结对比分析
这里遍历的是图的子结构。其二:在于Unicorn的流式特性和Streamspot的流式特性是不同的,Unicorn的流式特性按照时间戳生成迭代的直方图,从而生成迭代的图形草图。(2)从1->2,Unicorn将图转换为了直方图,其中直方图中的每个元素描述了图的一个独特子结构,这个子结构考虑到子结构中顶点和边上附加的异构标签,以及这些边的时间顺序。(3)从2-3,由于溯源图的特点,即使在k=1的情况下,S(K-shingle全集)也可能以组合的方式基于增加,因此使用chunk(在之后简化为C)进行分割。
2023-07-22 13:00:19
1385
3
原创 History is a Vast Early Warning System: Auditing the Provenance of System Intrusions ----阅读报告
在捕获层本文主要介绍了四种捕获(取证)工具,分别是:(1)虚拟化层监控:主要用于监控虚拟机的相关行为信息。最近的基于虚拟化层的方法利用了记录和重放(RR)技术在VMM中嵌入的便利性[89, 90]。尤其值得注意的是,季等人[88]利用这种方法实现了对虚拟机逐条指令执行的重放,并收集了高保真的数据溯源。这种方法的一个重要优点是,在生成重放所需的跟踪之外,在RR系统中不需要运行时审计;相反,分析师可以以任何粒度的后验方式提取入侵证据。(2)内核级监控。
2023-06-10 20:02:13
734
原创 卷积神经网络经典网络(神经网络篇章三)
该种解决方法可以理解为,对于一层的输出,当进行下一次的卷积时,其最终的结果H(x)=F(x)+x即最终的结果不仅仅是由卷积后的结果,还有原始的结果x;则最终的结果还是x;x还可进行下一层的卷积。在进行卷积网络学习中,理论上来说,卷积层数越多,提取的特征数也就越多,训练的效果就越好,但是在实际运行的过程中,会发现当层次到一定数量之后,越高层次的神经网络其错误率会比低层次的还要高。Resnet的网络,随着卷积层数的提升,其损失也随着降低,解决之前网络所存在的问题,促进了卷积神经网络的发展。
2023-03-27 20:52:45
108
原创 卷积神经网络概述及相关概念讲解(二)
卷积神经网络也称(CNN)网络,主要应用于计算机视觉这个部分。比如图像任务:图像检测,图像分类,图像检索。上一篇文章中所说,神经网络是用于特征的提取,同样卷积神经网络也是一个特征提取的过程。传统神经网络存在一些问题,如权重参数矩阵通常过大,以及过拟合风险过大等,为了解决这个问题,提出了卷积神经网络。1、超分辨率重构:将原始的模糊图像通过训练变成清晰的图像。2、医学任务:如细胞检测等3、字体识别4、无人驾驶5、人脸识别。
2023-03-27 17:17:57
1020
原创 神经网络概述
引言机器学习深度学习K近领算法的流程神经网络基础线性函数损失函数前向传播softmax分类器反向传播神经网络的结构正则化与激活函数数据预处理参数初始化。
2023-03-27 12:24:41
602
原创 python爬虫中常用的模块介绍
urllib3模块是一个第三方的模块,主要使用连接池进行网络请求的访问。使用urllib3发送网络请求时,需要首先创建PoolManager对象(连接池管理对象),再通过该对象调用 request() 方法发送请求。
2023-03-24 17:59:41
729
原创 论文笔记----DEPCOMM: Graph Summarization on System Audit Logs for Attack Investigation
高级持续性威胁(APT(Advanced Persistent Threat)),本质是针对性攻击。利用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式。主要针对企业和政府重要信息资产的,对信息系统可用性、可靠性构成极大挑战的信息安全威胁其一般受国家或大型组织操控,受国家利益或经济利益驱使,由具有丰富经验的黑客团伙实施,具有技术性强、持续时间长、危害性较大等特点,是近年来出现的新型综合性网络攻击手段。监视系统,观察系统之间的响应,并将生成的内核级审计事件作为系统审计日志。
2023-03-18 22:21:18
1077
1
原创 # 使用IDEA创建java ee项目,并配置tomacat使其正确运行
IDEA中正确配置tomcat,以及创建java EE项目并正常运行
2023-02-08 21:34:58
2374
1
原创 JAVA WEB 使用dao方式实现增加雇员、修改雇员信息,显示雇员图片等功能
整个项目的目录架构如下:废话不多说,直接上代码:Emp.javapackage dao;import java.util.Date;import org.eclipse.jdt.internal.compiler.ast.ThisReference;import com.mysql.jdbc.Blob;public class Emp { private int empno; private String ename; private String job;
2021-11-20 20:24:34
1217
原创 IEDA中提示找不到jdbc连接数据库驱动程序
在运行java web项目时,IEDA在控制台提示:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver java.lang.NullPointerException这种情况有两种可能的原因1、项目中没有添加依赖项:即连接数据库的jar包这种情况只需要在项目中添加jar包即可具体步骤如下:打卡文件---->项目架构选择添加jar或目录把你连接数据库的那个jar包添加进去就可以了如果添加完依赖项还不可以的话,那么就需要将该j
2021-11-10 19:30:03
2229
1
原创 汇编语言中各种寄存器的总结
CS:代码段寄存器DS:数据段寄存器DS,全称:Data Segment register,为数据段寄存器,其作用主要用于访问内存中的数据,常与偏移地址共同使用,那么ds的作用是什么呢?通俗点来说就是寻找数据。cpu要读写一个内存单元时,必须要知晓这个内存单元在哪,因此便可以通过ds(数据段寄存器)和偏移地址两个参数,来确定这个内存单元在哪。一、访问内存中的数据的方式方式一:段地址(ds):[偏移地址]方式二:[偏移地址],等同于ds:[偏移地址]需要注意 在访问内存中数据的时候,段地址不能直接
2021-10-07 21:59:17
4160
1
原创 elipse与数据库Mysql连接,并实现创建数据表的功能
elipse与数据库相连一、在eclipse中加载jdbc驱动程序:点击windows–>Preferences–>Java–>Bulid Path–>User Libraries点击右侧NEW按钮,输入创建的libraries的名称(可命名为:jdbc),并打上下面的对勾。回到上一级界面,点击Add External JARs,打开到你的jdbc存放的目录,打开,点击Apply and Close.二、项目中导入jar包。选择想要添加jar包的项目,右键–>
2021-06-06 11:28:14
3468
原创 Java中List和ArrayList的区别
区别用几句话来简单概述就是:1、List是一个接口,而ArrayList是List接口的一个实现类。2、 ArrayList类继承并实现了List接口。3、因此,List接口不能被构造,也就是我们说的不能创建实例对象,但是我们可以像下面那样为List接口创建一个指向自己的对象引用,而ArrayList实现类的实例对象就在这充当了这个指向List接口的对象引用。因此在java中List list=new List(); 会导致编译出错,这是因为List是一个接口,接口不能被实例化。而ArrayLis
2021-05-31 11:28:53
11483
4
原创 关于ArithmeticException 异常捕获(double类型的数据除于0为什么是无穷大?)
关于ArithmeticException 异常捕获(double类型的数据除于0为什么是无穷大?)在做实验编写应用程序,从命令行中输入表示两个小数的参数的字符串,求它们的商,要求程序捕获NumberFormatException异常和ArithmeticException。参考代码:当输入代码,运行程序时:此时我们输入被除数为4,除数为0,程序可以捕获到除0异常,即程序此时捕获到的除0异常是执行语句if(d2==0) {throw new ArithmeticException("捕获到除0异常
2021-04-26 21:51:25
3260
原创 链式队列的基本操作-从创建到销毁
#include<stdlib.h>#include<stdio.h>//定义int的别名为QElemTypetypedef int QElemType;//链队列typedef struct QNode {// 结点类型 QElemType data; struct QNode* next;} QueuePtr;typedef struct { // 链队列数据类型 QueuePtr front; // 队头指针 QueuePtr rear
2020-11-01 20:14:26
974
原创 常数据成员、常成员函数
定义常数据成员:类型 const 对象名;或者 const 类型 对象名;例如:const clock c1(9,9,9)或者:clock const c2(10,10,10);常对象的几条特殊规则:1、常对象,不能被赋值。2、常对象,不能访问非常成员函数。3、常对象,不能被更新。4、常数据成员,只能通过初始化列表来获得初值。什么时候用常对象?1、函数返回值,2、函数形参(常引用)常成员函数1、常成员函数,不能修改(更新)对象数据成员的值。2、常成员函数,不能调用该类中没有用con
2020-05-16 15:40:34
2530
原创 静态成员
当用关键字static 说明一个类成员时,该成员称为静态成员。静态成员分为:静态数据成员、静态成员函数。静态数据成员的定义和初始化定义静态数据成员:class a{ vint value;public: static int s_vlaue;//在类内声明静态数据成员。};//在类外定义静态数据成员:int a:: s_value=6;静态成员的特性:类的所有对
2020-05-15 21:53:07
387
原创 类类型
类的声明:类的成员构成类是一种抽象数据类型,声明如下:Class ClassName 关键字Class用于声明一个类类型{数据成员函数成员};类内: 在类声明之内,类外: 在类声明之外。c++中通过设置成员的访问控制属性来实现对类成员的访问控制,这些属性控制有:public protected private类的声明:对成员的访问控制在声明类时,具有不同访问属性的成员可以按任意顺序出现修饰访问属性关键字可以多次出现。class ClassName{public:公有成员
2020-05-15 21:28:12
1226
原创 构造函数与析构函数
构造函数是类的一种特殊成员,本质上也是类的成员函数。函数名和类名相同,没有返回类型,可以有参数。当创建类的一个新对象时,构造函数被自动调用,完成对象的初始化工作。实现构造函数:初始化数据成员1、赋值语句的方式:Clock(int h,int m,int s){hour=h;minute=m;second=s;}2、表达式表的方式:Clock (int h,int m,int s):hour(h),minute(m),second(s){}如果构造函数有参数,但是在创建对象时有又不给
2020-05-15 21:06:05
379
原创 关键字this
c++为每一个非静态 成员函数都提供一个this指针。this指针是一个隐含的指针,它指向了正在被成员函数操作的那个对象。class Counter{ int value;public: void setValue(int v){ value=v; } .... };//在编译器运行的时候就会将value=v转换为this->value=vthis指针不能显示声明,它只是一个非静态成员函数的一个形参。一般
2020-05-15 16:11:29
139
原创 继承与派生
继承与派生继承:一旦指定了某种事物的父代的本质特征,那么它的子代将会自动具有那些性质,这就是一种朴素的可重用的概念。派生: 子代可以拥有父代没有的特性,这就是可扩充的概念继承就是在已经存在的基础上建立一个新的类,已存在的类称为基类或父类, 新建立的类称为派生类或子类。派生类的功能:1、吸收基类成员2、改造基类成员3、添加新成员单继承和多继承单继承: 派生类只有一个直接基类。语法格式:class 派生类名:<继承方式> 基类名{…//派生类修改基类成员…//派生类添加新成员
2020-05-15 15:53:32
359
原创 c++中的传值调用
c++中的传值调用void func(int num){num++;}int main(){int value=5;func(value)cout<<value;//此时输出的value值为5。return 0;}在传值调用时,该段代码中的value值将其值5传给num,num会自动分配一个内存空间,存储值=5,然后进行num++,但在其执行完该函数后,这段内存空间就会自动释放,存储的num值6也无法传递给value,所以输出的value值仍为5。为了解决这一问题,我们
2020-05-11 15:52:12
467
原创 重载函数、内联函数
重载函数:两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器会根据实参类型及个数的最佳匹配来自动确定调用哪一个函数。int add(int x,int y){......};float add(float x,float y){......};int add(int x,int y,int z){......};float add(float x,float y,float z){......};int main(){int a,b,c;float f1,f2;add(a
2020-05-11 15:16:17
306
原创 使用new和delete实现动态内存的分配和回收
为什么要用new和delete分配动态内存的分配和回收?在C++/C语言的标准库函数我们用malloc与free实现动态内存单元的分配与回收,注意 malloc和free是库函数而new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。但使用new/delete显然要比使用malloc/free运行程序效率更高。对于非内部数据类型的对象而言,光用maloc/free无法满足...
2020-05-05 18:10:18
566
原创 c++中的数据类型
c++的数据类型可以分为两类,一类为基本数据类型,一类为构造数据类型基本数据类型:字符类型:char ( 默认:signed)、unsigned char(无符号字节 ) 在32位系统中一个char类型一般为8个bit,所以能存储的数据范围为-128~127,而unsigned char则是0~255短整型:short 、unsigned short整型:int、unsigned int...
2020-05-05 17:31:32
1046
原创 c++第二章——变量与基本类型
标识符与关键字标识符:标识符是在程序中使用的变量名、函数名、标号等统称为标识符。标识符对大小写字母敏感。用户自定义标识符时(包含数字、字母、下划线),必须以字母和下划线开头。且用户自定义的标识符不能连续出现两个下划线,也不能以下划线紧连大写字母开头。此外,定义在函数体外的标识符不能以下划线开头。关键字:是C语言提供的有特殊含义的符号,也叫做“保留字”C语言一共提供了32个关键字,这些关键字...
2020-04-22 12:40:14
225
原创 C++第一章知识点总结
程序与软件程序:是为实现特定目标或解决特定问题而用的计算机语言编写的命令序列的集合。为实现预期目标而进行操作的一系列语句和指令。程序一般分为系统程序、应用程序两大类。软件:是一系列按照特定顺序组织的计算机数据和指令的集合,简单来说就是程序加文档的集合。软件包含程序。 一般来说程序被划分为:编程语言、系统软件、应用软件,和介于这两者之间的中间件。软件并不止包括可以在计算机上运行的电脑程序,与这些...
2020-04-20 19:51:24
334
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人