代码改变世界

Google C++ style

2013-08-06 17:35 by 夜与周公, 137 阅读, 0 推荐, 收藏, 编辑
摘要:Google C++ style 阅读全文

亲和数问题

2013-08-06 17:14 by 夜与周公, 1004 阅读, 0 推荐, 收藏, 编辑
摘要:求500万以内的亲和数 “朋友是你灵魂的倩影,要像220与284一样亲密。”——毕达哥拉斯 首先需要知道什么事亲和数?亲和数是指,两个数a和b,如果a的所有真因子之和等于b,而b所有的真因子之和也等于a,那么着两个数被称为亲和数(真因子包括1,但不包括自身)。 Example: 220的真因子: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 284的真因子: 1, 2, 4, 71, 142 284 =1+2+4+5+10+1... 阅读全文

文本挖掘之文本表示

2013-07-25 16:56 by 夜与周公, 10683 阅读, 7 推荐, 收藏, 编辑
摘要:当我们尝试使用统计机器学习方法解决文本的有关问题时,第一个需要的解决的问题是,如果在计算机中表示出一个文本样本。一种经典而且被广泛运用的文本表示方法,即向量空间模型(VSM),俗称“词袋模型”。 我们首先看一下向量空间模型如何表示一个文本: 空间向量模型需要一个“字典”:文本的样本集中特征词集合,这个字典可以在样本集中产生,也可以从外部导入,上图中的字典是[baseball, specs, graphics,..., space, quicktime, computer]。 有了字典后便可以表示出某个文本。先定义一个与字典长度相同的向量,向量中的每个位置对应字典中的相应位置的单词,比... 阅读全文

寻找序列中满足条件的元素

2013-07-16 22:11 by 夜与周公, 630 阅读, 0 推荐, 收藏, 编辑
摘要:一、基础篇 在>这本书中,给出了这样的一个问题:快速找出一个数组中的两个元素,让这两个元素之和等于一个给定的值,假设数组中至少存在一对这样的元素。 对于这个问题有两种解决思路: 思路一:首先想到的解法是穷举法,即判断序列中任意的两个元素之和是否等于给定的数值。算法的时间复杂度O(N2),显然这种蛮力解法不是我们想要的,需要继续寻找更高效的解法。 思路二:假设预定的两个元素的和等于SUM,对于某个原始array[i],实际上就是要判断SUM- array[i]是否在数组中。如果元素是无序的,算法的复杂度仍然是O(N2),没有任何改进。但如果先进行排序,算法的复杂度是O(NlogN),... 阅读全文

寻找最大(小)的K个数

2013-07-02 20:37 by 夜与周公, 1077 阅读, 1 推荐, 收藏, 编辑
摘要:>一书中提到了寻找最大的K个数的问题,问题可以简单描述为:在长度为N的数组中,寻找第K(K#include #include using namespace std;int _tmain(int argc,_TCHAR* argv[]){ int myints[] = {10, 20, 30, 5, 15}; vector v(myints, myints+5); make_heap (v.begin(),v.end()); //构建堆 cout #include #include #include using namespace std;const int... 阅读全文

SVM学习资料

2013-06-21 17:29 by 夜与周公, 1999 阅读, 1 推荐, 收藏, 编辑
摘要:SVM(support vector machine),被认为是“off-the-shelf”最好的监督机器学习算法之一,甚至很多人认为可以把“之一”去掉。SVM有着天然的intuition,大量的数学推导和优雅的解形式(有了大量的数学推导,自然就容易发paper啦)。实际上SVM在工业界也有着广泛的应用如,文本分类、图像分类、生物医学诊断和手写字符识别等。有关SVM资源非常之多,本文尝试总结一些比较好的SVM学习资源。 0.维基百科 如果想迅速的了解SVM一些基础概念,维基百科是一个不错的选择,SVM在维基百科的地址是:http://en.wikipedia.org/wiki/Sup... 阅读全文

extern "C" 有关问题

2013-06-17 16:22 by 夜与周公, 645 阅读, 1 推荐, 收藏, 编辑
摘要:之前帮老板编译一个库的代码,遇到了一些问题,后来发现问题出现在extern "C"语法上。 1. C/C++语法extern 关键字 extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。”----百度百科。值得注意的是extern int a,仅是一个声明, 可以在程序中出现多次,并没有分配存储空间,然而变量a作为全局变量,变量a的定义仅能出现一次。// A.cppint i;int main(){ return 0;}// B.cppint i = 100; 编译A.cpp文件,B 阅读全文

logistic regression C++实现

2013-06-11 20:14 by 夜与周公, 5027 阅读, 2 推荐, 收藏, 编辑
摘要:在“逻辑斯特回归模型(logistic regression)”一文中阐述了logistic regression模型的理论基础,本节采用C++实现logistic regression。算法是由笔者跟我们老板一起合作完成(老板提供算法框架和理论上的支持,笔者编写代码,准备开源发布)。下面分数据结构、模型实现、模型训练、模型预测与usage五个部分介绍logistic regression模型的实现与用法。 1.数据结构/********************************************************************* Logistic Regre... 阅读全文

寻找发帖水王

2013-06-09 21:18 by 夜与周公, 292 阅读, 0 推荐, 收藏, 编辑
摘要:在<<编程之美>>这本书中提到了发帖水王的问题。 原始问题:Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗? 扩展版本:随着Tango的发展,管理员发现,“超级水王”没有了。统计结果表明,有3个发帖很多的ID,他们的发帖数目都超过了帖子总数目N的1/4。你能从发帖ID列表中快速找 阅读全文

sizeof运算符

2013-06-07 17:30 by 夜与周公, 193 阅读, 0 推荐, 收藏, 编辑
摘要:sizeof运算符是C/C++比较灵活知识点,本节总结它们的常见用法与错误。 sizeof运算符用于计算数据在内存中占有的字节数。如果sizeof运算于数组,它将会计算数组占有的内存空间。但是需要注意的是,如果采用指针在函数直接传递数据,编译器是无法知道数组的长度,因此,sizeof运算将退化成对指针的运算:#include "stdafx.h"int funa(char my_str[100]){ coutint funa(typename (&T)[N]){ cout<<sizeof(my_str)<<endl; //输出:N} 借此机会 阅读全文