自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenglinhust的专栏

分布式系统 基础架构 中间件系统 安全领域 容器技术 人工智能

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

原创 详解大端模式和小端模式

详解大端模式和小端模式一、大端模式和小端模式的起源        关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,

2012-12-31 10:55:02 987

原创 readelf命令

readelf命令readelf用来显示ELF格式目标文件的信息.可通过参数选项来控制显示哪些特定信息。(注意: readelf不支持显示archive文档, 也不支持64位的ELF文件)。使用方法1:查看共享库的依赖库(NEEDED)和搜索名(SONAME)。readelf -d

2012-12-30 22:29:07 1689

原创 自己动手开发编译器之参考博客

http://www.cnblogs.com/Ninputer/archive/2011/06/10/2077991.html#2588239可以参考这个博客进行开发,加油哈~

2012-12-30 10:19:28 993

原创 Singleton模式中的DoubleCheck机制

Singleton模式中的DoubleCheck机制   在多线程环境下,使用Singleton模式很重要的一点就是要保证用Double Check机制保证线程安全。  很多时候, 我们通常需要使用singleton模式来保证对象实例的唯一性。通常我们是这么写的:  class Singleton  {  private:  static

2012-12-29 22:12:58 1446

原创 线程安全与Singleton

线程安全与Singleton  线程安全是个非常棘手的问题。即使你合理的使用了锁(lock),依然可能不会产生预期的效果。让我们来看看貌似合理的代码X=0;Thread 1                   Thread2lock();  lock();x++;    x++;unlock();  unlock();

2012-12-29 22:09:41 922

原创 C语言volatile关键字

C语言volatile关键字     编译器在进行优化的时候,也可能为了效率而交换毫不相干的两条相邻指令的执行顺序,有可能在多线程中产生不必要的错误,这个时候可以用volatile关键字试图阻止过度优化。     volatile基本可以做到两件事情:     (1) 阻止编译器为了提高速度将一个变量缓存到寄存器内而不写回。     (2) 阻止编译器调整操作volatil

2012-12-29 22:05:40 1090

原创 linux clone()函数

linux clone()函数     clone函数调用     #include      int clone(int (*fn)(void *fnarg), void *child_stack, int flags, void *arg, ...                 /* pid_t *pid, struct user_desc *tls, pid_t *

2012-12-29 21:38:05 6474

转载 分布式文件系统(FastDFS原理介绍)

分布式文件系统(FastDFS原理介绍)在生产中我们一般希望文件系统能帮我们解决以下问题,如:1.超大数据存储;2.数据高可用(冗余备份);3.读/写高性能;4.海量数据计算。最好还得支持多平台多语言,支持高并发。由于单台服务器无法满足以上要求,这就迫使开发者不得不考虑使用其他方式解决此类问题。分布式文件系统就在这样迫切的需求下孕育而生。今天为什么把标题定为“分

2012-12-29 00:06:23 2301

原创 Mysql常用命令行

Mysql常用命令行第一招、mysql服务的启动和停止net stop mysqlnet start mysql第二招、登陆mysql语法如下: mysql -u用户名 -p用户密码键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:mysql>

2012-12-23 09:27:22 892

原创 Linux下mysql编译配置

Linux下mysql编译配置1.   开启mysql服务以root身份运行:service mysqld start;   2. mysql/mysql.h: No such file or directory.以root身份运行: yum install mysql-devel;(顾名思义,mysql的develop包, fedroa下包名是这个

2012-12-22 18:19:26 719

原创 APUE笔记——alarm函数

APUE笔记——alarm函数alarm(设置信号传送闹钟)相关函数signal,sleep表头文件#include定义函数unsigned int alarm(unsigned int seconds);函数说明alarm

2012-12-22 14:14:49 715

原创 UNIX高级环境编程中的apue.h以及UNIX网络编程中的unp.h搭建

UNIX高级环境编程中的apue.h以及UNIX网络编程中的unp.h搭建参考:http://www.cnblogs.com/feiling/archive/2012/02/15/2353286.html            http://jimslinbing.blog.163.com/blog/static/85054319201292712414518/

2012-12-22 13:08:01 1024

原创 编程之美-----24点游戏

编程之美-----24点游戏问题:给玩家4张牌,每张牌的面值在1-13之间,允许其中有数值相同的牌,采用加、减、乘、除四则运算,允许中间运算存在小数,并且可以使用括号,但每张牌只能用一次。构造表达式,使其结果为24.解法一:具体见书分析,这里利用了枚举,通过递归解法.#include iostream>  #include cmath>  u

2012-12-22 00:35:18 1385

原创 编程之美----俄罗斯方块

编程之美----俄罗斯方块问题:让电脑自动下俄罗斯方块游戏。解法:对当前的积木块,枚举它旋转后的每一个形状从每一列落下的棋盘,将该棋盘和前一个棋盘进行对比,并打分,最后取得分最高的那个形状和那一列作为电脑的当前操作。[cpp] view plaincopy#include   #in

2012-12-21 23:29:08 1323

原创 编程之美——连连看游戏设计

编程之美——连连看游戏设计1 问题描述及分析连连看游戏是一种很流行的小游戏,记得在小时候去游戏厅玩街机的时候就有两台专门的连连看的机器(当然当时不叫这个名字),一个是连麻将牌、另一个是连水果图片。当时的麻将牌分好几层,相邻层的牌还可以连,看得人眼花缭乱。真是佩服能玩这游戏的人,我还是打“拳皇”比较擅长J。书中给出的Microsoft Link-up界面很漂亮,不过似乎图形只有一层,

2012-12-20 16:48:30 1837

原创 编程之美——NIM(2) “拈”游戏分析

编程之美——NIM(2) “拈”游戏分析问题:有N块石头和两个玩家A和B,玩家A先将石头随机分成若干堆,然后按照BABA...的顺序不断轮流取石头,能将剩下的石头一次取光的玩家获胜,每次取石头时,每个玩家只能从若干堆石头中任选一堆,取这一堆石头中任意数目(大于0)个石头。请问:玩家A要怎样分配和取石头才能保证自己有把握取胜?如果石

2012-12-20 11:11:55 1434

原创 编程之美——NIM(1)一排石头的游戏

编程之美——NIM(1)一排石头的游戏        NIM(1)一排石头的游戏这个问题书上讲解的已经很详细了,特此不讲了,可以参考《编程之美》。       下面给出扩展题的思考。        问题描述:N块石头排成一行,每块石头有固定的位置。两个玩家依次取石头,每个玩家每次可以取其中任意一块石头,或者相邻的两块石头,石头在游戏过程中不能移位,最后取光石头的

2012-12-20 10:15:50 2126

原创 编程之美——双线程高效下载

编程之美——双线程高效下载一,题目        网络上下载数据,然后存储到硬盘上。简单做法是:先下载一块然后写到硬盘,然后再下载,再写到硬盘上。        缺点:需要先下载完才能写入硬盘,下载和写是串行操作。        改进:让两个线程并行进行,设置缓冲区,采用信号量的形式。                    下载线程,只要缓冲区有空余就下

2012-12-20 09:46:46 1263

原创 编程之美-----高效率地安排见面会

编程之美----高效率地安排见面会        某一天,在微软亚洲研究院有N个面试要进行,它们的时间分别为(B[i], E[i])(B[i]为面试开始时间,E[i]为面试结束时间)。假设一个面试者一天只参加一个面试。为了给面试者提供一个安静便于发挥的环境,我们希望将这N个面试安排在若干个面试点。不同的面试在同一个时间不能被安排在同一个面试点。如果你是微软亚洲研究院的HR,现在给定

2012-12-19 21:28:49 1848 1

原创 求解逆序数

求解逆序数方法一:(直接求解法,时间复杂度为0(N^2))#include#includeusing namespace std;#define MAX 10000#define N 500int a[N];int nixu(int a[],int n){  int i,j;  int count=0;  for(i=0;i  {

2012-12-19 20:33:34 1121

原创 编程之美——饮料供货

编程之美——饮料供货题目:在微软亚洲研究院上班,大家早上来的第一件事是干啥呢?查看邮件?No,是去水房拿饮料:酸奶,豆浆,绿茶、王老吉、咖啡、可口可乐……(当然,还是有很多同事把拿饮料当做第二件事)。管理水房的阿姨们每天都会准备很多的饮料给大家,为了提高服务质量,她们会统计大家对每种饮料的满意度。一段时间后,阿姨们已经有了大批的数据。某天早上,当实习生小飞第一个冲进水房并一次拿

2012-12-19 19:22:39 1799

原创 编程之美——快速找出故障机器

编程之美——快速找出故障机器题目:假设一个机器只存储一个标号为ID的记录,假设每份数据保存2个备份,这样就有2个机器存储了相同的数据。其中ID是小于10亿的整数问题1、在某个时间,如果得到一个数据文件ID的列表。是否能够快速的找到这个表中仅出现一次的ID?即快速找出出现故障的机器存储的数据ID。问题2、如果有两台机器死机呢?(假设同一个数据的俩个备份不会同时丢失,即列表

2012-12-19 17:10:53 1304

原创 编程之美——买书问题

编程之美——买书问题一. 问题      上柜的《哈利波特》平装本系列,一共有五卷。假设每一卷单独销售均需8欧元。如果读者一次购买不同的两卷,就可以扣除5%的费用,三卷则更多。假设具体折扣的情况如下:        本数    2       折扣   5%        本数    3       折扣  10%        本数    4

2012-12-19 16:51:09 885

原创 跳转表(skip lists)

跳转表(skip lists)      跳转表是动态平衡数据结构( balanced dynamic search structure )的一种, 动态平衡数据结构还包括AVL树,2-3-4数,B数,红黑树,Treaps等.      跳转表由William Pugh在1989年创造,相对其他动态平衡数据结构,它具有容易编码实现的优点.      跳转表的一次

2012-12-19 15:29:13 1232

原创 编程之美——构造数独

编程之美——构造数独问题:构造一个9*9的方格矩阵,玩家要在每个方格中,分别填上1至9的任意一个数字,让整个棋盘每一列、每一行以及每一个3*3的小矩阵中的数字都不重复。首先我们通过一个深度优先搜索来生成一个可行解,然后随机删除一定数量的数字,以生成一个数独。测试代码为:#include  #include  using n

2012-12-19 10:31:19 970

原创 编程之美----数字回文

编程之美----数字回文    题目:人过大佛寺*我=寺佛大过人.   其中每个字母代表着一个不同的数字.    分析:这道题用穷举的方法来解决即可.    代码如下:#include#includeusing namespace std;int main(){  bool flag;  bool IsUsed[10];  int number,

2012-12-18 22:24:31 1283

原创 编程之美----三角形测试用例扩展问题2

编程之美----三角形测试用例扩展问题2      这道题主要应该是考虑另存文件名的问题吧,包含以下几个方面:1. 判断当前的目录是否有权限可以写,是否有足够的空间2. 文件名为空,文件名过长,以及包含有各种非法字符3. 文件名已经存在,是否覆盖4. 针对单字符和Unicode设计不同case5. 带绝对路径和相对路径的的另存为...............

2012-12-18 21:37:46 1093

原创 编程之美----蚂蚁爬杆

编程之美----蚂蚁爬杆有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个 位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头 时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。通过遍

2012-12-18 21:12:26 1874

原创 编程之美----桶中取黑白球

编程之美----桶中取黑白球【题目描述】有一个桶,里面有白球、黑球各100个,人们必须按照以下的规则把球取出来:1、每次从桶里面拿出来两个球;2、如果是两个同色的球,就再放入一个黑球;3、如果是两个异色的球,就再放入一个白球;问:最后桶里面只剩下一个黑球的概率是多少?【解题思路】思路1:找规律 使用(黑球个数, 白球个数)来表示桶中黑球和白球的个数变动,

2012-12-18 17:29:34 1152

原创 编程之美----磁带文件存放优化

编程之美----磁带文件存放优化从题意分析可以看出,如果访问概率相同,小文件应该排在前面,如果文件长度相同,概率大的应该在前面。即和文件长度成反比,和概率成正比。不过书上给出的例子只有一种情况,比如概率/长度相同的情况是否满足解答呢。例如A和B的访问概率P分别为0.6和0.4,长度L分别为6和4,这样应该无论怎么排列都是相同的,计算如下:0.6 x 6 + 0.4 x

2012-12-18 17:10:45 712

原创 linux系统调用fork()、vfork()、clone()讲解

linux系统调用fork()、vfork()、clone()讲解clone()主要用来创建一个线程,可以是内核线程和用户线程,也可以创建进程,有选择的复制父进程资源。fork()用来全面复制父进程资源vfork()也是用来创建线程,但主要知识作为创建进程的中间步骤。这三个函数主要是通过配置do_fork()函数来实现的。int do_fork(unsi

2012-12-17 21:32:31 1874

转载 优秀程序员不得不知道的20个位运算技巧

优秀程序员不得不知道的20个位运算技巧一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算

2012-12-16 10:16:57 661

原创 线段树

线段树1.概述       线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,它基本能保证每个操作的复杂度为O(lgN)。2.线段树基本操作      线段树的基本操作主要包括构造线段树,区间查询和区间修改.3.线段树的相关操作代码(1)    线段树构造首先介绍构造线段树的方法:让根节点表示区间

2012-12-15 16:47:09 911

原创 编程之美——区间重合判断

编程之美——区间重合判断一. 问题:       1. 给定一个源区间[x,y]和N个无序的目标区间[x1,y1] [x2,y2] ... [xn,yn],判断源区间[x,y]是不是在目标区间内。       2. 给定一个窗口区域和系统界面上的N个窗口,判断这个窗口区域是否被已有的窗口覆盖。二. 解法:         问题一:先用区间的左边界值对目标区间进行

2012-12-15 15:07:42 1458

原创 编程之美——最短摘要的生成

编程之美——最短摘要的生成题目:    最短摘要的生成,具体见《编程之美》这本书。分析:    先来看看这些序列:w0,w1,w2,w3,q0,w4,w5,q1,w6,w7,w8,q0,w9,q1     问题在于,如何一次把所有的关键词都扫描到,并且不遗漏。扫描肯定是无法避免的,但是如何把两次扫描的结果联系起来呢?这是一个值得考虑的问题。

2012-12-15 11:21:22 1218

原创 编程之美——队列中取最大值操作问题

编程之美——队列中取最大值操作问题      这是一个要在队列中记录最大值的问题,但每次进队或出队又不能通过遍历去检测最大值的变化。用两个堆栈去实现一个队列是比较常见的方法,书中巧妙的用到了此方法,这样问题就转化为堆栈中取最大值操作问题。由于堆栈的变化只在栈顶,借助反向推导的思想。代码为:#include#include#includeusing namespa

2012-12-15 10:39:55 952

原创 编程之美——求二叉树中节点的最大距离

编程之美——求二叉树中节点的最大距离1.问题如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。2.分析书中对这个问题的分析是很清楚的,我尝试用自己的方式简短覆述。计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最

2012-12-15 09:36:33 786

原创 编程之美-----重建二叉树

编程之美-----重建二叉树1.问题      假设已经有了前序遍历和中序遍历的结果,希望通过一个算法重建这棵树.2.解答(具体分析详见>)#includeusing namespace std;const int Max=20;struct Node{Node *pLeft;Node *pRight;char value;};v

2012-12-14 22:35:24 689

原创 编程之美-----分层遍历二叉树

编程之美-----分层遍历二叉树1. 简述    问题一:给定一棵二叉树,要求按分层遍历该二叉树,即从上到下的层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。    问题二:写一个函数,打印二叉树中某层次的节点(从左到右),其中根节点为第0层,函数原型为int PrintNodeAtLevel(Node* root, in

2012-12-14 21:05:07 1174

原创 编程之美——判断两个链表是否相交

编程之美——判断两个链表是否相交问题:给出两个单向链表的头指针,判断这两个链表是否相交,这两个链表可能有环。分析:具体见《编程之美》测试程序:#include "iostream"using namespace std;struct Node{  int data;  Node *next;};//判断是否有环,返回bool,如果有环,返回环

2012-12-14 17:27:19 761

走向分布式基础学习

是学习分布式的好资料,里面的内容讲解的非常详细,是一个台湾人下载的

2015-03-22

空空如也

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

TA关注的人

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