自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hell2pradise'blog

If you want to steal,steal from the best.

  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 scheme实现快排

写起来真舒服。。。。 (define join  (lambda (l1 l2)    (cond     ((null? l1) l2)     (else (cons (car l1) (join (cdr l1) l2))))));Value: jo

2011-10-08 11:14:20 626

原创 从内核空间创建进程将导致没有写时复制

这句话来自内核代码main.c中的一句注释super user对所有页面都有写权限

2011-07-28 22:44:54 525

原创 apache1.3.39源码alloc.c阅读笔记

typedef struct pool pool;typedef struct pool ap_pool;struct pool {    union block_hdr *first;    union block_hdr *last;    struct cleanup *cleanups;    struct process_chain *subprocesses;    struc

2011-06-03 17:57:00 661

原创 apache1.3.39源码alloc.c阅读笔记

typedef struct pool pool;typedef struct pool ap_pool;struct pool {    union block_hdr *first;    union block_hdr *last;    struct cleanup *cleanups;    struct process_chain *subprocesses;    struc

2011-06-03 17:56:00 410

原创 apache1.3.39源码alloc.c阅读笔记

typedef struct pool pool;typedef struct pool ap_pool;struct pool {    union block_hdr *first;    union block_hdr *last;    struct cleanup *cleanups;    struct process_chain *subprocesses;    struc

2011-06-03 17:56:00 442

原创 apache1.3.39源码alloc.c阅读笔记

typedef struct pool pool;typedef struct pool ap_pool;struct pool {    union block_hdr *first;    union block_hdr *last;    struct cleanup *cleanups;    struct process_chain *subprocesses;    struc

2011-06-03 17:56:00 385

原创 apache1.3.39源码alloc.c阅读笔记

typedef struct pool pool;typedef struct pool ap_pool;struct pool {    union block_hdr *first;    union block_hdr *last;    struct cleanup *cleanups;    struct process_chain *subprocesses;    struc

2011-06-03 17:56:00 406

原创 负载均衡策略

<br />1,对balanceCode(一个随机数)简单的取模,select = balanceCode%m;(m为服务器的数量)<br />2,这时候,假如校验select到的服务器不可用。。。那么。。second = balanceCode%(m-1);<br />select = second < select ? second : second + 1<br />效果就是把不可用的服务器屏蔽掉了,并且select也是等概率分布的。。<br />例如:序列,1,2,3,4,5,6,7,8,9,10,

2010-12-06 17:31:00 347

原创 多堆NIM问题

<br />n堆小石子,两个人拿,每一堆的数目不固定,一次只可以从一堆里面拿,可以拿任意个,但是至少要拿一个,最多全拿走;拿走最后一个石头的赢。<br />例如:三堆石子,分别为1,2,3;<br />A从第三堆中拿2个,变成1,2,1;然后B把第二堆全拿走,变成1,1;那么A就只能拿一个了,最后一个B拿,B赢。<br />如何能必胜呢?<br />必胜的一个最基本的情况就是上述最后,剩下两堆给对手,每堆1个,这样他怎么拿都必输了。接着向上拓展,如果是两堆,每堆两个,那么对面的也是怎么拿都必输。更一般的情况

2010-11-22 11:57:00 955

原创 do...while(0)优雅的实现

<br />主要用于宏定义以及可以用break来做一些优雅的实现。。。

2010-11-12 12:53:00 497

原创 金刚坐飞机问题

<br />题目见编程之美4.1<br /><br />大体是这样的<br />大家都在排队上飞机,然后金刚来了,他也有票,但是插队第一个上了飞机,随便找了个座位坐下了,其余人的策略是:<br />如果自己票上写的座位没被占就按照座位坐,被占了就变身成金刚,随便找地儿坐。问第i个人坐在自己座位的概率是多少?<br /><br />1..n一共n个座位,为了方便计算起见,我们做一个变换<br />变换1:金刚的票上的座位是最后一个,也就是第n个,其余人的票和座位再按照原先的顺序排列成1..n-1。<br />

2010-09-25 23:52:00 1634

原创 位计数(二进制中1的个数)--读Hacker's Delight

  计算一个字中1位的数目有时被称为“种群计数”以一个32位的int为例最朴素的方法:检查最后一位,计数,然后无符号右移。int bit_count(unsigned int i){ int count=0; while(i){ count+=i&0x00000001; i>>=1; } return count;}这样的算法复杂度为O(logi),最坏的时候要做32次循环。O(m)算法,m为二进制中1的个数x-1操作将x的二进制表示中的最右边的1改成0,而该位右

2010-09-23 12:08:00 2627

原创 POJ 1988 第一次在POJ上做题,5次AC

#include int b[30003],count[30003],f[30003];intfind(int i){ int x=i,p,s=0; while(x!=f[x]){  x=f[x];  s+=b[x]; } while(i!=x){  b[i]+=s;   p=f[i];  f[i]=x;  s-=b[p];  i=p; } return x;}voidmerge(int i,int j){ int fi,fj; fi=find(i); fj=find(j); f[fj]=fi; b[fj]

2010-08-20 16:50:00 819

翻译 转+原:RMQ与LCA(From TopCoder Algorithm Tutorials)

原帖地址:http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor#Range_Minimum_Query_%28RMQ%29RMQ(Range Minimal Query)问题给定一个数组A[1..N],RMQ(A,i,j)就是A[i..j]的最小值的下标。

2010-08-16 16:01:00 8275 3

原创 二分查找的进一步分析(TAOCP)

<br />首先,证明二叉树的一些性质<br />E=I+2N,其中E为二叉树的外部路径长度,I为二叉树的内部路径长度,N为二叉树的节点数<br />内部路径长度是指根节点到所有结点的路径长度的和<br />外部路径长度是指将二叉树进行扩充之后,根节点到扩充产生的结点的路径的和

2010-07-07 21:53:00 705

原创 CS:APP中的tsh示例

<br />/* * tsh - A tiny shell program with job control * * <Put your name and login ID here> */#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <ctype.h>#include <signal.h>#include <sys/types.h>#

2010-06-12 14:05:00 1218

原创 CS:APP缓冲区溢出攻击练习题

CS:APP一书的第三章最后的练习题是一个练习缓冲区溢出攻击的题目程序是这样的//bufbomb.c /* Bomb program that is solved using a buffer overflow attack */ #include #include #include #include /* Like gets, exc

2010-05-28 23:13:00 2358 2

原创 关于未定义行为的一些研究

 #include int main(){ int b; printf("%d,%d/n",++b,b++); return 0;} 运行结果取决于未定义行为的一些不良写法,可总有人拿出来当题考别人。。。首先printf()函数里面参数的求值顺序,标准C里只规定了四个运算符的求值顺序,||,&&,?:,还有逗号,但不是函数参数表里的逗号。基于任何关

2010-05-21 21:27:00 623

原创 关于新旧版本的GCC对浮点数运算的一些行为(读《CS:APP》)

《CS:APP》第二章中说到GCC对浮点运算的一些处理方式,在Intel IA32的处理器中浮点数寄存器使用的是80位的扩展精度格式,而在GCC中float和double类型的浮点数长度为32和64。这就导致在浮点数寄存器向内存中写入数据的时候会产生精度丢失。书中的例子如下:#include double recip(int denom){return 1.0/(double)

2009-10-26 16:50:00 1914

原创 乱码。。。

#include#define _(a)               ______(a);#define __                 _____(){#define ___               _(0x0a)#define ____             _(0x20)#define _____           main#define ______         pu

2009-09-20 00:31:00 397

原创 Exper C Programming 零零散散

1.关于char* 和const char*以及char**和const char**分别作为实参和形参的问题传值实际上是类似于赋值的。两个操作数都是指向限定符或无限定符的相容类型的指针,左边指针所指向的类型必须具有右边指针所指向类型的全部限定符。 

2009-09-15 12:48:00 328

原创 有关指针,地址和数组名等等。。

//发现的一些以前没有注意到的现象。。。。 #includeusing namespace std;void ref(char* (&ch)[3]){ cout cout cout}void argu(char* ch[]){ cout cout cout}int main(int argc,char* argv[]){ char* ch[3]; ch[0]="abc"; cout r

2009-08-13 21:31:00 327

原创 哈希表练习

#include#include#include#includetypedef unsigned __int64 Uint;using namespace std;struct Hash_elem{  //hash_table的元素 Uint hash_key; int hash_value;};struct Hash_table{   Hash_elem *table;   in

2009-08-13 06:30:00 793

原创 《数据结构》中的哈希表实现的例子(C语言)

#用的是开放定址法处理冲突,线性探测再散列确定增量 #include#include#include#include#include #include#include #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define SUCCESS 1#define UNSUCCESS 0#define DUPLICATE -1

2009-08-12 09:25:00 6049 2

原创 TC++PL Chapter 6 读书笔记

Chapter 6表达式和语句1.一个桌面计算器,允许用户自己输入语句的,类似一个小编译器写得蛮优雅。。。完整代码在这里2.有关命令行参数int main(int argc,char* argv[]){}程序的名字会传进来一个简单的测试程序,顺便巩固一下数组和指针知识 #includeusing namespace std;int main(int

2009-08-12 00:07:00 562

原创 TC++PL Chapter 6 完整的程序

//第六章的完整程序#include#include#include using namespace std;enum Token_value{  NAME,NUMBER,END,  PLUS=+,MINUS=-,MUL=*,DIV=/,  PRINT=;,ASSIGN==,LP=(,RP=)  };Token_value curr_tok=PRINT;

2009-08-11 10:20:00 517

原创 字数统计-简单哈希表

读入二进制文本文件,统计并做一些计算 #include #include #include using namespace std;int cbtoi(char* ch)  //哈希函数,将输入的8位二进制数的char[]转换成十进制数{ int v=0; for(int i=0;i  if(ch[i]==1)   v+=(1 return v;}int main(){if

2009-08-11 08:36:00 591

原创 TC++PL Chapter 4 读书笔记

TYPES AND DECLARATIONS类型与声明1.C++有一组基础类型,对应于计算机里的一些常见的基本存储单元和一些利用这些存储单元保存数据的基本方法Boolean,character,integer 统称为整形整形和float point(浮点型)统称为算术类型class和enum被称为用户定义类型,其他的叫做内部类型2.BOOLeanbool b=a

2009-08-06 09:26:00 740

原创 TC++PL Chapter 3 读书笔记

A Tour of the Standard Library本章中主要讲述了标准库中的一些基本应用从Hello World!程序开始,要使用标准库需要#include 和 namespace需要指出的是,在现在大多数的vc++版本中,形如#include 这种写法的时候需要使用作用域标识符 std:: 或者using namespace std 而#include

2009-08-05 17:27:00 415

原创 TC++PL Chapter 2 读书笔记

 a tour of c++what is c++bj本人给出的解释是--a better c--support data abstraciton--support oop--support gp/*以往的编程范式*/数据抽象是为了让用户定义类型像内部类型一样定义和使用Decide which types you want;provide a full set

2009-08-05 16:08:00 501

原创 TC++PL Chapter 1 读书笔记

      裘老师翻译的中文版实在晦涩,无奈之下只能去啃原版。看过之后发现对自己来说,虽然读得慢,但是英文版比起中文版更好理解一点。      Chapter 1 Notes to the Reader      Chapter 1 gives an overview of the whole book.The writer introduces the construction of t

2009-07-16 10:31:00 519

原创 MFC里的OnIdle()

CWinThread::Run是程序生命的"活水源头"(侯捷:《深入浅出MFC》,函数存在于VC++ 6.0安装目录下提供的THRDCORE.CPP文件中): // main running routine until thread exitsint CWinThread::Run(){ ASSERT_VALID(this); // for tracking the idle time s

2009-07-08 10:25:00 3197

BS_Contact_VRML-X3D

浏览器插件,vrml文件3D解析,BS_Contact_VRML-X3D

2010-01-20

空空如也

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

TA关注的人

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