摘要: 在概率及博弈论上,秘书问题的描述如下: 要聘请一名秘书,有n个应聘者.每次面试一人,面试后就要及时决定是否聘化,如果当时决定不聘他,他便举回来.面试后总能清楚了解应聘者的合适程度,并能和之前的每个人做比较.问什么样的策略,才使最佳人选被选中的概率最大. 这个问题最优解是一个停止规则.在这个规则里... 阅读全文
posted @ 2012-07-28 19:40 一点心青 阅读(3983) 评论(0) 推荐(0) 编辑
摘要: new和delete是C++中进行内存分配和释放的基本接口,程序员对内存的管理就是依靠这两个接口完成.既然C++的编译器已经提供了new和delete接口,那我们为什么重新定制new和delete.这就引出第一个问题,什么情况下需要重新定制new和delete?(肯定是编译器提供的new和delete满足需求的时候)1.用来检测运用上的错误 编程的过程中,可能出现导致数据"overruns"(写入点在分配区块尾端之后)或"underruns"(写入点在分配区块起点之前).如果我们自行定义一个operator news,便可超额分配内存,以额外空间(位于客 阅读全文
posted @ 2012-07-28 18:15 一点心青 阅读(1118) 评论(0) 推荐(0) 编辑
摘要: 前两天,睡觉前,偶尔翻起算法导论,看到随机函数这一块内容,里面有一个练习题.5.1-2 描述random(a,b)过程的一种实现,它只调用random(0,1).作为a和b的函数,你的程序的期望运行时间是多少?注:random(a,b)为产生a,a+1,a+2,...,b的函数发生器,且产生各整数的概率相等,同为1/(b - a + 1).看到这个题目时,似曾相识,脑海浮现了利用random(0,1)产生0或1,从而组成二进制数,来完成random(a,b)的实现.但是细想以后,感觉有个问题在脑海中有点不明不白.运行random(0,1)函数k次,使得2k>=(b-a+1),将得到[0, 阅读全文
posted @ 2012-07-28 14:41 一点心青 阅读(11681) 评论(2) 推荐(0) 编辑