2005年8月31日星期三

神奇的张家界

张家界位于湖南,湖南简称湘。湖南雨水多,是鱼米之乡,古有“湖广熟,天下足”的说法。
由于湿气大,所以湖南人用吃辣来除湿,是很能吃辣的。女子有“辣妹子”的称呼。张家界
特产葛根、蕨根、杜仲、高山云雾茶等。当然还有很多的元帅,毛泽东,贺龙,等等都是
湖南人。毛泽东说过“不吃辣椒不革命”,看来吃辣椒让湖南人有火烈的性格。我玩了几天
也吃了很多辣椒,结果火气太大流鼻血了:)。
神奇的传说,赶尸人。把客死他乡的人的尸体运回故乡,于是有了赶尸人的职业。沿途的狗
看到行走的尸体会叫,这可不好,所以赶尸人还会“哑狗术”。现在据说还有这个行业,
只是不营业了。西方也有walking dead的说法。宁可信其有。
缥缈的山,张家界的喀斯特地貌的山不输桂岭啊。这些山还拟人拟物,有的外形还颇像呢。
黄龙洞,是我见过的最大的溶洞。石钟乳很多,还有一颗“定海神针”投保了一个亿呢。
开放的区域目前只有五分之二,不过已经给人很震撼的感觉。一条长长的阴河,泛着死亡的
涟漪,不知有多深。其中还有娃娃鱼也说不定。给人一种阴间、地狱的感觉。又让人不得不
赞叹大自然的造物能力。
宝峰湖,在山间的一个大湖,深约100多米,湖水清澈而深邃。其中也有很多鱼。峭壁上还
漏水,水流不大,但是很有灵气,所到之处都长了深绿色的青苔。整个山都泡在清凉的水气
之中。
凤凰古城,感觉是一个久经兵战的要塞。那里的烤鸡腿辣到了骨头里,值得一尝。猕猴桃很
便宜,八毛一斤。姜糖也是一个特产就是稍有点贵。

-----

2005年8月19日星期五

Google Earth 大开眼界

听别人说起的,看了一下真实Cool.
信息技术就是很方便。
这个技术很了不起。

-----

2005年8月16日星期二

OCR(Optical Character Recognization)

实际上我认为OCR又是一个体现计算机惊人能力的地方。
我初步做了一下。算法很简单,在设定合适的字体的大小的情况下识别率还可以。
主要用来识别印刷体,特别是从屏幕上拷贝下来的图片。(当然规则一点的认证码
的识别也是应该没有问题的)。可以改进的地方还有很多。
对于无法切割的方块的几乎没有办法,不如斜体字。
世界上似乎已经有不错的这种算法了,但是不推广。我用简单的算法实现一点,
希望能像普罗米修斯盗取火种一样。不过很难。

-----

2005年8月9日星期二

数据库检索和程序的效率

在做一个小小的实用的系统的时候我发现了一些效率的问题。
比如一个操作,web页面上用户发出一个查询,希望的时间当然是最多1到两秒。
一开始设计、编程的时候并不太清楚执行的效率问题。尤其是实用的时候
的数据量突然会比较大。编写的时候一般没有“兴趣”去做那么多,那么复杂的测试数据。
所以在试用的时候,发现某几个页面的效率比较低。几乎要半分钟到5分钟。要看数据量了。
不能用“我是菜鸟”来解释这个现象,因为我不是菜鸟。最后问题都被我解决了。
不管什么页面,什么操作,响应时间都大约在1秒一下。当然如果服务器如果不是双CPU的
而是几年前的386。那么怎么办?估计再优化优化也是有可能的。也许只能用别的方法
来绕过去。这是效率的相对性。但是优化中我发现了一些提高效率的方法。
1。就是“少发行sql”。如果发行n次查询,就优化成发行1次查询。最佳状况是一个页面
关于一个表的查询只有一次。这样说可能有时不太对。但是如果性能的确有问题,那么
就用这个方法吧。
2。Java端不是瓶颈。我很久没有编出运行时间很长的程序了。主要是查询页面的
逻辑一般都比较简单。除非我写的搜索最优值用搜索算法而不是动态规划之类的算法
时才遇到了天文数字的运行时间。我在这个项目中作了Java端的Group by。是的,代替sql的
group by.当然这是出于某种原因。不知道各种奇思妙想为我节约了多少开发时间。
group by用的时间是0,而open了个jdbc connection典型时间为20ms-80ms。
综上所述,使用数据库,为了效率,应该要改变一种思路。
他不是有一个查询就写一个sql.当然这样比较直接。
他是数据的来源。一开始你就用尽量少的sql取得所以你需要的数据。然后你再做你的
查询业务。
说了那么多,要是有个实际的例子就好了。那样就接近于一篇论文了。但是我没有
时间,懒的写了。所以就到此为止了,希望读者能体会一下。
-----

2005年8月4日星期四

全排列非递归递增的Java算法

全排列非递归算法记得以前有更"好"的算法(在李立新老师的书或讲义上看到过),但是当时我勉强理解了,现在又不论如何记不起来了。
所以想了很久(。。。)以后,决定用这个“全排列非递归递增的Java算法”。由于是递增的,思路比较简单。
public class OrderIterator implements Iterator {
private int[] buf;
private int size;
private boolean end=false;
public OrderIterator(int size) {
this.size = size;
buf = new int[size];
for (int i = 0; i < size; i++) {
buf[i] = i;
}
}
public boolean hasNext() {
return !end;
}
public Object next() {
int res[] = new int[size];
System.arraycopy(buf, 0, res, 0, size);
goNext();
return res;
}
/**next most min value that max than current value*/
private void goNext() {
int p= findHill();
if (p==0){
end=true;
return;
}
adjust(p-1);
}
/** adjust within this area*/
private void adjust(int p) {
int v = buf[p];
Arrays.sort(buf,p,size);
// find p's new position
int i;
for (i=p;i<size;i++){
if (buf[i]==v){
break;
}
}
move(i+1,p);
}

/**move q to p, q should lt p*/
private void move(int q, int p) {
int t=buf[q];
for (int i=q;i>p;i--){
buf[i]=buf[i-1];
}
buf[p]=t;
}
/** increase seq from tail to head*/
private int findHill() {
int p=size-1;
while(p>0 && buf[p-1]>buf[p]){
p--;
}
return p;
}
public void remove() { // not support
}
public static void main(String[] args) {
OrderIterator order = new OrderIterator(4);
int count=0;
while (order.hasNext()) {
count++;
int[] arr = (int[]) order.next();
for (int i = 0; i < arr.length; i++) {
System.out.print((arr[i]+1) + ",");
}
System.out.println();
}
System.out.println("count="+count);
}
}

-----

2005年8月2日星期二

和谐 社会

近来常看到“和谐社会”的宣传横幅。不明白,网上一查才知道是“两会”上“主席”提出的。于是全国上下就一致说起了这个词。像“三”字经一样。
以前听得最多的有性生活的和谐,现在这个和谐是什么意思?看了相关文章还说不太明确。都是官话,以前看政治书看怕了,现在一看到这种文体的东西就犯晕。
只是性生活的和谐我是知道一点的。和谐就是要大家愿意,大家快乐,而不是只满足一方,否则就是强奸社会。
当然这不是考政治试卷,没有人可以评判我的观点。

-----

博客归档

neoedmund's shared items

我的简介

ZIP Code File