Algorithms
探索鸭
非宁静无以致远
展开
-
整数因子分解问题
问题的分析:该问题实际可以看成一个递归的过程。比如说题中例子12,如果把分解后的第一项设a,并且12%a为0,那么12/a的整数分解问题就是一个相同的递归过程。程序设计也很简单,只需要在一个遍历循环中嵌套一个函数即可实现。主要代码如下:void deposi(int num,int *count) { if (num == 1) { (*count) += 1; } else {...原创 2019-03-30 13:59:42 · 3299 阅读 · 0 评论 -
算法学习笔记之回溯法学习
1.回溯法解题的通常步骤:针对所给的问题,定义问题的解空间确定易于搜索的解空间结构以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索2.基本的回溯策略【也可以说是编程框架】a.递归回溯参数t表示深度,这一搜索过程按深度优先方式进行,调用一次Backtrace(1)即可完成整个回溯搜索过程。void Backtrace(int t) { if (t > n) ...原创 2019-05-07 11:57:14 · 214 阅读 · 0 评论 -
分支限界法解题思路
分支限界法介绍相比回溯法搜索,分支限界法是一种启发式搜索策略。分支与限界法不再单纯的像回溯法那样盲目的往前搜索,也不是遇到死胡同才往回走,而是依据节点表中不断更新的信息(此处的信息可根据具体情况具体选择),不断的调整自己的搜索方向,有选择,有目的地往前搜索;回溯也不是单纯地沿着父亲节点,一层一层地向上回溯,而是依据节点表中的信息进行回溯。以具体例子学习-----作业分配问题实现要求:...原创 2019-05-22 11:51:53 · 4383 阅读 · 0 评论 -
Floyd算法和Dijkstra算法
五行的Floyd算法:http://wiki.jikexueyuan.com/project/easy-learn-algorithm/floyd.htmlDijkstra算法:(类似0-1背包的动态规划)http://wiki.jikexueyuan.com/project/easy-learn-algorithm/dijkstra.html...转载 2019-05-22 20:08:36 · 266 阅读 · 0 评论 -
算法学习关于C++友元函数,私有成员的了解
#include <iostream>using namespace std;#define Len(x) sizeof(x)/sizeof(x[0])//template<class Type> Type MaxLoading(Type[], Type, int);template<class Type> class Loading { tem...原创 2019-06-11 10:44:47 · 171 阅读 · 0 评论 -
GA遗传算法求函数极值
课程要求函数如下:sqrt为开根号运算,x(j)的取值范围为[-500,500],初始群体大小为100。适应度函数的大小就是函数值大小,仅仅做了归一化。以后可能还会用到,代码做个保存,具体实现如下:交叉,畸变,选择概率可以根据具体情况修改import matplotlib.pyplot as pltimport numpy as npimport randomimpo...原创 2019-06-11 20:44:33 · 2427 阅读 · 3 评论