摘要:java 代码: 差异体现在第一行输出; 这行是在Derived的构造函数中输出的,Derived本身没有构造函数,它只调用父类的构造函数,即Base的Base(), 并执行其中的 fun() 函数; 对于C++代码,执行的是Base::fun(); 对于Java代码,执行的是Derived::fu
        
阅读全文
 
    
        
        
摘要:C++ 代码: 运行结果: 若是将主函数修改为: 运行结果: 分析,说明: 在c++中,重载不会发生在基类与派生类之间,重载 制发生在同一类中!当基类和派生类中存在同名函数时,无论同名函数的形参个数或者类型是否相同,派生类中的同名函数都会将基类中的同名函数隐藏(将在下边说明隐藏)掉,而不会是重载关系
        
阅读全文
 
    
        
        
摘要:某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表5-1所示。 运行结果: java 代码实现:
        
阅读全文
 
    
        
        
摘要:摘要: C++成员变量 初始化赋值 你都清楚吗?还有好多坑,好多细节也不知道。。。 今天在写一个类的时候,由于该类的一个成员变量是引用,所以初始化出现了问题,查了一下之后,才发现,原来引用的初始化和const常量 一样只能在构造函数的初始化列表里初始。突然发现自己的C++基础本科的时候学的有待重温。
        
阅读全文
 
    
        
        
摘要:最近正值过年在家,新年初一,闲暇时间无事可做便把以前看过的书籍整理了一下,顺手也把这本“深入理解C指针”的书重新读了一遍,这本书总体感觉比较简单,但是还是不免有些地方是平时没有想到过或者没有注意到的,这里做下记录以便以后需要时再来查看。 1. 自实现 内存 安全释放函数 safeFree 对空地址释
        
阅读全文
 
    
        
        
摘要:函数原型: char *strtok(char *s, const char *delim); char *strsep(char **s, const char *delim); 功能:strtok和strsep两个函数的功能都是用来分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字
        
阅读全文
 
    
        
        
摘要:第一部分: 将 char * 或者 char [] 转换为 string 可以直接赋值,转换。 第二部分: 将 string 转换为 char * 或者 char [] string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有 3种方法: 1. 调用 str
        
阅读全文
 
    
        
        
摘要:平时编程里经常需要用到数据结构,比如 栈和队列 等, 为了避免每次用到都需要重新编写的麻烦现将 C++ 编写的 数据结构 栈 记录下来,以备后用。 将 数据结构 栈 用头文件的形式写成,方便调用。 具体的调用形式: 运行结果:
        
阅读全文
 
    
        
        
摘要:平时编程里经常需要用到数据结构,比如 栈和队列 等, 为了避免每次用到都需要重新编写的麻烦现将 C++ 编写的 数据结构 队列 记录下来,以备后用。 将 数据结构 队列 用头文件的形式写成,方便调用。 具体的调用形式: 运行结果:
        
阅读全文
 
    
        
        
摘要:在C/C++中经常会遇到对一段固定的连续内存进行拷贝操作, 这时候我们就需要用到 <cstring> 头文件 中的 memcpy 函数。 具体使用如下: 其中 , y 为 拷贝到的内存段 开始地址, x 为 从拷贝一方的 内存段 开始地址。 第三个参数为拷贝的内存字节数,这里采用 sizeof 对类
        
阅读全文
 
    
        
        
摘要:直接插入排序: 从待排序元素的 下标1 位置开始, 将其与前面的元素进行大小比较若是大于则结束此次循环,否则将前面的元素后移,按此方式判断直到遍历结束。 主函数:
        
阅读全文
 
    
        
        
摘要:直接选择排序, 从前到后, 依次选择出待排序数据的最小值并将其与待排序数据的首数据相交换。
        
阅读全文
 
    
        
        
摘要:上大学学数据结构的时候就学过 冒泡法, 作为比较经典的排序方式由于其时间复杂较高一直作为入门级的算法,虽然冒泡算法在实际应用中较少但是也是有一定的研究价值的,这里给出三种实现,第一种为原始算法时间复杂度为 O(n); 第二种为加入标志位, 使算法在待排序数据已成有序情况前提前结束; 第三种,记录每一
        
阅读全文
 
    
        
        
摘要:采用动态规划策略,python实现与C++实现等价。 Python 代码: C++ 代码:
        
阅读全文
 
    
        
        
摘要:动态规划,入门题,属于 斐波那契数列 的变形, 没学过算法之前使用穷举法发现耗时较大。
        
阅读全文
 
    
        
        
摘要:作为一个本科硕士都是在一个普通的省属211大学读书的我虽然有着两年的工作经验但是对计算机这东西仍然是不太在行,在2016年读到研三的时候准备报考同一城市的985高校东北大学,联系了一通老师最后只有得到的答案基本都是没有名额,东北大学学术排名前几的老师回复我的都是委婉中带着鼓励及激励这一点确实感觉真的
        
阅读全文
 
    
        
        
摘要:原题链接:https://www.nowcoder.com/questionTerminal/a5190a7c3ec045ce9273beebdfe029ee?toCommentId=390344 去年找工作时参加了网易的内推,编程题的确有难度,其中对于我来讲最难懂的一道题就是下面的那个“幸运的袋子
        
阅读全文
 
    
        
        
摘要:hadoop 是当前很火的一个 大数据运行框架和平台, 对于这个神奇的大家伙我甚是搞不清楚,前段时间闲来无视便把 HADOOP 运行起来, 看着它的操作记录存储部分(操作日志), IMAGE 记录着平台所有的文件操作记录,比如 创建文件,删除文件,改名 等等, 以下是我的一些小观察。 格式化 初始化
        
阅读全文
 
    
        
        
摘要:如题,前一阵有几个同学去面试回来后说又一道编程题不会,出于好奇大家就讨论了这道题,后来发现该题难度不大不过一定要动些小脑筋不然采用穷举法也确实是算不出来的。 由于画图实在是不在行,所以就画了一个简略的图: 下面给出解题的代码: 总体的解题思路就是采用勾股定理,给定一个整数坐标X,假设存在整数Y满足 
        
阅读全文
 
    
        
        
摘要:NSGAII(带精英策略的非支配排序的遗传算法),是基于遗传算法的多目标优化算法,是基于pareto最优解讨论的多目标优化,下面介绍pareto(帕累托)最优解的相关概念。 Paerot支配关系 Pareto最优解定义 多目标优化问题与单目标优化问题有很大差异。当只有一个目标函数时,人们寻找最好的解
        
阅读全文
 
    
        
        
摘要:遗传算法中的交叉操作是 对NSGA-II 源码分析的 最后一部分, 这一部分也是我 从读该算法源代码和看该算法论文理解偏差最大的 函数模块。 这里,首先提一下,遗传算法的 交叉操作、变异操作都是需要设定概率的, 即交叉概率和变异概率。 假设种群个体 大小为 popsize , 那么交叉操作需要进行 
        
阅读全文
 
    
        
        
摘要:以上, 为NSGA-II 源码中给出的几个测试函数, 其中无限制条件的测试函数不需解释, 对有限制条件的做一定说明。 根据比对, 可以直到算法中, 将所有的约束条件都转换为 >=0 。 所以, 违反限制条件的 约束函数值 均小于 0 。 TNK 测试函数有一定特殊性, 因为其中存在 无意义的个体, 
        
阅读全文
 
    
        
        
摘要:This is the Readme file for NSGA-II code. About the Algorithm NSGA-II: Non-dominated Sorting Genetic Algorithm - II Please refer to the following pape
        
阅读全文
 
    
        
        
摘要:这部分比较简单,具体的函数数值计算是需要调用设定的目标函数的,此部分一个不能忽略的问题是 超出限制条件的处理 , 故对此加以解释。 首先是包装函数, 核心操作调用 evaluate_ind 实现。 6行 到 9行,根据标识位判断是否需要进行 超限 处理。 13行 到 19行, 对个体的所有限制条件遍
        
阅读全文
 
    
        
        
摘要:种群解码函数 decode_pop 为包装函数, 核心调用函数为 decode_ind , 对每个个体进行解码。 核心解码操作: 其中,15行, 将个体某变量的比特编码 转换为 实数。 因为需要考虑精度问题,所以二进制编码的个体长度表示的范围空间(double)(pow(2,nbits[j])-1)
        
阅读全文
 
    
        
        
摘要:遗传算法的变异操作 一次进化过程中的 变异操作, 需要调用 变异函数 mutation_ind 种群个数popsize 次。 函数包装,判断是实数编码还是二进制编码并调用不同的变异函数。 二进制编码 的 变异操作: 每个个体 的 每个变量 的 二进制编码段 的 每个比特位, 以变异概率 pmut_b
        
阅读全文
 
    
        
        
摘要:以上代码里的两个函数都为包装函数,最终的计算都是需要调用下面的函数 assign_crowding_distance (population *pop, int *dist, int **obj_array, int front_size) 。 其中,加入一定的判断过程,对一个层里面只有两个个体的情
        
阅读全文
 
    
        
        
摘要:按照个体的不同 目标函数 序号(objcount), 对种群序号数组obj_array按照拥挤距离进行快速排序。 将带排序的个体索引序号 按照 拥挤距离 排序。(快速排序法)
        
阅读全文
 
    
        
        
摘要:以上代码,83行代码之前和 rank.c 中代码基本一致,其功能就是选出当前种群的非支配解。 85行到99行代码,意思是,如果该层个体加入到新种群中后个体总数不超过设定的种群个体数则直接加入, 97行代码,调用 assign_crowding_distance_indices , 计算加入个体的拥挤
        
阅读全文
 
    
        
        
摘要:该非支配分层基本思想是设置两个双向链表(orig cur),orig 链表里面存放所有待分层排序的个体索引,cur链表中的元素为分层结束后该层的个体索引。 每次在orig 中取出的元素对应的个体为 a, cur 中取出的元素对应的个体为 b 。 若 b支配于 a ,则取 orig 中对应的下一个个体
        
阅读全文
 
    
        
        
摘要:report_pop 将种群中所有个体的 目标函数值, 限制条件值, 编码值 打印出来。 report_pop 种群中的非支配个体并且限制条件总和为0 (constr_violation == 0.0)的个体的 目标函数值, 限制条件值, 编码值 打印出来。
        
阅读全文
 
    
        
        
摘要:list 结构体中有两个指针,可构成双向链表,数值空间存放 索引序号 。 insert 函数 申请一块新的内存空间,放在在 list 指针 指向的空间之后。 del 函数 将 list 指向 的个体空间释放。 以上两个操作在插入,删除操作后都有修改指针操作,保证原有链表 的 上下链接正常。
        
阅读全文
 
    
        
        
摘要:1 /* Routine for mergeing two populations */ 2 3 # include 4 # include 5 # include 6 7 # include "global.h" 8 # include "rand.h" 9 10 /* Routine to merge two populations into one */ ...
        
阅读全文
 
    
        
        
摘要:以上代码是判断两个个体的支配关系的。 基本遵循两个原则,首先是判断两个个体是是否超出限制条件,即判断 constr_violation 的大小。 如果个体 没有超过限制条件 则个体的 constr_violation >= 0,constr_violation 默认值 为 0 。 然后判断两个个体之
        
阅读全文
 
    
        
        
摘要:tourselect.c 文件中共有两个函数: selection (population *old_pop, population *new_pop) individual* tournament (individual *ind1, individual *ind2) 首先,第一个函数代码如下:
        
阅读全文
 
    
        
        
摘要:NSGA(非支配排序遗传算法)、NSGA-II(带精英策略的快速非支配排序遗传算法),都是基于遗传算法的多目标优化算法,是基于pareto最优解讨论的多目标优化。 在官网: http://www.iitk.ac.in/kangal/codes.shtml 可以下载到 NSGA-II 的C语言版源码,
        
阅读全文
 
    
        
        
摘要:本文主要介绍遗传算法(实数编码)的交叉操作中的SBX,模拟二进制交叉。 首先,给出个人用python2.7实现的代码,具体模块已上传到: https://github.com/guojun007/sbx_cross 以下内容引至: http://blog.csdn.net/silence1214/a
        
阅读全文
 
    
        
        
摘要:遗传算法,是最常用的解决优化问题的算法,是最早的群智能算法。遗传算法中主要包括,选择、交叉、变异算子,其中对DNA个体的编码方式分为实数编码和二进制编码等。今日由于学习和工作需要对该算法进行了一些了解,对该算法中常用的竞赛选择方式做如下笔记: 遗传算法中的竞赛选择方式是一种放回抽样,几元竞赛就是一次
        
阅读全文
 
    
        
        
摘要:数据来源: https://www.cs.cinvestav.mx/~emoobook/ 展示部分数据如下:(ZDT系列) 地址:https://www.cs.cinvestav.mx/~emoobook/apendix-d/apendix-d.html ZD1 数据链接: https://www.
        
阅读全文