- 博客(186)
- 收藏
- 关注
TabSiPlus发布1749版本
拖了几天,终于可以发布了,下载地址如下:http://www.winmsg.com/download/TabSiPlus_0_99b2_1749.rar这个包里没有附带VC的运行库,考虑到大多数人的机器上都有这个东东了,就没有包含在这个包里。如果在你的系统上无法运行,请至微软网站呢下载VS2008的VC运行库,或者下载TabsiPlus的1510 版本,这个版本中带有VC运行库,安装这个运...
2012-06-29 14:56:00
113
TabSiPlus发布1749版本
拖了几天,终于可以发布了,下载地址如下:http://www.winmsg.com/download/TabSiPlus_0_99b2_1749.rar这个包里没有附带VC的运行库,考虑到大多数人的机器上都有这个东东了,就没有包含在这个包里。如果在你的系统上无法运行,请至微软网站呢下载VS2008的VC运行库,或者下载TabsiPlus的1510 版本,这个版本中带有VC运行库,安装这个运...
2012-06-29 14:56:00
115
算法系列之十六:使用穷举法解猜结果游戏
一、 引言 穷举是解决问题的一种常用思路,当对一个问题无从下手的时候,可以考虑在问题域允许的范围内将所有可能的结果穷举出来,然后根据正确结果的判断规则对这些结果逐个验证,从而找出正确的结果。采用穷举的方法求解问题的答案比较适合计算机做,对这种体力活它们没有怨言,本文就以常见的两个猜结果的题目为例,介绍一下如何通过计算机程序解决此类问题,顺便介绍一下穷举法常见的算法结构和实现方式。二、 猜结果...
2012-05-27 23:01:00
138
算法系列之十六:使用穷举法解猜结果游戏
一、 引言 穷举是解决问题的一种常用思路,当对一个问题无从下手的时候,可以考虑在问题域允许的范围内将所有可能的结果穷举出来,然后根据正确结果的判断规则对这些结果逐个验证,从而找出正确的结果。采用穷举的方法求解问题的答案比较适合计算机做,对这种体力活它们没有怨言,本文就以常见的两个猜结果的题目为例,介绍一下如何通过计算机程序解决此类问题,顺便介绍一下穷举法常见的算法结构和实现方式。二、 猜结果...
2012-05-27 23:01:00
186
雷神的微软平台安全宝典---第二章 RSA和AES
RSA是一种非对称加密算法,这意味着它需要一个密钥加密数据,另一个不同的密钥解密数据。这种加密算法的计算量不容小视,通常会导致处理器资源紧张,而且使用相同长度的密钥加密和解密数据的速度也比对称加密算法慢。因此人们通常选择的策略是使用AES算法加密文件数据,RSA算法则被用来加密AES算法的密钥:用公有密钥加密AES密钥,用私有密钥解密AES密钥。每当一个用户被加入到拥有加密文件权限的用户列表中时...
2012-05-23 23:45:00
1437
雷神的微软平台安全宝典---第二章 RSA和AES
RSA是一种非对称加密算法,这意味着它需要一个密钥加密数据,另一个不同的密钥解密数据。这种加密算法的计算量不容小视,通常会导致处理器资源紧张,而且使用相同长度的密钥加密和解密数据的速度也比对称加密算法慢。因此人们通常选择的策略是使用AES算法加密文件数据,RSA算法则被用来加密AES算法的密钥:用公有密钥加密AES密钥,用私有密钥解密AES密钥。每当一个用户被加入到拥有加密文件权限的用户列表中时...
2012-05-23 23:45:00
1080
算法系列之十五:循环和递归在算法中的应用
一、递归和循环的关系1、 递归的定义 顺序执行、循环和跳转是冯·诺依曼计算机体系中程序设计语言的三大基本控制结构,这三种控制结构构成了千姿百态的算法,程序,乃至整个软件世界。递归也算是一种程序控制结构,但是普遍被认为不是基本控制结构,因为递归结构在一般情况下都可以用精心设计的循环结构替换,因此可以说,递归就是一种特殊的循环结构。因为递归方法会直接或间接调用自身算法,因此是一种比迭代循环更强大的...
2012-05-20 23:11:00
147
算法系列之十五:循环和递归在算法中的应用
一、递归和循环的关系1、 递归的定义 顺序执行、循环和跳转是冯·诺依曼计算机体系中程序设计语言的三大基本控制结构,这三种控制结构构成了千姿百态的算法,程序,乃至整个软件世界。递归也算是一种程序控制结构,但是普遍被认为不是基本控制结构,因为递归结构在一般情况下都可以用精心设计的循环结构替换,因此可以说,递归就是一种特殊的循环结构。因为递归方法会直接或间接调用自身算法,因此是一种比迭代循环更强大的...
2012-05-20 23:11:00
115
tabsiplus即将发布新版本
tabsiplus的下一个版,也就是原计划1月份推出的“水玉石”被推迟到6月份发布,原计划是要继续推迟到12月份发布的,但是这期间一个会导致Source Insight崩溃的严重问题被确认(我在BLOG评论的回复中确认这是一个可复现的问题),此后不断有人发邮件询问6月份的版本中是否会修复这个BUG,鸭梨山大啊,呵呵。加之此前使用大字体的朋友报告标签栏字体显示异常的问题也有两年时间了,大家都等...
2012-05-20 21:53:00
91
算法系列之十四:狼、羊、菜和农夫过河问题
题目描述:农夫需要把狼、羊、菜和自己运到河对岸去,只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西,还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊。请考虑一种方法,让农夫能够安全地安排这些东西和他自己过河。 这个题目考察人的快速逻辑运算和短期记忆力。分析一下,在狼-》羊-》菜这个食物链条中,“羊”处在关键位置,解决问题的指导思想就是将“羊”与“狼”和“菜”始终处于隔离...
2012-05-13 22:56:00
531
算法系列之十四:狼、羊、菜和农夫过河问题
题目描述:农夫需要把狼、羊、菜和自己运到河对岸去,只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西,还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊。请考虑一种方法,让农夫能够安全地安排这些东西和他自己过河。 这个题目考察人的快速逻辑运算和短期记忆力。分析一下,在狼-》羊-》菜这个食物链条中,“羊”处在关键位置,解决问题的指导思想就是将“羊”与“狼”和“菜”始终处于隔离...
2012-05-13 22:56:00
344
算法系列之十三:椭圆的生成算法
椭圆和直线、圆一样,是图形学领域中的一种常见图元,椭圆的生成算法(光栅转换算法)也是图形学软件中最常见的生成算法之一。在平面解析几何中,椭圆的方程可以描述为(x – x0)2 / a2+ (y – y0)2 / b2 = 1,其中(x0, y0)是圆心坐标,a和b是椭圆的长短轴,特别的,当(x0, y0)就是坐标中心点时,椭圆方程可以简化为x2 / a2 + y2 / b2 = 1。在计算机图形...
2012-04-24 23:38:00
723
算法系列之十三:椭圆的生成算法
椭圆和直线、圆一样,是图形学领域中的一种常见图元,椭圆的生成算法(光栅转换算法)也是图形学软件中最常见的生成算法之一。在平面解析几何中,椭圆的方程可以描述为(x – x0)2 / a2+ (y – y0)2 / b2 = 1,其中(x0, y0)是圆心坐标,a和b是椭圆的长短轴,特别的,当(x0, y0)就是坐标中心点时,椭圆方程可以简化为x2 / a2 + y2 / b2 = 1。在计算机图形...
2012-04-24 23:38:00
382
算法系列之十二:多边形区域填充算法--几种边标志填充算法
四、边界标志填充算法 在光栅显示平面上,多边形是封闭的,它是用某一边界色围成的一个闭合区域,填充是逐行进行的,即用扫描线逐行对多边形求交,在交点对之间填充。边界标志填充算法就是在逐行处理时,利用边界或边界颜色作为标志来进行填充的。准确地说,边界标志填充算法不是指某种具体的填充算法,而是一类利用扫描线连贯性思想的填充算法的总称。这类算法有很多种,本篇就介绍几种。 首先介绍一种以边为中心的边缘填充...
2012-04-16 22:20:00
1371
算法系列之十二:多边形区域填充算法--几种边标志填充算法
四、边界标志填充算法 在光栅显示平面上,多边形是封闭的,它是用某一边界色围成的一个闭合区域,填充是逐行进行的,即用扫描线逐行对多边形求交,在交点对之间填充。边界标志填充算法就是在逐行处理时,利用边界或边界颜色作为标志来进行填充的。准确地说,边界标志填充算法不是指某种具体的填充算法,而是一类利用扫描线连贯性思想的填充算法的总称。这类算法有很多种,本篇就介绍几种。 首先介绍一种以边为中心的边缘填充...
2012-04-16 22:20:00
339
算法系列之十二:多边形区域填充算法--改进的扫描线填充算法
三、改进的扫描线填充算法 扫描线填充算法的原理和实现都很简单,但是因为要同时维护“活动边表(AET)”和“新边表(NET)”,对存储空间的要求比较高。这两张表的部分内容是重复的,而且“新边表”在很多情况下都是一张稀疏表,如果能对其进行改进,避免出现两张表,就可以节省存储空间,同时省去从“边表”生成“新边表”的开销,同时也省去了用“新边表”维护“活动边表”的开销,基于这个原则可以对原始扫描线算法进...
2012-03-25 21:45:00
173
算法系列之十二:多边形区域填充算法--改进的扫描线填充算法
三、改进的扫描线填充算法 扫描线填充算法的原理和实现都很简单,但是因为要同时维护“活动边表(AET)”和“新边表(NET)”,对存储空间的要求比较高。这两张表的部分内容是重复的,而且“新边表”在很多情况下都是一张稀疏表,如果能对其进行改进,避免出现两张表,就可以节省存储空间,同时省去从“边表”生成“新边表”的开销,同时也省去了用“新边表”维护“活动边表”的开销,基于这个原则可以对原始扫描线算法进...
2012-03-25 21:45:00
110
算法系列之十二:多边形区域填充算法--扫描线填充算法(有序边表法)
二、扫描线算法(Scan-Line Filling) 扫描线算法适合对矢量图形进行区域填充,只需要直到多边形区域的几何位置,不需要指定种子点,适合计算机自动进行图形处理的场合使用,比如电脑游戏和三维CAD软件的渲染等等。 对矢量多边形区域填充,算法核心还是求交。《计算几何与图形学有关的几种常用算法》一文给出了判断点与多边形关系的算法――扫描交点的奇偶数判断算法,利用此算法可以判断一个点是否在多...
2012-03-19 14:57:00
243
算法系列之十二:多边形区域填充算法--扫描线填充算法(有序边表法)
二、扫描线算法(Scan-Line Filling) 扫描线算法适合对矢量图形进行区域填充,只需要直到多边形区域的几何位置,不需要指定种子点,适合计算机自动进行图形处理的场合使用,比如电脑游戏和三维CAD软件的渲染等等。 对矢量多边形区域填充,算法核心还是求交。《计算几何与图形学有关的几种常用算法》一文给出了判断点与多边形关系的算法――扫描交点的奇偶数判断算法,利用此算法可以判断一个点是否在多...
2012-03-19 14:57:00
336
算法系列之十二:多边形区域填充算法--扫描线种子填充算法
1.3扫描线种子填充算法 1.1和1.2节介绍的两种种子填充算法的优点是非常简单,缺点是使用了递归算法,这不但需要大量栈空间来存储相邻的点,而且效率不高。为了减少算法中的递归调用,节省栈空间的使用,人们提出了很多改进算法,其中一种就是扫描线种子填充算法。扫描线种子填充算法不再采用递归的方式处理“4-联通”和“8-联通”的相邻点,而是通过沿水平扫描线填充像素段,一段一段地来处理“4-联通”和“8...
2012-03-11 23:47:00
196
算法系列之十二:多边形区域填充算法--扫描线种子填充算法
1.3扫描线种子填充算法 1.1和1.2节介绍的两种种子填充算法的优点是非常简单,缺点是使用了递归算法,这不但需要大量栈空间来存储相邻的点,而且效率不高。为了减少算法中的递归调用,节省栈空间的使用,人们提出了很多改进算法,其中一种就是扫描线种子填充算法。扫描线种子填充算法不再采用递归的方式处理“4-联通”和“8-联通”的相邻点,而是通过沿水平扫描线填充像素段,一段一段地来处理“4-联通”和“8...
2012-03-11 23:47:00
233
算法系列之十二:多边形区域填充算法--递归种子填充算法
平面区域填充算法是计算机图形学领域的一个很重要的算法,区域填充即给出一个区域的边界(也可以是没有边界,只是给出指定颜色),要求将边界范围内的所有象素单元都修改成指定的颜色(也可能是图案填充)。区域填充中最常用的是多边形填色,本文中我们就讨论几种多边形区域填充算法。一、种子填充算法(Seed Filling) 如果要填充的区域是以图像元数据方式给出的,通常使用种子填充算法(Seed Filli...
2012-03-06 00:10:00
176
算法系列之十二:多边形区域填充算法--递归种子填充算法
平面区域填充算法是计算机图形学领域的一个很重要的算法,区域填充即给出一个区域的边界(也可以是没有边界,只是给出指定颜色),要求将边界范围内的所有象素单元都修改成指定的颜色(也可能是图案填充)。区域填充中最常用的是多边形填色,本文中我们就讨论几种多边形区域填充算法。一、种子填充算法(Seed Filling) 如果要填充的区域是以图像元数据方式给出的,通常使用种子填充算法(Seed Filli...
2012-03-06 00:10:00
113
算法系列之十一:圆生成算法
<!-- Search Google --> 输入您的搜索字词 提交搜索表单 <!-- Search Google --> 在平面解析几何中,圆的方程可以描述为(x – x0)2 + (y – y0)2 = R2,其中(x0, y0)是圆心坐标,R是圆的半径,特别的,当(x0, y0)就是坐标中心点时,圆方程可以简化为x2 + y2 = R2。在计算机图形学中,圆...
2012-02-12 21:45:00
130
算法系列之十一:圆生成算法
<!-- Search Google --> 输入您的搜索字词 提交搜索表单 <!-- Search Google --> 在平面解析几何中,圆的方程可以描述为(x – x0)2 + (y – y0)2 = R2,其中(x0, y0)是圆心坐标,R是圆的半径,特别的,当(x0, y0)就是坐标中心点时,圆方程可以简化为x2 + y2 = R2。在计算机图形学中,圆...
2012-02-12 21:45:00
125
算法系列之十:直线生成算法
在欧氏几何空间中,平面方程就是一个三元一次方程,直线就是两个非平行平面的交线,所以直线方程就是两个三元一次方程组联立。但是在平面解析几何中,直线的方程就简单的多了。平面几何中直线方程有多种形式,一般式直线方程可用于描述所有直线:Ax+By+C = 0 (A、B不同时为0)当知道直线上一点坐标(X0,Y0)和直线的斜率K存在时,可以用点斜式方程:Y-Y0 = K(X – X0) (当...
2012-01-08 23:41:00
115
算法系列之十:直线生成算法
在欧氏几何空间中,平面方程就是一个三元一次方程,直线就是两个非平行平面的交线,所以直线方程就是两个三元一次方程组联立。但是在平面解析几何中,直线的方程就简单的多了。平面几何中直线方程有多种形式,一般式直线方程可用于描述所有直线:Ax+By+C = 0 (A、B不同时为0)当知道直线上一点坐标(X0,Y0)和直线的斜率K存在时,可以用点斜式方程:Y-Y0 = K(X – X0) (当...
2012-01-08 23:41:00
138
TabSiPlus 的新版本发布可能要延期了
距离TabSiPlus的上一个 版本发布已经快两年了,本来计划在2012年1月11日发布一个TabSiPlus的新版本,但是由于近期时间安排太紧张,版本计划只完成了一部分,新版本的发布可能要推迟到2012年的6月份了(暂定)。 不过可以先晒晒新版本的版本计划,呵呵,新版本的内部代号是水玉石(1510的内部代号是土豆)。首先是解决1510版本发布以来被爆出来的几个故障,比如:鼠标中间在项目窗口上...
2011-12-28 22:34:00
65
TabSiPlus 的新版本发布可能要延期了
距离TabSiPlus的上一个 版本发布已经快两年了,本来计划在2012年1月11日发布一个TabSiPlus的新版本,但是由于近期时间安排太紧张,版本计划只完成了一部分,新版本的发布可能要推迟到2012年的6月份了(暂定)。 不过可以先晒晒新版本的版本计划,呵呵,新版本的内部代号是水玉石(1510的内部代号是土豆)。首先是解决1510版本发布以来被爆出来的几个故障,比如:鼠标中间在项目窗口上...
2011-12-28 22:34:00
67
算法系列之九:计算几何与图形学有关的几种常用算法(二)
3.6 用矢量的叉积判断直线段是否有交 矢量叉积计算的另一个常用用途是直线段求交。求交算法是计算机图形学的核心算法,也是体现速度和稳定性的重要标志,高效并且稳定的求交算法是任何一个CAD软件都必需要重点关注的。求交包含两层概念,一个是判断是否相交,另一个是求出交点。直线(段)的求交算法相对来说是比较简单的,首先来看看如何判断两直线段是否相交。 常规的代数计算通常分三步,首先根据线段还原出两...
2011-12-25 23:04:00
199
算法系列之九:计算几何与图形学有关的几种常用算法(二)
3.6 用矢量的叉积判断直线段是否有交 矢量叉积计算的另一个常用用途是直线段求交。求交算法是计算机图形学的核心算法,也是体现速度和稳定性的重要标志,高效并且稳定的求交算法是任何一个CAD软件都必需要重点关注的。求交包含两层概念,一个是判断是否相交,另一个是求出交点。直线(段)的求交算法相对来说是比较简单的,首先来看看如何判断两直线段是否相交。 常规的代数计算通常分三步,首先根据线段还原出两...
2011-12-25 23:04:00
115
算法系列之九:计算几何与图形学有关的几种常用算法(一)
我的专业是计算机辅助设计(CAD),算是一半机械一半软件,《计算机图形学》是必修课,也是我最喜欢的课程。热衷于用代码摆平一切的我几乎将这本教科书上的每种算法都实现了一遍,这种重复劳动虽然意义不大,但是收获很多,特别是丢弃了多年的数学又重新回到了脑袋中,算是最大的收获吧。尽管已经毕业多年了,但是每次回顾这些算法的代码,都觉得内心十分澎湃,如果换成现在的我,恐怕再也不会有动力去做这些事情了。 在学...
2011-12-18 23:13:00
111
算法系列之九:计算几何与图形学有关的几种常用算法(一)
我的专业是计算机辅助设计(CAD),算是一半机械一半软件,《计算机图形学》是必修课,也是我最喜欢的课程。热衷于用代码摆平一切的我几乎将这本教科书上的每种算法都实现了一遍,这种重复劳动虽然意义不大,但是收获很多,特别是丢弃了多年的数学又重新回到了脑袋中,算是最大的收获吧。尽管已经毕业多年了,但是每次回顾这些算法的代码,都觉得内心十分澎湃,如果换成现在的我,恐怕再也不会有动力去做这些事情了。 在学...
2011-12-18 23:13:00
127
算法系列之八:RLE行程长度压缩算法
RLE(Run Length Encoding)行程长度压缩算法(也称游程长度压缩算法),是最早出现、也是最简单的无损数据压缩算法。RLE算法的基本思路是把数据按照线性序列分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。对于第一种情况,对连续的重复数据块进行压缩,压缩方法就是用一个表示块数的属性加上一个数据块代表原来连续的若干块数据。对于第二种情况,RLE算法有两种处理方法,...
2011-12-12 00:33:00
212
算法系列之八:RLE行程长度压缩算法
RLE(Run Length Encoding)行程长度压缩算法(也称游程长度压缩算法),是最早出现、也是最简单的无损数据压缩算法。RLE算法的基本思路是把数据按照线性序列分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。对于第一种情况,对连续的重复数据块进行压缩,压缩方法就是用一个表示块数的属性加上一个数据块代表原来连续的若干块数据。对于第二种情况,RLE算法有两种处理方法,...
2011-12-12 00:33:00
365
算法系列之七:爱因斯坦的思考题(下)
CheckGroupRelation()函数需要根据当前组group的位置进行适当的处理,如果当前组是第一个组或最后一个组,则group的相邻组只有一个,就是最靠近group的组,其它情况下group的相邻组都是两个。CheckGroupRelation()函数的实现如下:162bool CheckGroupRelation(GROUP *groups, int groupIdx, ITEM...
2011-12-05 22:37:00
109
算法系列之七:爱因斯坦的思考题(下)
CheckGroupRelation()函数需要根据当前组group的位置进行适当的处理,如果当前组是第一个组或最后一个组,则group的相邻组只有一个,就是最靠近group的组,其它情况下group的相邻组都是两个。CheckGroupRelation()函数的实现如下:162bool CheckGroupRelation(GROUP *groups, int groupIdx, ITEM...
2011-12-05 22:37:00
82
算法系列之七:爱因斯坦的思考题(上)
这是一个很有趣的逻辑推理题,传说是爱因斯坦提出来的,他宣称世界上只有2%的人能解出这个题目,传说不一定属实,但是这个推理题还是很有意思的。题目是这样的,据说有五个不同颜色的房间排成一排,每个房间里分别住着一个不同国籍的人,每个人都喝一种特定品牌的饮料,抽一种特定品牌的烟,养一种宠物,没有任意两个人抽相同品牌的香烟,或喝相同品牌的饮料,或养相同的宠物,问题是谁在养鱼作为宠物?为了寻找答案,爱因...
2011-11-21 00:08:00
84
算法系列之七:爱因斯坦的思考题(上)
这是一个很有趣的逻辑推理题,传说是爱因斯坦提出来的,他宣称世界上只有2%的人能解出这个题目,传说不一定属实,但是这个推理题还是很有意思的。题目是这样的,据说有五个不同颜色的房间排成一排,每个房间里分别住着一个不同国籍的人,每个人都喝一种特定品牌的饮料,抽一种特定品牌的烟,养一种宠物,没有任意两个人抽相同品牌的香烟,或喝相同品牌的饮料,或养相同的宠物,问题是谁在养鱼作为宠物?为了寻找答案,爱因...
2011-11-21 00:08:00
86
算法系列之六:最长公共子序列(LCS)问题(连续子序列)的三种解法
最长公共子序列(LCS)问题有两种方式定义子序列,一种是子序列不要求不连续,一种是子序列必须连续。上一章介绍了用两种算法解决子序列不要求连续的最终公共子序列问题,本章将介绍要求子序列必须是连续的情况下如何用算法解决最长公共子序列问题。 仍以上一章的两个字符串 “abcdea”和“aebcda”为例,如果子序列不要求连续,其最长公共子序列为“abcda”,如果子序列要求是连续,则其最长公共...
2011-10-08 00:41:00
82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人