- 博客(25)
- 资源 (4)
- 收藏
- 关注
原创 从n个对象中随机选择一个
现在有n个对象,让从里随机选择一个是非常简单的。最直接的方法是产生一个1~n的随机数就可以了。但是现在如果我告诉你,n是不确定的,又该怎么做?现在问题变为:如何从事先不知道文本文件行数的情况下读取该文件,从中随机选择一行并输出?这个题目看上去比原来的问题有意思的多。答案也十分有趣:i = 0while more input lines with probability
2013-09-30 10:28:55 1805 1
原创 字符串匹配算法 最长前缀后缀法
假设有一个模式P[] = {ababc},在一个文章中寻找模式P(假设文本不动,让P往后移动),如果P[0]和文章的字母不相等, 则next[0] = 1;(next[i]是当P[i]是第一个不匹配的字母时,P应该向后挪动几个单位)。生成next数组的方法就是寻找最大相等的前缀和后缀,即若P[j]不匹配,从0...j-1中寻找最大的k,P[0...k] = P[j - 1-k...j-1];
2013-04-07 16:18:09 9368
原创 log(m+n)时间找到中位数
昨天晚上我的室友出了一道题目:现在有两个已经有序的数组A和B,A有m个元素,B有n个元素。现在使用log(m+n)的复杂度计算出它们的中位数。我大致想了一下,用分治算法。然后今天写出了代码: /* This file implements : For two ordered arrays A with m integers and B with n integers
2013-03-25 16:55:48 2931
原创 8数码问题的A星算法
在人工智能课程中学习了启发式A*算法。该算法都够成功地解决8/15数码问题。选择的启发式函数可以是当前状态和目标状态之间的城市距离,也可以是当前状态不在目标位置的数字的和(事实证明,该启发式函数很差)。 有兴趣的同学可以从我的资源中下载源代码(没有文档)。
2013-03-11 16:58:47 2333
原创 整数划分问题
现在偶尔写一段代码,用于解决一个简单的题目。因为程序太短,没有必要保存到自己的计算机中,就想放到博客上,与大家一起分享。今日的程序是整数划分问题: 题目:一个正整数n可以划分为多少种和的方式? 例如5 可以划分为7种。 5 = 1 + 1 + 1 + 1 + 1 1 + 1 + 1 + 2 1 + 1 + 3 1 + 4
2013-03-03 19:15:10 564
原创 算法导论_动态规划一节中的课后习题之整齐打印
题目要求如下: 输入文本为n个单词的序列,单词长度分别为a_1,a_2,...,a_n 个字符。我们希望将此段文本整齐打印在若干行上。每行最多M个字符。“整齐”的标准时这样的:如果某行包哈第i到第j个单词,且单词之间为一个空格,则行尾的额外空格符数量为 M - a_i - ... - a_j - j + i。此值必然为非负的,否则一行内无法容纳这些单词。我们希望能最小化所有行(最后一行除外)额
2013-02-27 19:25:55 2209
原创 ACM ICPC East Central North America 1994_Simply Syntax
写这篇博客,主要是贴一段代码。该代码用于解决哈尔滨工业大学(我的母校)acm上的一道题目。闲话少叙: 代码中含有题目要求,代码如下:/* Author : Li Pan Date : 2013/2/25 Function : A program to solve an acm program named Simply Syntax. Its requi
2013-02-25 16:43:33 900
原创 浅谈无线网络
现在无线网络充分展示了其在日常生活的重要性。笔记本电脑,手机,pda,ipad等移动设备广泛使用标志着移动时代的到来。这篇文章主要讲述一些常见的无线网络。 1.蜂窝接入因特网; 2.wi-fi 3.蓝牙 4.自组织网络 一、你的手机是移动、联通还是电信的?不管是哪个,你是否办理的流量业务。躺在自己宿舍可以打开uc浏览器上网。这种无线网络称之为蜂窝接入因特网。
2013-01-10 15:45:03 625
原创 IP,MAC,数据链路层,以太网
这篇博客主要围绕以下几个问题进行展开: 1.IP v.s MAC 2. MAC v.s LAN 3. 以太网技术(IEEE802.3) v.s 点对点技术学习网络的童鞋们也许会问,为什么有了IP,还需要mac地址,或者是有了mac,还需要ip呢? 首先ip地址是网络层的组成部分,mac地址是数据链路层的组成部分。ip地址是逻辑地址,是可发生变化的。mac地址就是
2013-01-10 15:25:42 4753 1
原创 weka logitboost
最近在使用weka,一个机器学习领域的开源项目,可以对输入的数据进行分类,聚类等。使用它自带的logit boost进行分类。发现对数据分类的效果不错。使用的测试模型选项是10-折叠交叉验证。后来,阅读它的文档,了解了执行该算法的一些参数。其中有一个参数为 -F 。这个参数是设置折叠数目,并且默认情况为0。 一下子不知道是怎么回事了。怎么参数里面有k-折叠交叉验证, 同时测试模型选项中也有k-折
2012-12-14 16:13:28 2762
原创 做工程项目的感受
虽然我没做过什么大的项目, 但是还是觉得可以写一些东西。当然,如果你看了之后,觉得这是显而易见的,暂且将这片文章当做作者对自己的鞭策吧。 感受1:在做项目的过程中,要分清主次,抓住主要矛盾。 感受2:不要将简单的问题复杂化,很多事情完全没有我们想想的那么复杂(说起来容易,做起来难呀!) 感受3:一个问题是否复杂,不是靠想出来的,而是通过实践发
2012-12-06 14:16:27 1496
原创 Polya计数的快捷计算
学习了polya计数,例如对正10边形的10个顶点进行着色,不想将所有的置换全部罗列出来,然后将它们一一转化为循环因子乘积的形式。有没有其它一些快捷的方法。例如对于正4边形有,在平面旋转产生的4个置换:1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 41 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3在空间翻转产生的4
2012-11-17 21:45:05 537
原创 matlab中bp神经网络的一些问题
在学习了BP前馈反向传播神经网络之后,想利用matlab中的神经网络工具箱实现以下。在查看了相关资料以后,就开始动手了。主要运用的函数是:net = newff(P, T, [], TFi, …);net = train(net, P, T)sim(net, P)看起来很简单的3个函数,用起来产生了一些困惑。刚开始训练的数据是XOR异或问题。Inputs = [-1 -1
2012-11-02 12:52:18 4303 1
原创 n^k 求和公式推导
在高中的时候,我们就已经知道但是我们并不知道i ^ 4 , i ^ 5...的求和公式。今天在组合数学中学习了查分序列,这些求和公式就会计算了。如下: 其中( n) (m)代表的是从n中选取m的方法数。是高中时的C(n, m)只要是n的多项式都可以算。
2012-10-30 13:45:31 11029
原创 Catalan数的递推公式求解
Catalan计数是非常重要的一种计数。 例如,有n个1美元的人,和n个50美分的人在排队购买50美分的物品。请问,在售货员没有钱的初始条件下,2n个人如何排队,就可以使每个1美元的人立即拿到零钱。一共有多少中方法。 还有就是括号匹配等问题。 以上就是Catalan递归求解过程。
2012-10-23 14:25:09 2239 2
原创 二值矩阵是否有完全种系树
在计算分子生物学中有种系发生树的概念。也许读者不知道这些具体的术语,不要紧。我们还是建立数学模型吧。对于性状和对象构成的二值矩阵M如下: c1 c2 c3 c4 ... c(n)o1 1 0 1 ......o2o3....o(m)若矩阵M(i, j)为1,则说明对象O(i)具有性状j。现在若该矩阵含有完全种系树,那么从矩阵M
2012-10-17 19:06:48 822
原创 鸽巢原理应用于一道十分有意思的题目
在组合数学中学习鸽巢原理。其中一道例题是这样的:从1,2,3,4,..., 200这200个整数中选取101个整数,则一定存在两个数存在整除关系?解答:一个数对其按照2进行因式分解,总可写成n = 2 ^ k * t(其中k >=0, t为奇数)。例如2 = 2 ^ 1 * 1; 3 = 2 ^ 0 * 3...而1到200存在奇数1,3,5,7,..., 199一共100个奇数。
2012-10-17 13:14:33 1417 1
原创 实现多维GMM算法时应注意的地方
最近写了一个多维高斯混合模型的算法,并用它来识别手写数字(MNIST)。 最后如果需要程序的话,请email lipanpally@gmail.com
2012-10-05 17:01:57 1125
原创 基于解释的学习和基于归纳的学习
在基于归纳的学习中,学习器被赋予一个假设空间H,它从这个空间中选择一个输出假设。同时还有一些训练样例集合D = 其中f(xi)是在xi下目标值。学习器所希望的输出是一个假设h。 在基于解释的学习(分析学习)中,学习器的输入是假设空间H,一些训练样例集合D,还有一个领域理论B。这是两者最大的区别。什么是领域理论B呢?它可由解释训练样例的背景知识组成。学习器输出的假设h既于训练样
2012-10-02 15:35:15 2425
原创 机器学习_学习规则集合
在Mitchell的《机器学习》的书中,介绍了学习规则集合的方法。以下是我在阅读完这章内容之后的想法。 首先,明白什么是学习规则集合:从两个层次上来讲· 从命题的层次: 如果A,那么B。 序列覆盖算法: 输入:许多样例,以及它们的真值情况。 输出:学习到的命题规则。 首先,学
2012-09-29 14:37:17 4099
原创 非参数估计-Parzen窗口函数法
在模式识别过程中,学习了非参数估计的两种方法:Paren窗口法和K-近邻法。在这篇文章中主要谈谈自己对窗口函数法的理解。
2012-09-27 23:13:30 8488 1
原创 c语言二维数组元素引用和参数传递
在学习C语言中,多维数组元素应用有许多不同的方式。其中以二维数组最为常见。例如声明数组 int a[3][4]。这个二维数组,如果我想取第2行第3列数据, 可以直接是a[2][3]。除了这一种方式外,我还可以: *(*(a + 2) + 3)(E1)。这同样取出了a[2][3]。我还可以使用一种违反常规,但是也正确的方法:*((*a) + 2 * 4 + 3)(E2)。 无论是上面的什么方
2012-09-22 22:56:34 7271
原创 extern “C”
当我们阅读一些用C语言的写的优秀的代码时,在*.h文件中总是会出现 extern "C" {}的字样。出现extern "C" 主要是预防c代码被c++代码调用。如果我写一个程序,感觉很优秀的话,我就需要考虑它可能以后被c++的代码调用。若真是这样,我的c语言程序被编译,生成目标文件*.obj是按照C编译器规则的。而在C++中调用C程序的函数,又会有另外一套生成目标代码的机制,例如:
2012-09-22 20:30:13 662
原创 一维GMM算法C语言实现
在模式识别课程中,学习了GMM算法。并实现1维GMM算法。 代码如下: /* Author : Li Pan Time : 2012/9/20 Version : 1.0 Using this file to test GMM algorithm. Input : input the the gaussian distribution number, th
2012-09-21 14:16:15 2080
ssd5 optional exercise 1
2010-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人