2014年6月13日

超长字符串

摘要: 一、问题描述 给定一个字符串S:123456789101112131415161718192021...它是由所有自然数从小到大依次排列起来的。任意给一个数字串S1,绒衣知道它一定在S中出现多次。编程出它第一次出现的位置。例如对于串“81”,它最先出现的位置为27。二、算法描述 分四种情况: ... 阅读全文

posted @ 2014-06-13 19:17 jfcspring 阅读(2879) 评论(0) 推荐(0) 编辑

2014年6月9日

编程之美-2.11 扩展 寻找距离最远的两个点

摘要: 一、问题描述 平面上有n个点,如何寻找距离最远的两个点?二、解题思路 第一步,寻找凸包(因为最远距离的两个点一定在凸包上) 第二步,用旋转卡(qia)壳 寻找距离最大的点 凸包和旋转卡壳算法参见http://blog.csdn.net/kaytowin/article/details/514... 阅读全文

posted @ 2014-06-09 16:58 jfcspring 阅读(2114) 评论(1) 推荐(0) 编辑

2014年6月8日

编程之美-2.8 找到符合条件的整数

摘要: 一、问题描述 任意给定一个正整数N,求一个最小正整数M(M>1),使得N*M的十进制形式只含1和0。 比如 N=99,M=1 122 334 455 667 789 ,N*M=111 111 111 111 111 111; M就是当N=99时,符合条件的数二、解题思路 考虑将问题转化为:找... 阅读全文

posted @ 2014-06-08 16:36 jfcspring 阅读(847) 评论(0) 推荐(0) 编辑

2014年6月7日

编程之美-2.4 1的数目

摘要: 一、问题描述 给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下之中所有“1”的个数。 例如: N=12,(1,2,3,4,5,6,7,8,9,10,11,12)共有5个1二、解题思想 假设N=abcde为一个整数,a,b,c,d,e分别对应十进制数,如果要计算(1到N)百位出现1... 阅读全文

posted @ 2014-06-07 12:57 jfcspring 阅读(869) 评论(1) 推荐(1) 编辑

2014年6月6日

编程之美-1.16 24点游戏

摘要: 一、问题描述 给玩家4张牌,每张牌牌面值在1~13之间,允许其中有数值相同的牌。采用加、减、乘、除四则运算,允许中间运算存在小数,并且可以使用括号,但每张牌只能使用一次,尝试构造一种表达式,使其运算结果为24. 如 输入:3 3 7 7 输出:(((3)/(7))+(3))*(7)二、程序实... 阅读全文

posted @ 2014-06-06 17:38 jfcspring 阅读(689) 评论(0) 推荐(0) 编辑

2014年1月9日

logistic回归 c++ 实现

摘要: logistic回归是统计学习中经典的分类方法,他属于对数线性模型。本博文主要给出logistic的c++实现,具体理论请读者自行google。 本文用到的数据集来自于一个医学网站,具体出处不记得了(非常歉意)。数据的格式如下: 10009 1 0 0 1 0 1 10025 0 0 1 2 0 0 20035 0 0 1 0 0 1 20053 1 0 0 0 0 0 30627 1 0 1 2 0 0 30648 2 0 0 0 1 0每行有7个列值,第一列是一个ID号,在具体操作中,忽略该列。之后的5列,每一个都表示一个特征的取值;最后一列是分类标记(0或1)... 阅读全文

posted @ 2014-01-09 16:03 jfcspring 阅读(1895) 评论(3) 推荐(0) 编辑

2014年1月3日

朴素贝页斯分类法 c++实现

摘要: 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于搞机器学习的同学们来说,这是相对简单但效果较好的模型。朴素贝叶斯方法的理论设输入为n维特征向量X={x1,x2,...,xn},输出为类标记集合Y={c1,c2,...ck}。朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y),其中X是n维,Y是分类标记。有了模型P(X,Y),要预测一个特征向量的分类标记,则分别计算P(X,Y=c1),P(X,Y=c2),...P(X,Y=ck),选择取最大值的p(X,Y=cm),将cm作为X的分类标记。但对于模型P(X,Y)中的X是n维随机变量,若每一维特征取值最少有两个值,那么模型P(... 阅读全文

posted @ 2014-01-03 14:34 jfcspring 阅读(2334) 评论(0) 推荐(2) 编辑

2013年8月19日

C++ multimap容器访问同一键值元素的不同方法

摘要: multimap是一种多元map容器,允许一个键对应多个值。本文介绍了multimap访问同一键值元素的三种不同方法,详细看下面代码: 1 typedef multimap::size_type mstype; 2 typedef multimap::iterator mulit; 3 multimap mulmap; 4 //插入元素 5 mulmap.insert(make_pair("abc",2)); 6 mulmap.insert(make_pair("abc",3)); 7 mulmap.insert(make_pair("bcd& 阅读全文

posted @ 2013-08-19 15:25 jfcspring 阅读(1929) 评论(1) 推荐(0) 编辑

2013年8月18日

C++ 关联容器之map插入相同键元素与查找元素操作

摘要: 一、插入相同键元素操作(1)insert方法在map中的键必须是唯一的,当想map中连续插入键相同但值不同的元素时,编译和运行时都不会发生任何错误,系统会忽略后面的对已存在的键的插入操作,如1 map m1;2 m1.insert(make_pair(1,2));3 m1.insert(make_pair(1,3));4 for(map::iterator mit=m1.begin();mit!=m1.end();mit++){5 coutfirstsecond m1;2 m1[1]=2;3 m1[1]=3;4 for(map::iterator mit=m1.begin();mit!... 阅读全文

posted @ 2013-08-18 17:20 jfcspring 阅读(7770) 评论(2) 推荐(1) 编辑

C++ 顺序容器适配器

摘要: 在c++中适配器按我的理解就是一种基于容器之上的,进一步封装的容器。适配器的所有接口都是由底层容器提供或进一步封装,去适应特定的应用。顺序容器适配器包括三种:stack,queue和priority_queue。1. stackstack所关联的容器可以是list,vector或deque的任意一种,其默认的是基于deque实现的。2. queuequeue允许执行的操作是在容器末尾添加元素,在首部弹出元素,所以对于queue的底层容器必须能提供push_back()和pop_front()操作,因此queue只能基于list或deque容器。不能建立在vector上,因为vector不提供p 阅读全文

posted @ 2013-08-18 15:20 jfcspring 阅读(316) 评论(0) 推荐(0) 编辑

导航