最近在 C++ 博客上看到了一段优雅的二维数组赋值代码,学习了一下。
作者为了实现图片中特定效果的二维数组,参考迷宫问题设计了一个优雅的算法,算法的基本思想就是对二维数组按照从外到内的方式赋值,在赋值的过程中加入了对二维数组边界的判断,只需要一层循环就可以实现。整个赋值过程和四冲程发动机工作原理有点类似,循环往复,各种变量之间此消彼长,代码如下:
const int ROW__ = 10;
const int COL__ = 10;
int mat[ROW__][COL__];
struct Position
{
int nRow;
int nCol;
};
in ...
前几天在阅读PuTTY密钥生成器说明书的时候受到启发,想到了一个关于MD5的问题。MD5散列算法的结果集合空间是2^128,如果假设MD5算法是完美的,那么对任意一个128位长度的二进制串进行散列计算之后,所得的散列值不会有重复的,同时对这些散列值排序之后,肯定会和0~2^128-1这些数字一一对应。既然如此,那么对任意一个256位长度的二进制串进行散列计算会有什么结果呢?384位呢?512位呢?根据抽屉原理,对256位长度的二进制串进行散列计算后,一定会产生冲突。如果能够发现这隐藏于冲突中的规律,也就是破解散列算法的一把钥匙。
- 18:17
- 浏览 (105)
- 评论 (0)
2007-12-16
[转]10 types of programmers you’ll encounter in the field
关键字: Team, Problem, Programmer, Programming, Development Tools
Programmers enjoy a reputation for being peculiar people. In fact, even within the development community, there are certain programmer archetypes that other programmers find strange. Here are 10 types of programmers you are likely to run across. Can you think of any more?
#1: Gandalf
This programm ...
- 12:38
- 浏览 (122)
- 评论 (0)
一、Subversion包含绝大部分CVS功能
Subversion 作为CVS 的重写版和改进版,其目标就是作为一个更好的版本控制软件,取代目前流行的CVS。Subversion 的主要开发人员都是业界知名的CVS 专家。Subversion支持绝大部分的CVS 功能/命令;Subversion 的命令风格和界面也与CVS 非常接近。当然,不同的地方正是对CVS 的改进。
二、全局性的版本编号
一个新的版本,并得到一个自增量的版本号N+1,该版本号并不针对某个特定的文件,而是全局性的、针对整个版本库的。因此,我们可以将Subversion 的版本库看作是一个文件系统或文件目录树的数组。 ...
- 14:01
- 浏览 (239)
- 评论 (0)
- 分类: Subversion
中国百姓上了五种当:房产、就业、教育和涨工资及买车
为什么中国人执迷不悟??最后脑袋怎么掉的都不知道! 但一代一代的中国人不顾家破人亡,妻离子散还是要像朝圣一样的上当呢?我不做过多的说明,因为自古以来这片土地上的统治者们都把思想禁锢和愚民说教作为统治的利器。所以一代一代的中国人就这样永远失去创造力,永远失去过上幸福日子的可能。直到多年以后我们的子孙后代再次被人推进毒气室!我们的子孙后代再次被侵略者的炮弹炸成碎片,被人像猪狗一样屠杀的时候,我们还能瞑目吗?因为我们二战的苦难是清朝所有人遗留给我们的,而我们子孙将要承受的苦难则是我们今天的愚蠢留给他们的!
第一大当:房产!
买房意味着什么?意 ...
- 12:50
- 浏览 (233)
- 评论 (0)
现在开源真是流行,连中文字体都有开源的,而且还挺好看的,不比微软雅黑差多少,真是不错。主页:http://wenq.org/
PS. 文泉驿如果使用 BSD 协议就更好了
- 15:20
- 浏览 (210)
- 评论 (0)
最近在 FreeBSD 6.2 上安装了最新版的 GCC 4.2.1。不过为了卸载的时候方便,我把它安装在一个单独的目录下,将来不需要的时候可以方便的删除整个目录。
GCC安装的过程很简单,只是编译的时间有点长。首先去http://gcc.gnu.org/下载源代码,因为我只需要C和C++编译器,所以只下载了gcc-core-4.2.1.tar和gcc-g++-4.2.1.tar。下载完以后首先解压gcc-core-4.2.1.tar,然后再解压gcc-g++-4.2.1.tar到同一个目录。GCC的安装说明建议再建立一个目标目录(objdir),与源代码所在的目录(srcdir)分开。做完这 ...
最近Sybase推出了新版的PowerDesigner 12.5,立刻下载了试用版,很好用,不过只能用30天,在网上查了一下,原来可以去掉这个限制:
安装好软件以后,找到安装目录下的pdflm12.dll文件,使用二进制编辑器打开此文件,查找:
83 C4 14 8B 85 E4 FE FF FF
将此字符串改为
83 C4 14 33 C0 90 90 90 90。
运行PowerDesigner之后,可以发现已经没有剩余试用天数的提示了。不过打开帮助菜单,进入关于对话框后,还是会有试用版的提示,不过不影响使用
- 13:08
- 浏览 (470)
- 评论 (0)
最近因为工作所需,要在一台服务器上同时运行两个tomcat,jakarta-tomcat-5.0.28和apache-tomcat-5.5.23,各自使用的JDK版本也不同,分别是jdk1.4和jdk1.5,下面开始进行设置
一、设置JDK
打开tomcat-5.0.28下bin目录的startup.bat文件,在开始添加:
set JAVA_HOME=D:\Java\jdk1.5.0
打开tomcat-5.5.23下bin目录的startup.bat文件,在开始添加:
set JAVA_HOME=D:\Java\jdk1.5.0
二、修改端口
要使多个tomcat能同时运行,只要让每个 ...
几乎所有和Java有关的书,一提到搭建Java的运行环境,言必称设置JAVA_HOME等乱七八糟的操作系统环境变量。在网上很多所谓高手写的文章也是如出一辙,结果搞得很多Java初学者晕头转向,往往照做以后还是会出现问题,又不知道是哪个环节出错,浪费大量的时间和精力,我也是其中之一。
后来仔细看了一些软件的文档后,发现并没有提到设置操作系统环境变量之类的内容。使用Java编写的程序只要有Java虚拟机就可以运行,设置环境变量的目的只是让程序知道JVM的位置所在。所以,只要能让程序找到JVM,操作系统环境变量其实是可以不用设置的,尤其在系统上安装了多个不同版本的JDK之后,设置了反而会出现问题, ...







评论排行榜