- 博客(52)
- 收藏
- 关注
转载 数据库学习地图
1不知道该怎么说,我在数据库上并不擅长,虽然在数据库部门待过,但是做的是NoSQL的东西。我想你指的应该是常规的关系型数据库吧,我说点自己的经验给你参考吧。这个是作为开发人员的角度,不是DBA的角度。 2首先是数据库的原理,这个大学课程肯定有讲到,不过不是很深入,一般关系理论和关系代数也会讲到,接着是三大范式以及后来的BC范式等等,这个一般是重点要掌握的,对实际项目数据库的设计有重要意义。其他的概
2016-06-04 14:44:12
638
原创 Probability
1:一堆硬币,一个机器人,如果是反的就翻正,如果是正的就抛掷一次,无穷多次后就正反的比例。解: 假设初始情况下,全为正,进行x次后为 正 反 x=1: 1/2 1/2 x=2: 3/4 1/4 x=3 5/8 3/8 x=4 11/16 5/16
2016-06-04 14:39:05
433
翻译 Linux查看物理CPU个数、核数、逻辑CPU个数
总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数查看物理CPU个数 cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep “cpu cores”| uniq查看
2016-05-19 18:10:55
356
原创 libevent
使用libevent的函数的cpp编译时要加gcc -levent; 详细清参见: http://www.cnblogs.com/benio/archive/2010/10/25/1860394.html
2016-05-16 18:54:57
287
原创 错误集棉
scanf(),会在输入缓冲中留一个回车键,vc下fflush()可以清掉,但是gcc却不可以。真是操蛋!!!!!!!!!!!!!引用: 为什么一定要处理scanf留下的回车符?标准对这个没有明确的说明,所以由编译器实现定义的行为只能由编译器相关的方式去解决。VC支持使用fflush去清空剩余的缓冲,gcc则无效,变通的方法是scanf之后调用getchar(or fgetc(stdin))或者在
2016-05-14 20:45:31
304
翻译 git使用
git init //在当前项目工程下履行这个号令相当于把当前项目git化,变身!git add .//把当前目次下代码参加git的跟踪中,意思就是交给git经管,提交到本地库git add //把当前文件参加的git的跟踪中,交给git经管,提交到本地库git commit -m “…”//相当于写点提交信息git remote add origin git@github.com:ellocc/
2016-05-13 22:49:55
247
翻译 extern
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,
2015-10-18 20:30:16
311
原创 线性(一般性)拟合最小二乘解(超定方程)
课件的推导 结论 R’*Ra=R’ *y;>>>a=(R’R)^-1*R’y; f(x)=a1*r1(x)+a2*r2(x)+……am*rm(x);用f(x)去拟合一组数据 (x(i),y(i)),i=1,2,3,,,,,,,n; 去拟合当然r1(x),r2(x),,,,,rm(x)是已知的。要求a1,,,,,am; 所以R=[r1(x),r2(x),,,,rm(x
2015-08-17 23:39:19
3852
原创 动态规划
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有
2015-08-14 23:07:28
375
原创 分支定界法(
基本思想:分枝定界法可用于解纯整数或混合的整数规划问题 个人理解:把可行域分解为若干个小区域,求这几个小区域的线性规划的解,一旦有个小区域的最优解为整数解,则可以利用这个最优解对其他区域进行筛选。如果使两个未知数最差情况就是求在一条线构成区域的最优解,显然比穷举法好的多。 感觉专业一点: 例子 步骤
2015-08-13 10:24:52
1669
原创 lingo解线性的缺陷
缺陷: 引用块内容 lingo虽然可以解线性问题,但是他只能在约束条件下解针对这一目标的最优解,不能一次性解在不同约束条件的特定目标的最优解,但是matlab就可以做到,例子: 要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型: 说明:ri为收益率,pi是交易率,M是总资金,xi是给第i个投资的资金,在本题看做1; 由于此题为多规划模型,要做一定的处理
2015-08-12 22:48:09
3367
原创 非线性转化为线性规划的方法
取绝对值法: 说明:通过解ui和vi满足的方程可以解出ui>=0;vi>=0;除此之外 还必须满足ui和vi有一个必须为零;即@smin(ui,vi) = 0;含取最大或最小值的“伪线性规划”问题: 现令x0=max{x1-x2+x3,x1+x2,x1-x3},故有 x0>=x1-x2+x3,x0>=x1+x2,x0>=x1-x3 故上面的规划
2015-08-12 07:39:11
14743
4
原创 一元多项式的存储合并
#include<stdio.h>#include<malloc.h>#define MAX 20//多项式的最多项数typedef struct POLY//定义存放多项式的系数和指数{ double coef;//系数 int exp;//指数}polyarray[MAX];typedef struct pnode{ double coef; int
2015-08-10 17:31:23
602
翻译 KM算法
km算法一:算法描述:他是为了实现二分图最大权值的匹配。二:关于算法的一些定理:有关数学知识: 用数学描述:我对算法的理解: 1:初始化可行顶点标号L,可这样初始化:由于是二分图,将他看成X中的点和Y中的点两个独立的点集,则可使X中的点的标号,是他们所连边的权值的最大值,而Y中点的标号全设为0;这样就可以确定Gl,选取的对集M为空集。 例如:带权二分图: 算法把权重转换成标杆
2015-08-09 18:11:17
626
原创 层次分析法建模
层次分析法建模1:他针对 的问题是:适合解决定性的问题, 适合为多目标,多准则而无结构特性的复杂问题作出决策。它主要是利用利用较少的定量信息使决策的思维过程数学化。2:利用层次分析法建模最重要的得到成对比较矩阵,这个矩阵元素的由来,数据的合理性,首先要保证数据在1~9之间,或者1/1,1/21/3,1/5等等,不能出现3/5这些用结果得到的结果的数据。3:层次分析法所要解决的
2015-08-07 16:34:40
2173
原创 最小二乘法
最小二乘法 用已知的数据来预测未来的数据可用回归分析,然后用最小二乘拟合,这样总体吻合程度较好,不一定要过这些定点。预测数据也可用建立差分方程,然后用最小二乘来拟合系数。[x resnorm] = lsqcurvefit(fun,x0,xdata,ydata,...)fun 是我们需要拟合的函数,这是重点x0 是我们对函数中各参数的猜想值,这也是重
2015-08-07 01:16:36
420
原创 差分方程建模
差分方程建模:1:差分方程:针对的是离散点2:微分方程:针对的是连续型的一般是已知差分序列:y1-y0,y2-y1,y3-y2.......目标是求:未知序列:y0,y1,y2.......例子汉诺塔问题汉若塔问题:就是把A柱子上面从大到小一次叠放的盘子借助B柱移到C柱上去,规则是一次只能移动一个盘子,大盘子不能放到小盘子之上采用递归的方法来接:(1)先将A上面
2015-08-06 23:45:50
4135
原创 概率论与统计学的重要东西
1:频率直方图可演变为概率密度理由:2:累加频率分布直方图可看为分布函数。理由,F(x)表示随机变量在小于x时的概率,与累加频率线上的点表示含义相吻合。3:参数估计中的点估计 基本思想:总体的矩(含参)等于样本的矩(随机变量样本的函数)。4:假设检验基本思想:他用的是小概率事件几乎不发生,类似于反证法 如果在假设条件下,如果使小概率
2015-08-06 00:48:28
424
原创 有序表操作
void listinsert(LNODE *h,ElemType e)//有序单链表的插入算法{ LNODE *res = h,*q; while(res->next&&res->next->node<e) res = res->next; q=malloc(sizeof(LNODE)); q->node = e; q->next = re
2015-08-04 21:53:34
444
原创 c 函数模块
1. getchar (), a功能:从stdin流中读字符。b用法:int getchar(void);c注:当调用getchar时,程序等待用户按键,用户输入的字符被放入到键盘缓冲区中,直到用户按回车为止,当用户输入回车后,getchar从stdin(标准输入键盘)流中每次读入一个字符,其返回指为用户输入的第一个字符的AscII码,出错返回-1;但不会回显到屏幕,而其他的
2015-08-04 12:36:34
303
原创 双链表一系列操作
#include<stdio.h>#include<malloc.h>typedef int bool;#define false 0//后面没分号;#define true 1typedef char Elemtype;typedef struct Snode{Elemtype data;struct Snode *prior;struct Snode *next;}s
2015-08-04 12:30:53
315
原创 灾情巡视路线模型
此模型用到的程序。M=inf;a=矩阵(方阵);b=a+a';b(find(b==0))=M;for i=1:53 b(i,i)=0;end[D,path] = floyd(b);fenzu1 = [15 16 17 18 20 21 22 23 24 25 26 27 28 44 46 48 49 50 51];zuyi = D(fenzu1,fenzu
2015-08-03 23:48:38
4186
2
原创 趣味数学--安全过河
四名商人各带一名随从乘船渡河,一只小船只能容纳二人,由他们自己划行。随从们密约, 在河的任一岸, 一旦随从的人数比商人多, 就杀人抢货. 但是乘船渡河的方案由商人决定,那么商人们怎样才能安全过河?如果可以安全渡河,请找出所有可行方案.如果是n名商人,小船只能容纳m人,情况又将如何? 分析:采用Dijkstra算法解决了商人和随从渡河问题,根据题意用三维向量表示商人、随从和船的状态,并且
2015-08-01 16:24:12
1842
原创 趣味数学--图论摆度过河
一只狼、一头山羊和一箩卷心菜在河的同侧。一个摆渡人要将它们运过河去,但由于船小,他一次只能运三者之一过河。显然,不管是狼和山羊,还是山羊和卷心菜,都不能在无人监视的情况下留在一起。问摆渡人应怎样把它们运过河去?分析:因为河的两岸,都不能是狼和山羊,山羊和卷心菜在一起,所以第一步只能是摆渡人将山羊载过去,然后摆渡人空船而归,第二步假设带狼(卷心菜)过岸,再把山羊带回来,第三步,带卷心菜(狼)过岸
2015-08-01 15:55:37
3512
原创 趣味数学---图论四人过桥
有一天晚上,有四个人需要通过架在山谷间的危桥,任意时刻最多只能有两个人在桥上,过桥需要一盏闪光灯,这些人只有一盏闪光灯。如果单独过桥他们分别需要10、5、2、1分钟,如果两人同时过桥则所需时间是较慢者所需的时间。18分钟后,沿山谷滚滚而下的山洪将把这座桥冲毁。这四个人能及时过桥吗?不用图论知识,证明你的结论;并说明如何用图论知识获得答案。 分析:一共有四个人,一个手电筒,如果群聚的话
2015-08-01 13:31:54
2408
原创 去边破圈
“破圈法”其实也是一种贪心算法,只不过prim和krustal算法是“加”边,而这个顾名思义,就是减边。思想大体如下:1.找到图中的一个圈。2.删除其中的权最大的边。3.重复上述操作,直到图中已无圈。
2015-08-01 00:40:18
555
原创 Prim算法和Kruskal算法构造最小生成树
最小生成树首先,生成树是建立在无向图中的,对于有向图,则没有生成树的概念,所以接下来讨论的图均默认为无向图。对于一个有n个点的图,最少需要n-1条边使得这n个点联通,由这n-1条边组成的子图则称为原图的生成树。一般来说,一个图的生成树并不是唯一的(除非原图本身就是一棵树)。现在考虑带权图G,即图的边带权,则最小生成树就是在G中权值和最小的一颗生成树,显然最小生成树也不是唯一的,但是其权值唯
2015-07-31 23:19:24
3570
原创 弗洛伊德算法
弗洛伊德算法:求任意一点i到任意一点j的最短路。分析:求i到j的最短路,大可以使用群举法,因为点都是离散的,i到j的路径是有限的,所以一定可以通过群举法得到最短路,但群举法却没太大意义,他的意义在于:把群举法(通过修改)进行分类,得到好的算法。fLod算法的分类标准是:通过i到j过点的情况进行分类。先分成两类(可以说是贪婪算法的核心思想)i......1....
2015-07-31 23:13:38
1484
原创 迪克斯特拉算法
求最短路已有成熟的算法:迪克斯特拉(Dijkstra)算法,其基本思想是按距从近到远为顺序,依次求得到的各顶点的最短路和距离,直至(或直至的所有顶点),算法结束。为避免重复并保留每一步的计算信息(因此效率并不高),采用了标号算法。下面是该算法。算法结束时,从u0到各顶点v的距离由的最后一次的标号给出。在v进入si之前的标号l(v)叫T标号,v进入si时的标号l(v)叫P标号。算法就
2015-07-31 20:00:16
2210
原创 两个表指定条件的笛卡尔连接
#include<stdio.h>#include<malloc.h>#define maxcol 10typedef int ElemType;typedef struct dlist{ ElemType data[maxcol]; struct dlist *next;}Dlist;typedef struct hlist{ int row; int
2015-07-28 23:56:10
676
原创 删除单链表中的最大节点。
带头结点void delemax(LNODE *h){//关键:删除最大节点则需要找到最大节点的前驱节点的地址。 LNODE *maxq = h->next;//用q记录最大节点 LNODE *maxpre = h;//用pre记录前驱节点。 LNODE *pre = h; LNODE *p = h->next;//用p扫描全场 while(p)
2015-07-27 19:07:36
1078
原创 拆分单链表(a1,b1,a2,b2....an,bn)=(a1,...an)+(bn,...b1)
void split(LNODE *h,LNODE **h1,LNODE **h2)//{ LNODE *r;//尾插法用来记住h1指向链表的最后一个节点; LNODE *p = h->next,*q;//p用来指向当前处理节点。 *h2 = malloc(sizeof(LNODE)); (*h2)->next = NULL; *h1 = h; r =
2015-07-27 17:44:57
730
原创 单链表的一系列操作
#include<stdio.h>#include<malloc.h>#define bool char#define true 1#define false 0typedef char ElemType;typedef struct LNODE{ ElemType node; struct LNODE *next;}LNODE;void initlistlink(
2015-07-26 23:12:17
315
翻译 extern static
C/C++中extern关键字详解1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这
2015-07-26 01:10:23
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人