- 博客(7)
- 收藏
- 关注
原创 oj_18.04.19
1.数字三角形问题问题描述:给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。73 88 1 02 7 4 44 5 2 6 5问题分析:该问题的关键是,并非可以随意选择一层中的任意一个数字,路径的意思是层与层之间经过的数字是相邻的,因此不能用从n-1层递归到n层的思想。因此,本题的求解还是暴力求解,不过可以通过保存运算结果...
2018-04-20 08:57:27
183
原创 2018.03.28
寒假差不多两个月身体不适,完全颓废了,开学学习托福了一个月就要考试了,突然觉得自己的低效率很对不起父母,一次1800多的考试费,我却如此随意对待,总觉得时间还多,可以多考几次。其实自己根本没有钱了,托福上100不知道还有几次,还要考gre,其实并没有多少时间了,还有项目和research,以及文书和陶瓷。 3.31要考托福了,这次感觉很虚,寄希望于第二次,希望七月份能把托和G都pass吧。哎,...
2018-03-28 10:58:29
183
原创 《算法导论》学习笔记(二)
第3章 函数的增长 这部分的内容和高中数学的数列部分内容相近,用极限的思想去看待问题,发现两者有惊人相似的本质,这与算法本身处理的数据是离散的这点本质密切相关。算法的时间复杂度用指令或者操作总次数来表述,那么这就涉及到数列的求和问题,其中包括数列的上界和下界,以及上确界和下确界(对应算法分析中的“渐进紧确界”asymptotically bound)。大体的思想和数列证明题相似,O记号和Ω记号表...
2018-03-25 23:00:27
476
原创 oj_18.03.25
1.半数集问题问题描述: 给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下。(1) n∈set(n);(2) 在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;(3) 按此规则进行处理,直到不能再添加自然数为止。例如,set(6)={6,16,26,126,36,136}。半数集set(6)中有6 个元素。注意半数集是多重集。 对于给定的自然数n,编程计算半数集se...
2018-03-25 21:29:48
264
原创 《算法导论》学习笔记(一)
今日开始学习《算法导论》这本巨著,记录下一些心得。 以下是第二章:算法基础的内容。 如果从理论上分析一个算法的正确性,其实是一件不容易的事,因为你无法通过穷举所以情况来验证正确性,所以就需要一套理论可以通过合理的逻辑以及使用递推和归纳的手段来验证其正确性。这里有点像高中数学中数列的证明题一样,递推和数学归纳是一种重要的数学(骗分)手段。2.1插入排序先实现一个经典的排序算法,插入排序:vo...
2018-03-18 11:13:54
776
原创 C语言-粒子群算法(PSO)
粒子群算法是一种全局随机搜索算法,收敛速度比遗传算法快但容易陷入局部最优,但是可以通过调整权重ω自适应来提升性能。 粒子群最主要的本质是通过综合粒子历史最佳位置和全局最佳位置的影响加上惯性因子ω来生成下一代(下一个位置),计算的公式主要是: vi = ω×vi + c1×r1×(pBesti-xi) +c2×r2×(gBesti-xi) xi = xi +vi 具体代码如下(其他都与GA差不多)v...
2018-03-18 09:00:23
1268
原创 C语言-遗传算法(GA)
遗传算法是比较经典的群体智能算法,属于随机搜索算法的一种。遗传算法属于全局性搜索算法,因为存在基因交叉互换和基因突变,因此比较不容易陷入局部最优。遗传算法的本质是随机生成一些合理的解,通过计算代入变量得出的值,优胜劣汰,保存优良解,淘汰不良解,再通过随机地两两交配互换对应变量的值以及改变某解中的某一变量来生成新的解向量,这些过程可以称之为适应度评估,交叉,突变。对于交配对象的分配,本算法使用轮...
2018-03-10 23:02:13
6401
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人