Loading

摘要: 在我们的程序中,经常会有一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作,让耗时操作在后台完成,完成后再进行处理或给出提示,在运行中,也会时时去刷新界面上的进度条等显示,必要时还要控制后台线程中断当前操作。以前,类似的应用会比较麻烦,需要写的代码较多,也很容易出现异常。在.net中,提供了一个组件BackgroundWorker就是专门解决这个问题的。BackgroundWorker类允许在单独的专用线程上运行操作。 耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面(UI)似乎处于停止响应状态。如果需要能进行响应的用户界面,而且面临与这类操作相关 阅读全文
posted @ 2013-07-28 15:15 阿凡卢 阅读(33181) 评论(1) 推荐(1) 编辑
摘要: 1.新建一个项目2.给项目添加引用:Microsoft Excel 12.0 Object Library (2007版本)using Excel = Microsoft.Office.Interop.Excel;3.对excel的简单操作:如下代码“添加超链接”等。using System;using System.Collections.Generic;using System.Linq;using System.Text;using Excel = Microsoft.Office.Interop.Excel;namespace ExcelExample{ class Progra... 阅读全文
posted @ 2013-07-27 10:32 阿凡卢 阅读(5618) 评论(1) 推荐(0) 编辑
摘要: 在Java 中定义了关键字final,被final修饰的类不能被继承。首先想到的是在C++中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父类的析构函数。要想一个类不能被继承,只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从它那继承的时候,必然会由于试图调用构造函数、析构函数而导致编译错误。可是这个类的构造函数和析构函数都是私有函数了,怎样才能得到该类的实例呢?可以通过定义静态来创建和释放类的实例。基于这个思路,可以写出如下的代码://////////////////////////////////////////////////////////// 阅读全文
posted @ 2013-06-07 19:07 阿凡卢 阅读(7458) 评论(3) 推荐(0) 编辑
摘要: HMM基本原理Markov链:如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程。马尔可夫链是时间和状态参数都离散的马尔可夫过程。HMM是在Markov链的基础上发展起来的,由于实际问题比Markov链模型所描述的更为复杂,观察到的时间并不是与状态... 阅读全文
posted @ 2013-05-12 20:41 阿凡卢 阅读(10054) 评论(2) 推荐(0) 编辑
摘要: 单高斯分布模型SGM高斯密度函数估计是一种参数化模型。有单高斯模型(Single Gaussian Model, SGM)和高斯混合模型(Gaussian mixture model,GMM)两类。类似于聚类,根据高斯概率密度函数(PDF,见公式1)参数的不同,每一个高斯模型可以看作一种类别,输入一... 阅读全文
posted @ 2013-05-10 18:30 阿凡卢 阅读(15353) 评论(35) 推荐(2) 编辑
摘要: Clustering 中文翻译作“聚类”,简单地说就是把相似的东西分到一组,同 Classification (分类)不同,对于一个 classifier ,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个 classifier 会从它得到的训练集中进行“学习”,从而具备对未知... 阅读全文
posted @ 2013-05-09 19:16 阿凡卢 阅读(20934) 评论(0) 推荐(3) 编辑
摘要: Dynamic Time Warping(DTW)是一种衡量两个时间序列之间的相似度的方法,主要应用在语音识别领域来识别两段语音是否表示同一个单词。1. DTW方法原理在时间序列中,需要比较相似性的两段时间序列的长度可能并不相等,在语音识别领域表现为不同人的语速不同。而且同一个单词内的不同音素的发音速度也不同,比如有的人会把“A”这个音拖得很长,或者把“i”发的很短。另外,不同时间序列可能仅仅存在时间轴上的位移,亦即在还原位移的情况下,两个时间序列是一致的。在这些复杂情况下,使用传统的欧几里得距离无法有效地求的两个时间序列之间的距离(或者相似性)。DTW通过把时间序列进行延伸和缩短,来计算两个 阅读全文
posted @ 2013-05-09 15:06 阿凡卢 阅读(40261) 评论(8) 推荐(2) 编辑
摘要: 以 #! 开头的称为组织行,这行告诉你的Linux/Unix系统当你执行你的程序的时候,它应该运行哪个解释器。例如:#!/usr/bin/python 以 # 开头的称为注释行。 Python 源文件通常用.py 扩展名。当源文件被解释器加载或者显式地进行字节码编译的时候会被编译成字节码。由于调用解 阅读全文
posted @ 2013-04-13 15:50 阿凡卢 阅读(1294) 评论(3) 推荐(3) 编辑
摘要: Singleton模式是一种非常简单的设计模式,这种模式很常用也很容易被滥用。当你设计应用程序的时候,经常会遇到某些对象在整个程序的生命周期应该仅有一个实例的情况,比如File System,Graphic System,Logging Utility,这时候就可以用到Singleton模式。Sin... 阅读全文
posted @ 2013-04-09 21:59 阿凡卢 阅读(1988) 评论(0) 推荐(1) 编辑
摘要: 1. IntroductionMD5算法是一种消息摘要算法(Message Digest Algorithm),此算法以任意长度的信息(message)作为输入进行计算,产生一个128-bit(16-byte)的指纹或报文摘要(fingerprint or message digest)。两个不同的 阅读全文
posted @ 2013-04-08 20:37 阿凡卢 阅读(1507) 评论(0) 推荐(0) 编辑
摘要: Base64用途1.用于对SOHO级路由器(网关设备)管理员帐户密码的加密2.流媒体网站对于播放的流媒体文件的路径的加密3.迅雷等下载软件对下载链接地址的加密Base64算法Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。Base64类函数:unsigned int CreateMatchingEncodingBuffer (unsigned int p_InputByteCount, char** p_ppEncodingBuffer);创建匹配于编码的缓存空间。参数:1输入字节数,2进行编码需要的缓存 阅读全文
posted @ 2012-12-26 14:16 阿凡卢 阅读(4092) 评论(0) 推荐(0) 编辑
摘要: 神经网络概念与适合领域神经网络最早的研究是 40 年代心理学家 Mcculloch 和数学家 Pitts 合作提出的 ,他们提出的MP模型拉开了神经网络研究的序幕。神经网络的发展大致经过 3 个阶段:1947~1969 年为初期,在这期间科学家们提出了许多神经元模型和学习规则,如 MP 模型、HEBB 学习规则和感知器等;60 年代末期至 80 年代中期,神经网络控制与整个神经网络研究一样,处于低潮。在此期间,科学家们做了大量的工作,如 Hopfield 教授对网络引入能量函数的概念,给出了网络的稳定性判据,提出了用于联想记忆和优化计算的途径。1984年,Hiton 教授提出 Bol tzma 阅读全文
posted @ 2012-12-10 14:25 阿凡卢 阅读(46571) 评论(11) 推荐(6) 编辑
摘要: #.string 建议 使用string 的方便性就不用再说了,这里要重点强调的是string的安全性。 string并不是万能的,如果你在一个大工程中需要频繁处理字符串,而且有可能是多线程,那么你一定要慎重(当然,在多线程下你使用任何STL容器都要慎重)。 string的实现和效率并不一定是你... 阅读全文
posted @ 2012-12-05 15:07 阿凡卢 阅读(5314) 评论(4) 推荐(2) 编辑
摘要: 1、整型数V的二进制中1的个数//普通解法:除以2,看余数int Count(int v){ int num = 0; while(v) { if(v % 2 == 1) ++ num; v /= 2; } return num;}//使用位移int Count(int v){ int num = 0; while(v) { num += v & 1; v >>= 1; } return num;}位移的思路,当输入i是正数时没有问题,但当输入的i是一个负数... 阅读全文
posted @ 2012-11-20 17:00 阿凡卢 阅读(956) 评论(0) 推荐(0) 编辑
摘要: 1、最长公共子序列、最长公共子串最长公共子序列(Longest-Common-Subsequence,LCS)dp[i][j]:dp[i][j]表示长度分别为i和j的序列X和序列Y构成的LCS的长度dp[i][j] = 0,如果i=0 或 j=0 dp[i][j] = dp[i-1][j-1] + 1,如果 X[i-1] = Y[i-1] dp[i][j] = max{ dp[i-1][j], dp[i][j-1] },如果 X[i-1] != Y[i-1]LCS长度为 dp[Xlen][Ylen]View Code int dp[100][100]; // 存储LCS长度, 下标i,j表示. 阅读全文
posted @ 2012-11-15 15:37 阿凡卢 阅读(5734) 评论(3) 推荐(2) 编辑
摘要: 1、一个楼梯有20级,每次走1级或是2级,从底走到顶一共有多少中走法?算法: 设 n 是阶数,f(n) 是上 n 阶的不同走法数,则第一步可以走一阶或者是两阶, 那么这三种情况下剩余的阶数分别为 n-1、n-2, 所以 f(n) = f(n-1) + f(n-2)。//递归解法int solution1(int n){ if(n == 0 || n == 1) return 1; else return solution1(n-1) + solution1(n-2);}//非递归解法int f[100];int solution2(int n){ f[0] = 1; f... 阅读全文
posted @ 2012-11-14 13:18 阿凡卢 阅读(5380) 评论(0) 推荐(1) 编辑
摘要: 1、写一个函数找出一个整数数组中第二大的数。 2、寻找平衡点问题 平衡点:比如int numbers[]={1,3,5,7,8,25,4,20}; 25前面的总和为24,25后面的总和也是24,25这个点就是平衡点。假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点,要求返 阅读全文
posted @ 2012-11-13 12:50 阿凡卢 阅读(2453) 评论(1) 推荐(1) 编辑
摘要: 1、字符串移位包含问题//普通解法bool contain_check(){ char s[6] = "AABCD"; char d[5] = "CDAA"; int len = strlen(s); for(int i=0; i size) { size = n[*s+128]; ch = *s; } s++; } }}3、给一个字符串,有大小写字母,要求写一个函数把小写字母放在前面,大写字母放在后面,尽量使用最小的空间、时... 阅读全文
posted @ 2012-11-12 13:02 阿凡卢 阅读(8068) 评论(5) 推荐(2) 编辑
摘要: 题目:输入两棵二叉树A和B,判断树B是不是A的子结构bool IsChildTree(Node * father, Node * son){ if(father == NULL && son == NULL) return true; if(father == NULL && son != NULL) return false; if(father != NULL && son == NULL) return true; //如果当前结点相同,判断左右子树是否子结构 if(father->data == son->... 阅读全文
posted @ 2012-11-11 14:20 阿凡卢 阅读(1820) 评论(0) 推荐(0) 编辑
摘要: 链表: 1、注意是否有带头结点。 2、单链表的建立:顺序建表(尾插法)、逆序建表(头插法)。单链表插入、删除操作需要寻找前驱结点。 3、双向链表和单向链表相比,多了一个前驱指针,单向链表在删除结点时候要遍历链表,双向链表在删除不需要遍历。 一、判断两个链表是否相交:(假设两个链表都没有环) 1、判断 阅读全文
posted @ 2012-11-10 15:24 阿凡卢 阅读(2594) 评论(0) 推荐(0) 编辑