杰维斯·穆恩迪数值算法与复杂性Jenkins-Traub算法2013年5月 介绍 该项目包含提供Jenkin-Traub算法实现的代码。 该算法比牛顿法(具有2阶,即二次收敛)的算法更快,可以找到多项式的根。 它可以处理复杂的系数和根,并且不会遇到稳定性问题。 对于该算法的概述,有关该算法的是一个很好的起点。 更完整的细节可以在Jenkins和Traub于1968年撰写并于1970年发表的找到。 要求 已在Python 2.7+上测试 怎么跑 该程序接受两个参数,其中之一是必需的。 这些在下面描述。 python main.py -p [Polynomial] -e [error] Where: [Polynomial] Required Parameter. This is a listing of all coefficients of t
2022-09-10 03:15:20 10KB Python
1
1.2国内外研究状况和发展趋势 程序代码的复制检测是计算机软件理论与计算机应用技术中的一个重要的科学 问题。最初应用于冗余代码的重复检测与代码优化等研究,后来则被广泛应用于抄 袭检测和代码重构的研究,今天程序代码的相似度研究还被应用于防范病毒的入侵 检测领域。上个世纪的70年代,国外就已经有研究人员对代码克隆、冗余代码的重 复检测和代码优化等技术展开了研究,这些技术后来被应用到程序代码复制检测领 域,同时也产生了一些识别程序代码抄袭或者大规模拷贝的软件。目前常用的程序 代码复制检测技术主要分为两类:基于属性计数(Attribute Counting:AC)的方法 和基于结构度量(Structure Metrics:SM)的方法。 基于AC的方法主要针对程序代码的各种统计属性进行处理,没有过多地考虑程 序代码的结构信息。Halstead提出的软件科学度量方法是目前为止最早的属性计数法 【31。该方法首先提出了软件度量的标准,然后基于该标准定义了多个软件度量特征, 通过对程序代码中的这些软件度量特征进行统计计数生成其特征向量,在此基础上 构建特征向量空间,这样程序代码便被映射到了一个11维的笛卡儿空间,之后运用 向量空间模型运用向量夹角余弦公式来度量向量之间的相似性,并以此为依据进而 度量程序对之间可能的“抄袭行为”。此后的基于AC方法的复制检测技术也多是基 于这种软件科学理论进行研究的。在Sallies所提出的检测技术中就采用了基于AC 的检测方法,在构建特征向量时,将度量指标定义为一个由容量、控制流、数据依 赖、嵌套深度、控制结构六部分组成的六元组向量降51。但是由于该方法较少考虑到 程序代码的结构和具体的语义信息,其检测的效率虽然较高但精度较差,错判的情 况多有发生。后来有人提出通过增加向量的维数来改善其检测精度,但效果并不明 显,Verco和Wise在其1976年发表的论文中指出,“通过单纯的增加向量的维数并 不能改善检测的错误率【6p。 而基于SM的方法则将程序内部结构加入了分析比较,由于该方法包更多的程 序内部的结构信息和部分语义信息,因此用来判断相似性将会很大程度上提高检测 的准确性。一般的SM方法检测机制主要包括两个关键步骤: 一个是程序标准化,即将源代码进行转化。例如将所有用户自定义标识符转换 成特定符号、过滤掉空白冗余与注释项、把大小写字母进行统一等等。具体的手段 又可以分为:token-based、string-based、syntax tree-based、semantic.based等。 String-based:首先源代码通常按行分割成字符串,每个程序片段包含相邻接的字 2
2022-09-06 14:25:52 2.29MB 语法树
1
哈里斯鹰算法java实现
2022-09-05 19:07:05 170KB 智能算法
1
MD5算法的实现 C++版本
2022-09-03 17:11:06 4KB md5 算法
1
一个简易病毒特征码扫描算法的 一个简易病毒特征码扫描算法的实现 一个简易病毒特征码扫描算法的实现 一个简易病毒特征码扫描算法的实现
1
通过新一代高级语言Julia实现标准粒子群算法,代码简洁,注释全,可拓展性强 可直接用于求解无约束工程优化问题,也可基于此代码进行算法学术改进,算法应用拓展 输入:决策变量数,种群规模,粒子群算法参数,最大迭代次数 输出:最优解,最优适应度,测试问题三维描述图,动态粒子群更迭图,收敛迭代图
2022-08-28 18:06:58 4KB 粒子群算法 Julia
1
本文档包含main.m,pso.m,schaffer2.m文件,能够直接用于无约束优化问题求解,可在此基础上,对标准算法进行学术改进,和工程应用拓展。 该算法思路清晰,算法精简,注释全,可拓展性强。
2022-08-28 18:06:57 1KB 粒子群算法 Matlab
1
最近做了一个科技树的功能,如上图树形结构, 一个节点有多个父节点/多个叶子节点, 要求叶子节点,整体在多个父节点的中间 算法思路是简单的,不过实现起来我是碰到了一堆问题,特别是递归导致卡死又得重启项目。 设置 root 的位置 布局叶子节点位置(由于每棵子树的宽度都不一致,必定导致叶子节点重合) 从最后一层开始,判断同一层相邻的叶子节点(n1,n2)是否重合,重合 移动 n1与n2共同的父节点下的n2的父节点 parentNode,向下一个yInterval间距. 由于移动了parentNode,parentNode的父节点中心就发生了偏移,所以中心对齐parentNode的父节点下的叶子节点... https://blog.csdn.net/weixin_41316824/article/details/126487794?spm=1001.2014.3001.5501
2022-08-24 19:05:50 8KB 树布局 树结构
1
ratelimit 基于令牌桶算法和漏桶算法来实现的限速限流,Golang实现
2022-08-22 19:02:46 50KB Go开发-数据结构和算法
1
代码说明 CBC模式的全称是Cipher Block Chaining模式,即密文分组链接模式,之所以叫这个名字,是因为密文分组像链条一样相互连接在一起。在CBC模式中,首先将明文分组与前一个密文分组进行异或运算,然后再进行加密。 填充提示攻击是一种利用分组密码中填充部分来进行攻击的方法。在分组密码中,当明文长度不为分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组长度。在填充提示攻击中,攻击者会反复发送一段密文,每次发送时都对填充数据进行少许改变。由于接收者(或者说服务器)在无法正确解密时会返回一个错误信息,攻击者通过这一错误消息就可以获得与明文相关的信息。(这一攻击并不仅限于CBC模式,还适用于所有需要进行分组填充的模式)。 填充提示攻击成立有两个重要前提: 1.攻击者能够获得密文,以及附带在密文前面的iv(初始化向量); 2.攻击者能够出发密文的解密过程,且能够知道密文的解密结果。 运行指导 将源码clone到本地运行Padding_Oracle_Attack.py程序即可。 软件环境:Visual Studio 2019 硬件环境:PC机
1