代码改变世界

随笔分类 -  4、学习笔记

Java与C#的比较学习记录(2)

2012-08-11 11:54 by java线程例子, 765 阅读, 收藏,
摘要: 1) I/O:这个东西其实比较没什么意义,不过java的流概念跟C#的流概念其实都差不多,继承体系都差不多,只是Java中是Input,Output,而C#中是Read和Write.其实各自支持类中的方法名大部分都相同.当然,C# 除了流支持外,还兼容原来的一些文件读写.2)序列化:对象的序列化两者都有支持,做法都差不多,当然,C# 中除了二进制序列化外,还可以序列化成XML格式(Java中有不有还有待更进一步了解).序列化的用途其实也差不多(主要是RMI).3)反射机制:两者的反射机制差不多,当然,在这个方面C#的要完善一些,还加入了元属性(Attribute)的概念(Java中有不有类似的 阅读全文

Java与C#的比较学习记录(1)

2012-08-11 07:32 by java线程例子, 409 阅读, 收藏,
摘要: 我在大学学的是C语言,自学和选修的是C++,刚毕业也搞过几天Jsp,写过几个Applet.后来转向delphi做桌面开发,再后来又转向C#做Web开发.最近相对比较闲,决定学习一下Java,以取长补短,经过半天的忙碌,终于搭建起了开发环境,在网上找了一篇入门的教程,经过几个小时的练习(严格说叫复习),基本熟悉了Java的语法和基本的结构.在这里对Java和C#做些简单对比:1) 历史 Java当然比C#长,而且Java脱胎于C和C++,是典型的C风格,C#也是脱胎于C和C++,但由于C#晚于Java,也借鉴了很多Java的东西(C#之父Anders Hejlsberg)其实也是微软VJ++的主 阅读全文

排序网络(C#模拟)

2012-08-04 17:23 by java线程例子, 195 阅读, 收藏,
摘要: 排序网络利用比较器进行简单的组合形成排序网络,利用并行方式执行,可以实现高效的排序算法,排序网络如果用软件实现,其实没有什么大的意义,因为目前的计算机虽然有多核,也可以用多线程,在一定程度上实现真正的并行,但其并行能力相对于稍具规模的排序网络来说都是有限的.排序网络用硬件来实现就非常具有优势了,排序网络的基本单元比较器的结构非常简单,适合大规模应用,还可以模块化.在组成比较排序网络后,在有限的时钟周期序列下就可以完成输入序列的排序(不需要通常系统意义下的并行).在规模为n的排序网络中,序列长度1-n的序列排序用时是一样的.当然,排序网络用硬件实现的一个缺点就是排序规模n扩展比较困难.对于现代的 阅读全文

R语言学习笔记(概念、公式及R函数)

2012-08-03 16:43 by java线程例子, 756 阅读, 收藏,
摘要: 1、随机实验:可在相同2、随机事件均值u:这个很好理解 R函数:mean中位数:对序列排序后,排在中间的数,需要特别注意的是如果序列为偶数,中位数是中间两个数平均值. R函数:median百分位数:也是顺序统计量,设百分数为p,n是样本个数,则p位数指:np为小数,ceiling(np)+1,np为整数,则p位数:(x[np]+x[np+1])/2. R函数:quantile()方差s^2,标准差s:注意是除以n-1,而不是n.与方差期望的计算不一样.变异系数CV:s/u*100(%),s标准差,u均值.样本校正平方和(CSS):样本与均值差的平方的求和,sum((X-u)^2).样本未校正平 阅读全文

单源最短路径算法(有向无回路)

2012-08-01 21:18 by java线程例子, 322 阅读, 收藏,
摘要: /// <summary> /// 有向无回路图中的单源最短路径算法 /// </summary> public class DAG_Shortest_Paths { /// <summary> /// 有向无回路图中的单源最短路径 /// </summary> /// <param name="g">有向无回路图</param> /// <param name="s">源点s</param> public void DAGShortestPaths(Grap 阅读全文

单源最短路径算法(BellmanFord算法)

2012-08-01 21:13 by java线程例子, 500 阅读, 收藏,
摘要: /// <summary> /// 单源最短路径BellmanFord算法 /// </summary> public class BellmanFordAlg { /// <summary> /// 单源最短路径算法(BellmanFord算法) /// </summary> /// <param name="g">图</param> /// <param name="s">原点</param> /// <returns></returns 阅读全文

R语言学习(概念理解2)

2012-07-26 19:09 by java线程例子, 320 阅读, 收藏,
摘要: 1、服从大数定律 如果当n足够大时,随机变量序列的算术平均值Y等于Y的期望地概率为1。 满足这个条件就可以说这个随机序列服从大数定律。2、Bernoulli大数定律 事件A的概率为p,当实验次数n足够大时,事件A出现的次数与n的比值等于p的概率为1,其实也就是说,但实验次数n足够大时,A出现的频率可以看作其出现的概率。 频率稳定于概率.3、Chebyshev(切比雪夫)大数定律 只要随机变量序列X(n)相互独立,且期望(u)和方差相同,在n足够大时,可以将序列的算术平均值看作是这个随机变量序列的数学期望u。4、Khintchin(辛钦)大数定律 如果随机变量序列X(n)服从相同的分布,且具有相 阅读全文

对淬火算法,神经网络和遗传算法等算法的一点思考(欢迎探讨)

2012-07-19 22:37 by java线程例子, 334 阅读, 收藏,
摘要: 这些算法看起来有点瞎猜的味道,但实际上我觉得都做了如下假设:1)因变量和自变量之间存在一定的函数关系;2) 自变量对因变量的影响是连续的.其实这种假设包含的是经典时空理论下的运动假设,即:运动是有轨迹的,或者说运动是连续的,体现在前面的函数关系上,就是自变量的微小变化引起的自变量变化也是微小的(极限理论).虽然在很多时候,我们观察的结果看起来是不连续的,比如量子力学中的电子运动,但我们还是假定这种不连续是因为我们观察的维度太低所致.因为只有在这种思想下,才会有收敛和逼近这一说.但运动的本质是否就是这样呢?这个其实很难回答.但如果运动本身是不确定的或者说不连续的,那么这个世界将无法想象.至少在这 阅读全文

R语言学习系列(数据挖掘之决策树算法实现--ID3代码篇)

2012-07-18 21:26 by java线程例子, 731 阅读, 收藏,
摘要: 1、辅助类,用于计算过程和结果存储/// <summary> /// 决策树节点. /// </summary> public class DecisionTreeNode { /// <summary> /// 类型:分支或叶子 /// </summary> public string Type { get; set; } /// <summary> /// 关键字一般存当前属性因子 /// </summary> public string Key { ge... 阅读全文

几个有关图的算法2(DFS,TopoLogicalSort) .

2012-07-09 22:36 by java线程例子, 325 阅读, 收藏,
摘要: 深度优先算法和拓扑算法是很多算法的基础,只得深究:/// <summary> /// 广度搜索算法,图 /// </summary> public partial class GraphicSearchAlg { /// <summary> /// 深度优先搜索算法,这里只是计算深度. /// </summary> /// <param name="g">图,基于邻接表示</param> /// <param name="s">源点</param> publi 阅读全文

几个有关图的算法1(图定义和BFS)

2012-07-09 22:32 by java线程例子, 265 阅读, 收藏,
摘要: 这几个算法主要是后面会有用,所以这里给出.1)图的结构定义(跟前面的差不多,只是为了方便算法,这里做了增加: /// <summary> /// 图类,由节点和边构成. /// </summary> public class Graphic { /// <summary> /// 用于图形访问临时公共变量 /// </summary> public int FinishOrder { get; set; } /// <summary> /// 用于图形访问临时公共变量 //... 阅读全文

最小优先级队列(基于最小二叉堆算法)

2012-06-27 22:03 by java线程例子, 426 阅读, 收藏,
摘要: 在最小生成树Prim算法中,可以利用最小优先级队列来改善时间复杂度,同时在单源最短路径Dijkstra算法中也同样可以利用这种最小优先级队列来改善算法时间复杂度。实现最小优先级队列可以有很多种方式,比如基于二叉最小堆,或者斐波那契堆等。这里是二叉最小堆的C#实现,原理是根据书上的伪代码来的,但有些地方我做了改进,比如书key值改变,原来书上只能变大,这里取掉了这个限制。同时还提供了根据卫星值来选择元素的功能,下面是代码: /// <summary> /// 队列元素包装类 /// </summary> /// <typeparam name="T&quo 阅读全文

最小生成树算法(类Prim算法的笨办法)

2012-06-24 16:46 by java线程例子, 296 阅读, 收藏,
摘要: 这个算法是我自己想的最笨最原始的算法,原理跟Prim类似,但不同的是这里不用处理最小优先级队列,当然算法的时间复杂度要高些(该算法针对的是无向连通图,对于有向连通图,算法原理一样,但算法代码需要做一些处理),下面看代码:1、类和树的定义可参考前面的博文。2、算法类:public class PrimAlg { public Tree MST_SimpleAlg(Graphic g,Node root) { Tree theMST = new Tree(); //最小生成树节点 Dictionar... 阅读全文

最小生成树算法(Kruskal算法)

2012-06-24 16:38 by java线程例子, 355 阅读, 收藏,
摘要: 算法导论看到一半,觉得还是有必要继续看,边看边试试,下面是最小生成树的Kruskal算法,这个算法原理看起来很复杂,但实现起来很简单:开始的时候是每个顶点一棵树,并将边按权重升序排列。然后从前到后按循序选边,如果当前选择的边的两个顶点分在两棵不同的树中,则将该边加入到最小生成树中,并合当前边连接的两棵树,如果边得两个顶点在相同的树中,则不做任何处理,需要注意的是这个算法是针对无向连通图的,如果是有限图,则需要在算法中做些处理,但算法原理是一样的。看代码:1、树和图相关类 /// <summary> /// 图类,由节点和边构成. /// </summary> publi 阅读全文

R语言系列学习(各种检验)

2012-06-20 15:23 by java线程例子, 560 阅读, 收藏,
摘要: 1、W检验(Shapiro–Wilk (夏皮罗–威克尔 ) W统计量检验) 检验数据是否符合正态分布,R函数:shapiro.test(). 结果含义:当p值小于某个显著性水平α(比如0.05)时,则认为 样本不是来自正态分布的总体,否则则承认样本来自正态分布的总体。2、K检验(经验分布的Kolmogorov-Smirnov检验) R函数:ks.test(),如果P值很小,说明拒绝原假设,表明数据不符合F(n,m)分布。3、相关性检验: R函数:cor.test()cor.test(x, y,alternative = c("two.sided", "less&q 阅读全文

R语言学习系列(来点实际的分析样例)

2012-06-20 11:22 by java线程例子, 272 阅读, 收藏,
摘要: 这是我辛辛苦苦搞来的数据,说明一下,国内生产总值来至于国家统计局(2011年除外),M2来自网络。首先画散点图:图什么意思,你懂的。对M2和年份做拟合,当然是指数级的(从散点图可以看出)> lm.sol<-lm(log(M2)~年份,data=DT)> summary(lm.sol)Call:lm(formula = log(M2) ~ 年份, data = DT)Residuals: Min 1Q Median 3Q Max -0.04702 -0.03278 -0.020270.035910.06410 Coefficients: Estimate Std. Error 阅读全文

R语言学习系列(极大似然法)

2012-05-23 21:19 by java线程例子, 580 阅读, 收藏,
摘要: 第4章看得确实比较费劲,主要还是栽倒数学功底上了,极限求值,微分等东西早还给老师了,所以理解起来很困难。后来补了点高数,总算搞明白了。似然函数其实就是密度函数的变量常量化,参数变量化,然后求极大值点下的参数值作为参数估计值(前提当然是必须有极大值存在,连续,一阶导存在),因此需要对似然函数求一阶导,得出似然方程或者对数似然方程。对于一个参数的求起来比较容易,对于两个参数的,需要先固定一个参数变量求另外一个参数变量的一阶导,这样就得到两个似然方程或对数似然方程。正态分布的u,s^2估计就是这样计算得出的。对于有些似然函数需要用到复合求导,就有些复杂。R语言本身并不难,难的是背后的数学,出来工作这 阅读全文

R语言学习系列(画向量的密度直方图)

2012-05-18 21:18 by java线程例子, 955 阅读, 收藏,
摘要: 利用R语言画密度直方图比较方便,但为了理解密度函数的意义和如何计算密度值,于是用plot,lines两个画图函数来自己实现密度直方图的画图程序脚本如下:DrawDensity = function(x,bw=5){ if(any(bw<=0)) { bw <- 5 } #print(bw) n <- length(x) if(any(n>0)) { mn <- min(x) mx <- max(x) rmn <- (mn %/% bw) begx <- rmn * bw rmn <- (mx %/% bw) ... 阅读全文

R语言学习系列(概念理解1)

2012-05-14 16:18 by java线程例子, 277 阅读, 收藏,
摘要: 统计分析一般是针对批量数据,如何反映这批数据的特征,是做数据分析的根本目的,对于这些目标数据集合而言,类型其实是没有限制的,但为了能进行更好的分析,特别是利用数学的方法进行,一般都会将这些数据数字化和量化.因此一般情况下,我们统计分析的指标都可以定在数量上.那如何刻画这些数据的特征呢?平均值: 这是最简单的一个指标,这个指标反映的是数据的平均水平或能力,其优点是简单易算,但缺点也很明显,一是不能反映数据的分布情况,二是真实度不高,很容易受到干扰数据的影响.一个典型的例子就是1个1000W,9个穷光蛋,平均下来各个都是王百万.极值与极差:从极大值和极小值,我们可以看出数据的取值范围,也能反映数据 阅读全文

对离散型随机分布的理解

2012-05-05 23:02 by java线程例子, 691 阅读, 收藏,
摘要: 01分布是比较简单的离散型分布,是伯努利分布的一个特例。伯努利分布:F(x)= ∑(k:0->x){C(n,k) p^k(1-p)^(n-k)},取n=1,即做一次伯努利试验,则得01分布。当n->∞时,p比较小的时候,P(X=k)=C(n,k) p^k(1-p)^(n-k,设λ=pn,带入可得P(X=k)= λ^k * e^(-λ) / k!,其实就是泊松分布。伯努利分布只有在n比较大和p比较小的时候可以近似为泊松分布。泊松分布F(x)=∑(0,x){λ^k * e^(-λ) / k!}.随机变量的是概率空间到实数的映射函数,每个基本样本都有一个实数对应,但还必须满足,对于所有的 阅读全文