- 博客(15)
- 收藏
- 关注
转载 php学习路线
第一阶段第一讲,WEB基础 1.1 网站基本知识;1.2 网络协议介绍;1.3 B/S与C/S结构的区别;1.4 WEB编程、网站开发技术介绍。 第二讲,网页设计 2.1 Dreamweaver介绍及使用;2.2 静态网页HTML语言;2.3 标题与段落,换行与分割线;2.4 表格、表单;2.5 框
2014-04-04 22:28:09 752
转载 随机返回一个链表的节点
题目描述:有一个单向链表的长度未知,怎样从中随机取出一个节点?要求每个节点被选中的概率相等。解决方法: 遍历一次链表,用一个临时变量pTemp指向返回的节点,设一个计数器iCount统计已遍历的节点个数,然后生成0到iCount-1之间的随机数;若生成的随机数为0,则将pTemp指针替换为当然节点的地址。可以证明对每一个节点,它被选中的概率为1/n,n为链表的长度。
2013-10-11 01:20:03 1067
原创 图最少的着色法,用来有效的安排会议
问题:一天中需要开很多会议,参加的学生中每人至少参加一场以上的会议,如何有效的安排会议时间,使每位同学都能参加自己想参加的会议? 解决办法:图的最少着色法 将所有的会议当做一个图的顶点,如果同学想参加两场会议,则将两个顶点连接起来,这样用最少的颜色对所有的顶点着色,使任何相邻顶点的颜色不同。使用图的最少着色法。
2013-07-30 17:59:41 858
原创 马可夫链
k原题是这样的: 某一游戏中有一把武器有1到9个等级,每次升级成功的概率为30%,失败的概率为70%,成功升1级,失败降1级,降到一级不能再降,升到9级不能再升,问1000次内升到9级的概率是多少? 使用马可夫链的原理,可得到下列矩阵,打一次Pij(第i级到第j级的概率),将这个矩阵自乘1000次,取P19即为所得值M = 0.7 0.3 0 0 0 0
2013-06-23 16:24:57 2262
转载 vetor释放内存
vector的内存释放vector : C++ STL中的顺序容器,封装数组 1. vector容器的内存自增长 与其他容器不同,其内存空间只会增长,不会减小。先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空
2013-06-03 21:25:03 601
转载 Floyd算法
正如我们所知道的,Floyd算法用于求最短路径。Floyd算法可以说是Warshall算法的扩展,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3)。Floyd算法的基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B。所以,我们假设Dis(AB)为节点A到节点B的最短路径的距离,对于每一个节点X,我们检查Dis(AX) +
2013-05-23 20:15:32 639
转载 错排公式
错排公式pala提出的问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法? 这个问题推广一下,就是错排问题: n个有序的元素应有n!种不同的排列。如若一个排列式的所有的元素都不在原来的位置上,则称这个排列为错排。递推的方法推导错排公式当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表
2013-04-15 18:55:41 659
转载 平面上N个点,知道其浮点数坐标,求一个圆恰好覆盖其中k个点
关键是在平面内找一个圆心使得到每个点的距离都不相等。100个点,每两点画出他们的中垂线,那么平面内存在不被中垂线穿过的点。随便选取一个作为圆心O,则由于O到这100个点距离都不一样,选取适当地半径即可覆盖K个点,而不覆盖100-K个点此算法的最重要的目的是圆每次扩张时,只能包括一个点,这就要求圆中心不能到两个点的距离相等。
2013-04-13 16:51:13 1150
转载 排序算法的稳定性
常见排序算法的稳定性快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。其次,说一下稳
2013-04-03 16:09:49 567
转载 K-means算法及其示例
k均值算法的计算过程非常直观:1、从D中随机取k个元素,作为k个簇的各自的中心。2、分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇。3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。4、将D中全部元素按照新的中心重新聚类。5、重复第4步,直到聚类结果不再变化。6、将结果输出。由于算法比较直观,没有什么可
2012-11-28 11:30:30 1348
转载 深入浅出K-means算法
摘要:在数据挖掘中,K-Means算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。在数据挖掘中,K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。问题K-Means算法主要解决的问题如下图所示。我们可以看到,在图的左边有一些
2012-11-28 11:29:33 554
转载 文本比较算法Ⅳ——Nakatsu算法
在“文本比较算法Ⅰ——LD算法”、“文本比较算法Ⅱ——Needleman/Wunsch算法”中介绍的LD算法和LCS算法都是基于动态规划的。它们的时间复杂度O(MN)、空间复杂度O(MN)(在基于计算匹配字符串情况下,是不可优化的。如果只是计算LD和LCS,空间占用可以优化到O(M))。 Nakatsu算法在计算匹配字符串的情况下,有着良好的时间复杂度O(N(M-P))和空间复杂度O(N2)
2012-10-30 21:23:40 592
转载 文本比较算法Ⅲ——计算文本的相似度
在“文本比较算法Ⅰ——LD算法”中,介绍了编辑距离的计算。 在“文本比较算法Ⅱ——Needleman/Wunsch算法”中,介绍了最长公共子串的计算。 在给定的字符串A和字符串B,LD(A,B)表示编辑距离,LCS(A,B)表示最长公共子串的长度。 如何来度量它们之间的相似度呢? 不妨设S(A,B)来表示字符串A和字符串B的相似度。那么,比较合理的相似度应该满足下列性质。
2012-10-30 20:55:37 507
转载 文本比较算法Ⅱ——Needleman/Wunsch算法
在“文本比较算法Ⅰ——LD算法”中介绍了基于编辑距离的文本比较算法——LD算法。 本文介绍基于最长公共子串的文本比较算法——Needleman/Wunsch算法。 还是以实例说明:字符串A=kitten,字符串B=sitting 那他们的最长公共子串为ittn(注:最长公共子串不需要连续出现,但一定是出现的顺序一致),最长公共子串长度为4。 定义: LCS(A
2012-10-30 20:50:20 433
转载 文本比较算法Ⅰ——LD算法(ZZ)
在日常应用中,文本比较是一个比较常见的问题。文本比较算法也是一个老生常谈的话题。 文本比较的核心就是比较两个给定的文本(可以是字节流等)之间的差异。目前,主流的比较文本之间的差异主要有两大类。一类是基于编辑距离(Edit Distance)的,例如LD算法。一类是基于最长公共子串的(Longest Common Subsequence),例如Needleman/Wunsch算法等。 L
2012-10-30 20:42:07 744
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人