[2003年10月2日] 汉诺塔的算法在很多数书上都有介绍,将其输出格式用字符方式显示出来.
[2004年7月5日] hilbert曲线是由heilbert先生于1891年在他的论文中提到的曲线,这种曲线具有惊人的空间填充性,这是我用php改写的一个版本
相关算法请参照 Hacker’s Delight (Henry S. Warren)
[2005年3月2日]
自己闲来无事,做的一个论坛签名图片,显ip版.
看到网上很多论坛上使用类似的签名,自己也尝试做了一个,用php+gd做的,数据库本来打算用mysql的,考虑到以后维护起来比较麻烦,就直接用的 QQWry格式,还好这种格式互联网上有很多文章提到,文章作者太杂乱,这里就不列出处了,如果有任何意见,请与我联系。所以基本没有花费什么时间,在这里对ip数据的整理做出过贡献的前辈和网友表示感谢.没有做美化,现在可能有些不好看,等有时间的时候在把他搞好看一些,加个用户自定义的背景图片应该没有什么问题,呵呵
[2005年4月3日]hilbert曲线 ([点阵坐标] [java3d版本] [截图]): 书本上大多是介绍的是平面填充曲线,根据该曲线的性质,我编写的空间填充曲线,算法方面借鉴了平面填充的部分代码,3d的hilbert曲线和平面的有一些不同,至少3d的有很多的变种,不像2d那样,图形只和旋转方向和阶次有关,3d的由于空间的旋转方向变化比较多,一次调用的时候就会有1<<8=256 种可能,递归以后变化会更多,当然,曲线产生的算法确定的情况下,结果是可预知的,由于时间有限,还没有进行深入研究,网上看了些相关的材料,只是个人爱好,工作以后很久都没有写这样的代码了,如果你也对这样的问题感兴趣,很希望能和你交个朋友.现在放的是连续点的3d坐标,每列的意义分别是(方向,路长,x坐标,y坐标,z坐标),现在更新上我用java3d做的版本,要求安装sun的java虚拟机+java3d插件,如果安装有困难的同志可以看看截图效果,比我原来用php做的那个仿3d平面图不知道要好到什么地方去了,enjoy it!
[2005年5月29日] 1维2维条码生成由Jean-Sebastien Goupil编写的16种一维部分和自己编写的2维pdf417和qrcode部分组成,一共18种。
一维部分由Codabar,Code 11,Code 39,Code 93,Code 128,EAN-8,EAN-13 / ISBN,Interleaved 2 of 5,Standard 2 of 5,MSI Plessey,UPC-A,UPC-E,UPC Extension 2 Digits,UPC Extension 5 Digits,PostNet,Other Barcode共18种编码,来源http://www.phpclasses.org/
二维部分,pdf417是由c版本改写,qrcode由perl版本改写,来源http://sourceforge.net/
不论哪一种条形码,都有的共同点是:条形码符号图形结构简单;每个条形码字符由一定的条符组成,占有一定的宽度和印制面积;每种编码方案均有自己的字符集;每种编码方案与对应的阅读装置的性能要求密切配合
[2005年7月21日] traceroute是Unix下经常会用到的工具,改写以后加入了ip地址显示功能,可以比较直观地看到数据包一路上所经过的服务器地址
由Van Jacobson编写的Traceroute程序是一个能更深入探索TCP/IP协议的方便可用的工具。尽管不能保证从源端发往目的端的两份连续的IP数据报具有相同的路由,但是大多数情况下是这样的。Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。 Traceroute程序还可以让我们使用IP源路由选项。
详情请参照 TCP/IP Illustracted Volume 1:The Protocols (W.RICHARD STEVENS)
Unix下经常会用到的东西,改写以后加入了ip地址显示功能,可以比较直观地看到数据包一路上所经过的服务器地址
下面是我使用时的一个截图,大家可以看一下效果,数据使用的是QQWry.Dat,编译环境如下:
PIII 850 gcc 3.2.3 20030502 (Red Hat Linux 3.2.3-24) 点击下载

[2006年7月10日] hilbert 3d填充曲线空间构象
当出口和入口以及填充空间确定的情况下,1阶填充曲线存在2种空间构象,尽管这2种构象可以通过在空间中旋转的方式互相转换,所以说严格意义上来说,并不能说是2种不同的构象. 也就是说,一阶填充应该存在2种方式,在二阶曲线里面,存在的不同曲线就有2^(1+8) )=512种,三次曲线就有 2^(1+8+64)=9.44473296574E+21种,这个数已经超过了php的整数类型的最大值,大数计算的模块不是每个php版本都提供,时间的问题,暂时还没有精力去自己写大数计算的公式,这里只放出二阶的512种图形的3d坐标,供大家参考.其中有一部分是可以通过3d的旋转互换的
首先,3d曲线和2d曲线不同的地方。 ↓ ↑ ↓ ↑ ↓ ↑ ↓ ↑ →→→→→
平面曲线的最小单位(一个U型曲线)由他延伸的方向和旋转的方向(顺时针,逆时针)决定, 当然, 也可以转化成其他的表达形式,比如由曲线的前2根线的方向决定,线的方向有4种 (←↑↓→),因为第2 根线的方向就是U型曲线的延伸方向,而与第一根线组合以后就决定了U型 线的旋转方向空间曲线要多一个要素,和最小单位的延伸方向和前2根线的方向有关,曲线的延伸方向和第4根线的方向相同,所以也可以说曲线最小单位(U型曲线)由序号为①②④的3根有向线段决定,如下面的一个曲线,一共由7根线段连接而成,分别编号为①②③④⑤⑥⑦,设它们的方向依次为1,2,3,4,5,6,7. 可以发现1=5,3=7,[1,5]与[3,7]反向,2和6反向,所以由4决定了曲线的延伸方向. 空间hilbert曲线里只可能出现6种不同的方向,我给出的编号如下
0 x轴反方向
1 z轴方向
2 y轴方向
3 x轴方向
4 z轴反方向
5 y轴反方向
那么下面的U型线7跟线段的方向就是
1243154
可以用这样的形式来表示
3 1 2
第一个数字是U型线的延伸方向,后面2个数字则是该曲线第1根和第二根线的方向
/| /|
/ | / |
/__|______/ |
| |
/ /
/ /
/ /
如果延伸方向和填充空间确定的情况下,除了1243154,还可以有如下的图形,可以用
2153245
可以用这样的方式表示
3 2 1
/| /|
/ | / |
/ | / |
| |_____|___|
| |
| |
| |
也就是说,同样一种填充应该存在2种方式,在二阶曲线里面,存在的不同曲线就有 2^(1+8) )=512种,三次曲线就有2^(1+8+64)=9.44473296574E+21种,这个数已经超过了php的整数类型的最大值,大数计算的模块不是每个php版本都提供,时间的问题,暂时还没有精力去自己写大数计算的公式了,这里只放出二阶的512种图形的3d坐标,供大 家参考.其中有一部分是可以通过3d的旋转互换的
在 HTML 表单中结合 Asynchronous JavaScript™ + XML (Ajax) 的服务器回调机制,对表单应用 Ajax,对于为应用程序增加 Web 2.0 功能来说是一种可行的办法。