自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 一随机数以概率 p 生成0,以概率(1-p)生成1,怎样生成等概率的 0 和 1 ?

网站价值这涉及到概率 分布的内容了,其实也简单只要能找到一个概率为1/2p的函数就解决了. 另外还有一个比较方便的实现: 一随机数f(x)以概率 p 生成0, 那么设g(x)=f(x)>0?0:1;  刚g(x)以概率 1-p 生成0. 所以f(x),g(x)同时生成0的概率为p(1-p)等于同时生成1的概率. 得等概率随机数 function g(x){

2009-09-19 10:27:00 5971 1

原创 伪随机函数的实现

网站价值《The GNU C Library》里说的,大概如下: 公式: Y = (a * X + c) mod m a,c,m 都是常数 一种取值是: a = 0x5DEECE66D = 25214903917 c = 0xb = 11 m

2009-09-04 23:26:00 1939

原创 sql常见题

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#

2009-09-03 10:46:00 634

原创 标准C++的类型转换符

 C 风格(C-style)强制转型如下:(T) exdivssion // cast exdivssion to be of type T函数风格(Function-style)强制转型使用这样的语法:T(exdivssion) // cast exdivssion to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两

2009-08-29 17:04:00 357

原创 关于用两个栈实现一个队列的小问题

记住进除首删除元素的时候是如果出队列的栈不为空,则直接弹出一个元素即可,如果出队列的栈空,则需要将另一个栈的元素导入出栈中,然后再弹出一个元素.

2009-08-11 20:30:00 439

原创 聚合和组合的区别

聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

2009-07-29 20:53:00 556

原创 关于模版

c++模版需要将声明和定义写在一个文件中,不然链接找不到.

2009-07-29 10:44:00 334

原创 二分图最大匹配(匈牙利算法)

算法轮廓:(1)置M为空(2)找出一条增广路径P,通过取反操作获得更大的匹配M’代替M(3)重复(2)操作直到找不出增广路径为止V2: #include #include using namespace std;const int MAXN = 100 ;int uN, vN; // u,v数目 bool g[MAXN

2009-07-27 21:29:00 877

转载 带权二分图的最优匹配 Kuhn-Munkres算法

网站价值分工问题如下:某公司有工作人员x1,x2,...,xn,他们去做工作y1,y2,...,yn,每人适合做其中的一项或几项工作,每个人做不同的工作的效益不一样,我们需要制定一个分工方案,使公司的总效益最大,这就是所谓最佳分配问题, 它们数学模型如下:数学模型:    G是加权完全二分图,V(G)的二分图划分为X,Y;X={x1,...,xn},Y={y1,y2,...yn

2009-07-27 21:05:00 13997 4

原创 HeadFirst设计模式一书中的9条设计原则(Design Principle)

1, [封装变化]:找出应用中可能变化需要变化之处,把他们独立出来,不要和那些不需要变化之处的代码混在一起.(Identify theaspects of your application that vary separate them from what thesame.)2,针对接口编程(Progrma to an interface,not an implementati

2009-07-24 23:22:00 735

原创 virtual constructor

Thats a design pattern, not a built-in construct.From the languages POV, the actual virtual function called depends onthe object on which it is called. Having a virtual constructor makes no

2009-07-20 23:31:00 714

原创 c和c++中static区别和联系

static关键字是C,   C++中都存在的关键字,   它主要有三种使用方式,   其中前两种只指在C语言中使用,   第三种在C++中使用(C,C++中具体细微操作不尽相同,   本文以C++为准).     (1)局部静态变量     (2)外部静态变量/函数     (3)静态数据成员/成员函数     下面就这三种使用方式及注意事项分别说明         一、局部静态变量     在

2009-07-20 20:35:00 870

转载 C++的4种类型转换

一、C 风格(C-style)强制转型如下:    (T) expression // cast expression to be of type T     函数风格(Function-style)强制转型使用这样的语法:    T(expression) // cast expression to be of type T     这两种形式之间没有本质上的不同,它纯粹就是一个把括号放

2009-07-20 19:58:00 339

原创 一个网站

www.vckbase.com

2009-07-20 19:47:00 358

原创 (转)字节序问题--大端法小端法

一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian。引用标准的Big

2009-07-19 22:12:00 641

原创 关于“联合”的题目的输出

#i nclude   union  {  int i;  char x[2];  }a;  void main()  {  a.x[0] = 10;  a.x[1] = 1;  printf("%d",a.i);  }  答案:266 (低位低地址,高位高地址,内存占用情况是Ox010A)

2009-07-19 22:02:00 701

原创 三个点使组成的三角形面积最大

问题:给N(从中取出三个点使组成的三角形面积最大 答案:最大三角形的三个顶点都在凸包上。先求凸包,假设凸包上的点依次是 P_0, P_1, ..., P_n-1。先考查包含顶点 P_0 的所有三角形,记顶点 P_0 和顶点 P_i 构成的线段是 S_i,以 S_i 为一条边的三角形中,最大的三角形的另外一个顶点应该是凸包上距离 S_i 最远的点。

2009-07-19 14:05:00 2212 1

原创 strcat函数原形

char * __cdecl strcat (char * dst, const char * src){char * cp = dst;while( *cp )cp++; /* find end of dst */while( *cp++ = *src++ ) ; /* Copy src to end of dst */return( dst ); /* return d

2009-07-19 11:13:00 652

原创 一道c++题

void Test(void){char *str = (char *) malloc(100);strcpy(str, “hello”);free(str);if(str != NULL){strcpy(str, “world”);printf(str);}} 请问运行Test 函数会有什么样的结果?

2009-07-19 11:10:00 431

转载 关于a++和++a

1.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分)int a = 4;(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);a = ?答:C错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a;  no   need   to   be   sor

2009-07-19 11:06:00 911

原创 Struts2 原理图

http://struts.apache.org/2.1.6/docs/big-picture.html

2009-07-16 22:49:00 383

转载 微软的22道数据结构算法面试题(含答案)

  1、反转一个链表。循环算法。               1     List   reverse(List   l)   {       2     if(!l)   return   l;       3         list   cur   =   l.next;       4     list   pre   =   l;       5  

2009-07-16 21:39:00 932

原创 四道微软面试算法题

(1)一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。注意:- 5个数值允许是乱序的。比如: 8 7 5 0 6- 0可以通配任意数值。比如:8 7 5 0 6 中的0可以通配成9或者4- 0可以多次出现。- 复杂度如果是O(n2)则不得分。(2)设计一个算法,找出二

2009-07-16 10:30:00 404

转载 判断单链表是否存在环,判断两个链表是否相交问题详解

有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如果找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针

2009-07-14 17:01:00 320

原创 快速排序递归和非递归算法

int partition(int q[],int low,int high){int i=low;int j=high+1; int p=i; while(1){ while(q[++i]<q[p]); while(q[--j]>q[p]); if(i>=j) break; swap(q[i],q[j]);} swap(q[j],q[p]); retur

2009-07-14 16:00:00 720

原创 Java类成员变量的初始化顺序

在类被继承的情况下,初始化的顺序:1.初始化子类,类加载器在加载它的时候会发现它继承了另外一个类,类加载器要先把父类加载进来。于是开始加载父类,父类的静态部分被按顺序加载。之后子类的静态部分被加载。这样的顺序是考虑子类的静态域可能会依赖父类的静态域;2.父类的非静态部分被加载;3.子类指定的父类的构造器;4.子类的非静态部分被加载;5.子类构造器的其余部分。public

2009-07-14 10:46:00 1194 1

原创 十大常用数据结构

一、栈: 1、后缀表达式的求值; 2、中缀到后缀表达式的转换; 3、深度优先搜索的非递归实现; 4、动态规划的优化:用于维护一个凸序列,便于二分查找,如LIS问题的O(nlgn)算法。 二、队列: 1、树的层序遍历; 2、广度优先搜索; 3、Bellman-Ford算法的SPFA实现; 4、网络流中FF算法的Edmonds-Karp实现,以及Preflow算法的队列优化实现。 三、二叉搜索树: 1

2009-07-12 16:49:00 1609

原创 trie树结构

 Trie树就是字符树,其核心思想就是空间换时间。举个简单的例子。给你100000个长度不超过10的单词。对于每一个单词,我们要判断他出没出现过,如果出现了,第一次出现第几个位置。这题当然可以用hash来,但是我要介绍的是trie树。在某些方面它的用途更大。比如说对于某一个单词,我要询问它的前缀是否出现过。这样hash就不好搞了,而用trie还是很简单。现在回到例子中,如果我们

2009-07-12 15:54:00 580

原创 求两数的最小公倍数

/** * 求最大公约数和最小公倍数 */ public class Convention { /** * 求两数的最大公约数 */ int divisor(int m,int n){ if(m%n==0){ return n; }else{

2009-07-12 10:21:00 434

原创 一个关于图的面试题(未解)

题目: 给定一个有n个顶点的图G=(V,E),请设计一个算法计算G中两两连接的4个顶点(即四边形)的数目, 如果没有,输出NOT EXIST,说明你所使用的方法以及时间和空间复杂度。

2009-07-12 00:14:00 496

原创 非标准二分搜索

问题:例如:一个数组a[]={11,12,15,18,20,65,2,5,8,9}数组特点:局部有序递增,前一部分总体大于后一部分,查找一个key的算法:要求:高效,时间复杂度不是O(n)(具体多少我也不知道,可以是log(n)吧)用到数组的特点,快速排序,希儿排序,归并排序等,暂时还不能考虑  解决算法:[l ... m ... r]if (m == key)

2009-07-11 23:39:00 388

原创 排列组合算法

 全排列 /*     分析:设R= {r1,r2,r3,……,rn}是要进行排列的n个元素,Ri=R-{ri}。集合X中的元素的全排列记为perm(X).(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀ri得到的排列,R的全排列可归纳定义如下:       当n=1,perm(R) = (r) ,其中r是集合R中唯一的元素。       当n>1,per

2009-07-11 19:34:00 505

转载 java垃圾收集算法

 1.垃圾收集算法的核心思想  Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。  垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被引用,

2009-07-11 17:04:00 367

原创 学习算法的请进.....

向大家推荐一个好的算法站点.算法源码吧..http://www.sfcode.cn/

2007-05-12 14:52:00 591

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除