Others
文章平均质量分 52
shanno
一切尽在不言中
展开
-
蒙提霍尔问题的理解
今天在逛天涯论坛的时候发现了这个问题,觉得蛮有意思。下面是某君的一篇博客,我借来作为阐述该问题的背景材料,在最后我给出了自己的看法。1990年,美国《Parade》杂志“Ask Marilyn”专栏的主持人玛莉莲·莎凡收到了一名读者的提问:假设你正在参加一个游戏节目,你被要求在三扇门中选择一扇。其中一扇后面有一辆汽车,其余两扇后面则是山羊。你选择了一扇门,假设是1号门,然后知道门后面有什么的主原创 2009-12-29 11:08:00 · 1706 阅读 · 0 评论 -
对临界区对象的一点感悟
临界区对象1. 多线程中,在所有使用(同一个)临界区对象的地方,同一时刻只能有一个地方被执行。2. 程序中使用多个临界区对象的用途。举个例子,比如有两个需要保护对象分别为电话和自动柜员机(ATM机),在对这两个对象进行访问的时候,我们都使用临界区对象进行保护,以便在同一时刻只有一个地方可以访问电话(或者自动柜员机)。当然,访问电话和自动柜员机并不会矛盾,我们可以便访问自动柜员机的同原创 2011-05-08 08:07:00 · 1878 阅读 · 0 评论 -
Huffman Tree
在电脑资料处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。http://zh.wikipedia.org/zh-cn/%E9%9C%8D%E5%A4%AB%E6%9B%BC%原创 2010-04-16 09:59:00 · 694 阅读 · 0 评论 -
不相交集
不相交集是种用于合并的数据结合,在kruskal算法中有用到。它用到的两个技术挺有意思的,一是按秩合并;二是路径压缩;这两种技术都是用来控制树的高度的。因为如果树的高度过高,那么搜索一个元素所花费的时间就会增加。#ifndef __DISJOINTSET_H__#define __DISJOINTSET_H__#include class DisjointSet{publi原创 2010-03-22 15:41:00 · 1045 阅读 · 0 评论 -
快速排序
#include using namespace std;typedef int Element;inline bool Less(Element e1, Element e2) {return e1 < e2;}inline void Swap(Element* e1, Element* e2){ Element temp = *e1; *e1 = *e2;原创 2010-03-20 16:31:00 · 547 阅读 · 0 评论 -
三维矩阵的实现
#ifndef _MATRIX_H_#define _MATRIX_H_templatevoid Matrix3D(Type*** &matrix, int nDepth, int nHeight, int nWidth){ int nPlaneSize =nDepth * nHeight * nWidth * sizeof(Type); int nPlaneIndex原创 2010-01-09 22:45:00 · 782 阅读 · 0 评论 -
经典的农夫养牛问题
http://topic.csdn.net/u/20091001/15/40bf4993-8ed7-45cc-968f-97c524dae3c4.html一种面向对象的思想,一种递归的思想;都非常好!递归思想:year年牛的数目f(year) = 前年牛的数目f(year-1) +year年刚出生牛的数目 f(year-3)面向对象思想:原创 2009-12-29 10:08:00 · 870 阅读 · 0 评论 -
Linux 下查看静态库.a的内部信息
在链接一个静态库(xxx.a)的时候出现undefined reference error的错误信息。一直不知道怎么搞定,因为我确信已经把所需要的.o编译进来了。后来使用nm xxx.a命令,查看.a的内部信息发现,所需要的.o确实已经编译了,但在编译的时候被我用宏注释掉了,实在是悲惨唉。撰写程序时多使用合适的工具非常有用,我欠缺这方面的知识,以后要补上了。原创 2011-12-13 11:08:25 · 4855 阅读 · 0 评论 -
去除WORD 中文字底边的波浪线
在WORD窗口中,最下面的状态栏上,中间位置,有一本翻开的书本的图标,右键点击它,将“隐藏拼写错误”前的勾去掉即可,红色波浪线就不显示了。去掉“隐藏语法错误”前的勾,就能不显示绿色的波浪线!原创 2010-11-30 09:53:00 · 1569 阅读 · 0 评论 -
如何在没有装VC的机子上跑MFC程序
Q:如何在没有装VC的机子上跑MFC程序?A:新建一个文件夹,将exe后缀的文件放到这个文件夹里。然后再添加四个dll文件:mfc42.dll, mfc42d.dll, mfco42d.dll, msvcrtd.dll到这个文件夹里。原创 2009-12-29 10:02:00 · 891 阅读 · 0 评论 -
Love Your Life
Love Your LifeHenry David ThoreauHowever mean your life is, meet it and live it; do not shun it and call it hard names. It is not bad as you are. It looks poorest when you are richest. The fault转载 2009-12-29 10:56:00 · 792 阅读 · 1 评论 -
苟富贵勿相忘
毕业临近,学生们忙着写留言,突然就想起一句最著名的留言:苟富贵,勿相忘。 随着年龄的增长,渐渐明白了,这是一个多么真诚的期望,这又是多么天真的一句话。 富贵了的人们,当然也有不相忘朋友,更多的朋友也许是那些跟自己类似的人。时间的距离,空间的距离,地位的距离,经济的距离,生活信条,消费理念的差异,隔开的不仅仅是身体,更是内心与之亲近的念头。就像少年时候的的闰土和鲁迅,小时候,可以有亲密无转载 2010-10-18 21:54:00 · 22431 阅读 · 0 评论 -
linux文件系统结构图.jpg
原创 2010-10-17 09:07:00 · 1835 阅读 · 0 评论 -
n皇后问题-回溯法
用树可以形象直观地描述回溯法。《算法设计技巧与分析》#ifndef __QUEENS_H__#define __QUEENS_H__class Queens{public: Queens(int nQueens); ~Queens(); bool Setout(); // 摆放皇后 inline int* GetAnswer(){return m_pos原创 2010-04-10 15:46:00 · 805 阅读 · 0 评论 -
堆排序
堆排序,建立在堆这种结构上。一般的堆可以建立在数组上,但也可以用链表结构来表示。有序堆满足,每个节点的键值要比它所有孩子的键值都大。#include using namespace std;typedef double Elem;/* 自顶向下堆化(大根堆)fixDown(Elem* eArray, int k, int N)问题功能描述:假设原来的堆是有序的,只是位置原创 2010-04-10 12:20:00 · 573 阅读 · 0 评论 -
堆排序算法
1.概述 1991年计算机先驱将获得者、斯坦福大学计算机科学系教授Robert W.Floyd和J. Williams在1964年共同发明了著名的Heap Sort算法。 堆排血实质上就是将要进行排序的序列Arr[1..n]看做是一棵完全二叉树的存储结构,堆则是满足如下性质的完全二叉树:树中任一非 叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。(如果按照数组原创 2010-10-15 01:17:00 · 1196 阅读 · 0 评论 -
网新恒天笔试小结
1. 输出以下代码的输出结果#include #define N 5int* func(int* x, int* y){ static int t = 0; if (*x < *y) { t += *x; printf("%d/n", t); return x; } else { t += *y; printf("%d/n",原创 2010-10-14 10:28:00 · 3208 阅读 · 0 评论 -
二叉树中节点的最大距离(递归,动态规划)
相距最远的两个节点,如果不经过当前树的根节点,也必定经过以当前树中某节点为根的树而连接在一起。非正式地讲,任何一条路径都是经过“根节点”的。所以可以用动态规划的方法,自底向上为每个节点分别计算其左子树到“根节点”的最大距离,右子树到“根节点”的最大距离。然后,比较经过当前“根节点”的路径距离与当前的最远距离。树结构代码:struct LTNode{ int nMaxLeft;原创 2010-04-13 10:49:00 · 973 阅读 · 0 评论 -
二叉树的按层访问(非递归)
二叉树按层遍历(利用队列非递归实现)1) 访问第k层的节点,可以通过访问第k-1层节点的左右孩子来实现。2) 从根节点开始访问二叉树,在访问第k层节点的时候,保存它的左右孩子节点。所以可以通过队列来实现(FIFO)。为了为每层输出换行符,在队列中放入0作为标记。如果节点i是第k层的最后一个节点,那么i的右孩子(如果有的话)就是下一层的最后一个节点。/* pseudo-code原创 2010-04-13 09:16:00 · 877 阅读 · 0 评论 -
二叉树重构
问题描述:根据前序遍历结果和中序遍历结果,重构二叉树。1) 前序遍历结果的特点:假设当前的遍历结果是完整的树节点集合。那么第一个节点就是该树的根节点,并且其后面的节点集合中,前半部分是其左子树的节点集合,后半部分是其右子树的节点集合。2) 中序遍历结果的特点:如果当前节点是当前树的根节点,那么该节点左边的节点集合是树的左子树节点的集合,该节点右边的节点集合是树的右子树节点集合。原创 2010-04-13 09:11:00 · 2569 阅读 · 0 评论 -
二叉树非递归遍历
二叉树非递归遍历的几个要点:1) 不管前序、中序还是后序,它们的遍历路线(或者说是回溯路线,先沿左边一直走到尽头,然后回溯到某节点,并跳转到该节点的右孩子(如果有的话),然后又沿着这个有孩子的左边一直走到尽头)都是一样的。2) 明确每次回溯的目的。比如,前序回溯的目的是为了访问右子树;中序回溯的目的是为了先访问根节点,后访问右子树;后序回溯的目的是为了先访问右子树,后访问根节点。原创 2010-04-11 14:43:00 · 886 阅读 · 0 评论 -
word2003 中调出“公式编辑器”到工具栏中
第一步:点击“视图”菜单下的子菜单“工具栏”,在这个子菜单中,点击“自定义”;第二步:“自定义”对话框弹出后,点击“重排命令”;第三步:“重排命令”对话框出现后,在“请选择要重排的菜单或工具栏”下面,选择“菜单栏”,然后在右边的下拉菜单中选择“插入”, 最后再点击“添加”命令; 第四步:在“类别”一栏中选择“插入”,在“命令”一栏中选择“ 公式编辑器”,然后确定,这时我们将会看到转载 2010-05-10 13:59:00 · 8036 阅读 · 2 评论