- 博客(16)
- 收藏
- 关注
原创 大作业:圆排列问题
问题 给定n个大小不等的圆c1,c2,…,cn,现要将这n个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。解析主要部分分为三个函数:1.center求每个圆的圆心坐标,利用直角三角形的定理,可以得出横坐标x的计算公式x^2 = sqrt((r1+r2)2-(r1-r2)2)推导出x = 2sqrt(r1r2)。如下图,三个圆半径分别为1,1,2cm,可得总长为4根号2+2,只要大小合适,目标圆就有可能与排列中的任意一个圆相切所以只要大.
2020-06-07 16:02:42
790
原创 遗传算法读书笔记
遗传算法读书笔记 -读《人工智能导论》(王万良)有感在近代的几百年间,我们从大自然的现象中学习到了无数富有价值的推理,像是飞机的飞行,由萤火4102虫发明了人工冷光,根据鱼的来潜浮方法发明的潜水艇......数不胜数 ,而今天在我阅读人工智能导论时我发现了一种神奇的算法,一种根据以达尔文的进化论思想为核心,依托自然选择而改良出的算法在如今有着相当广泛的应用。中学时大家都学过生物中的自然选择,生物进化是通过繁殖,变异,竞争和选择实现的,而进化算法则主要通过选择
2020-06-03 22:37:54
532
原创 作业12图的着色问题
问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。解析首先,使用邻接矩阵存储无向连通图;其次,明确color数组代表的含义:color[n],大小为n,下标肯定代表顶点,里面的值代表这个顶点放的是哪种颜色。还要判断当前顶点和哪些顶点有着色冲突,若有return false;否则return true。将颜色初始化,遍历搜索下一个颜色。根据着色情况输出、处理下一个顶点或.
2020-05-30 14:34:55
438
原创 作业11:最优前缀码
问题给定字符集C={x1,x2,…,xn}和每个字符的频率f(xi),求关于C的一个最优前缀码。解析哈夫曼算法:1)初始化n个单节点的树,每个字符的概率记在树的根中,用作树的权重。2)找到两棵权重最小的树,把它们作为新树中的左右子树,并把权重和记作新的权重记录在新树的根中。3)重复第二步直到只剩一颗单独的树。设计第一步:初始化n个单节点的树,并为它们标上字母表中的字符。把每个字符的概率记在树的根中,用来指出树的权重(更一般地来说, 树的权重等于树中所有叶子的概率之和)。第二步:重..
2020-05-26 14:28:32
442
原创 实验十 相容问题
问题相容问题,解析时给出其他几种贪心策略(如按开始时间从小到大、每个活动时间的占用时间等),并给出这些贪心策略无法实现最优的反例。有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。解析设计A={1} j = 1 for i = 2 to n do if Si >= f then A=A∪{i} j = i return A分析算法时间复杂度为O(n)源码[github源码地址].
2020-05-10 12:39:16
189
原创 作业9:lcs算法
问题 解析设计分析[算法复杂度推导]复杂度为O(mn)源码[github源码地址]https://github.com/hackkkkkk/calculate
2020-04-28 21:53:42
151
原创 实验八矩阵链乘法
问题设A1,A2···An为n个矩阵的序列,其中Ai为Pi-1*Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,···Pn>给出;给定向量P,确定一种乘法次序,使得基本运算的总次数达到最小。解析设A[i][j]A[i][j]为∏jk=ia[k]∏k=ija[k]设F[i][j]F[i][j]为A[i][j]A[i][j]的最少运算次数。F[i][j]=min(f[i][k]...
2020-04-21 19:19:05
180
原创 投资问题
问题投资问题解析递推公式: 设 Fk(x) 表示 x 万元投给前 k 个项目的最大效益,k = 1,2…n,x = 1,2,…,m。递推方程:Fk (x) = max {fk(xk) + Fk-1(x-xk)} ,k = 2,3…,n边界条件:F1(x) = f1(x), Fk(0) = 0 , k = 1,2,…,n设计分析[算法复杂度推导]复杂度: o(nm^2)源码...
2020-04-14 17:32:05
908
原创 求第k小元素:采用特定分治策略
问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]设L是n个元素的集合,从L中选取第k小的元素,其中1<=k<=n.这里的第k小元素是指,当L按从小到大排好序之后,排在第k个位置的元素。解析[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推导,拍照嵌入本文档]将所有元素5个一组,分成n/5(上界)组。取出每一组中位数。递归调用sele...
2020-04-07 17:30:42
364
原创 作业5-最近对问题
问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]设P1(x1, y1),P2(x2, y2),P3(x3, y3), P4(x4, y4) …,是平面上n个散列点构成的集合S,最近对问题就是找出集合S中距离最近的点对。解析[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推导,拍照嵌入本文档]将集合S分成两个子集S1和S2,每个子集中有n/2个点。然后...
2020-03-31 17:29:50
223
原创 归并算法
问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序方法。...
2020-03-22 00:11:24
1166
原创 两种检索算法
在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可1.顺序查找void search(int x){ int j=0,i; for(i=1;i<=n;i++){ if(a[i]==x){ j=i; break;...
2020-03-17 20:47:05
181
原创 Floyd算法实验报告
问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]弗洛伊德算法定义了两个二维矩阵: 矩阵D记录顶点间的最小路径 例如D[0][3]= 10,说明顶点0 到 3 的最短路径为10; 矩阵P记录顶点间最小路径中的中转点 例如P[0][3]= 1 说明,0 到 3的最短路径轨迹为:0 -> 1 -> 3。解析[问题的理解和推导,可用电子版直接...
2020-03-10 17:50:24
980
原创 Dijkstra算法实验报告
问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。解析[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推导,拍照嵌入本文档]Dijkstra的核心思想是贪心算法的思想。贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在...
2020-03-10 17:43:23
3190
原创 prim算法构建最小生成树
问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) 代表此边的权重,若存在 T 为 E 的子集(即)且为无向循环图,使得的 sum(w(u, v))最小,则此 T 为 G 的最小生成树。解析[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推...
2020-02-29 20:17:32
233
原创 Kruskal算法构造最小生成树
问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) 代表此边的权重,若存在 T 为 E 的子集(即)且为无向循环图,使得的 sum(w(u, v))最小,则此 T 为 G 的最小生成树。解析[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推...
2020-02-29 20:09:26
474
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人