2008年5月10日星期六

Google揭秘:Google绝密入口

Google揭秘:Google绝密入口
以下链接都可以直接跳到www.google.com(在中国是www.google.cn)
http://www.gogle.com
http://www.googel.com
http://www.gooogle.com
http://www.goole.com(这个有时候会出错)
…………
其本意应该是在不小心输入错误时也能进入google吧(以后就打goole,多方便)

另外,这里有两个超长域名(分别链到Google谷歌、baidu百度):
http://www.mamashuojiusuannizhucedeyumingzaichanggoogledounengsousuochulai.cn
(含义:妈妈说就算你注册的域名再长GOOGLE都能搜索出来)
http://www.mamashuojiusuannizhucedeyumingzaichangbaidudounengsousuochulai.cn(含义:妈妈说就算你注册的域名再长百度都能搜索出来)

防止网站被采集的方法

防止网站被采集的方法
将下述代码放到<head>区,如果不知道什么是<head>区,你就放到</head>上面即可!IPString="|61.233.40.201|61.240.131.121|127.0.0.1|211.99.31.202
|219.150.14.36|"是采集你网站内容的垃圾站服务器IP,你可以自己替换,不知道对方服务器IP的可以点开始------运行-----输入pingwww.*****.com(采集网站的网址)获得其IP!

127.0.0.1是防止从本地采集,你可以在本地试试,因为现在许多新网站都是从本地采集,所以这个127.0.0.1一定要封它!

现在许多网站程序有封IP功能,就不需要上述代码了,直接封其服务器IP就行!
本人办网站三年多,网站内容精彩,发展红火,赚钱不少,但一直为一些垃圾网站的采集所苦恼。据不完全统计,有几十个网站采集我网站内容,有时我一个月的心血,编辑更新的内容,采集者一分钟就不到就解决问题,据为已有,有时采集量大时还会造成服务器奇慢,影响用户访问,实在令人气愤!

为了防止采集,我试过各种方法,绝大多数方法是"双刃剑"---防止了采集,也影响了搜索引擎收录,实在不爽!一天本人忽发奇想:何不采取封IP的办法防止采集,于是网上找一段最简单的封IP代码,一试,果然有效,企图采集者无功而返,经三个多月应用,已找不到采集者了,实在有点寂寞,哈哈。实践证明,本方法绝对不影响搜索收录!具体代码如下:
<%
DimIP,IPString,VisitIP
'要禁止的IP地址
IPString="|61.233.40.201|61.240.131.121|127.0.0.1|211.99.31.202|219.150.14.36|"
'获取IP地址
IP=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
IfIP=""Then
IP=Request.ServerVariables("REMOTE_ADDR")
EndIf
VisitIP="|"&IP&"|"
Ifinstr(1,IPString,VisitIP)>0Then
response.write"你的IP被禁止"
response.end
EndIf
%>

网上最流行的12个含蓄的黄色笑话-你能看懂吗?

:一艘船失事后,1名女乘客和10名男乘客漂到了一个荒岛上。 一个月后,那个女的自杀了,因为她觉得这一个月发生的事情实在太恶心了。
一个月后,他们决定把她埋了,因为他们觉得这一个月发生的事情实在太恶心了。
一个月后,他们决定把她挖出来,因为他们觉得这一个月发生的事情实在太恶心了。
一个月后,上帝把那个女的复活了,因为他觉得这几个月发生的事情实在太恶心了 。
2:有一个成年男子来到一家旅馆,他看到车库里有很多漂亮的车,于是就问老板,怎么有这么多漂亮的车啊,老板告诉他,我有一个五岁的儿子,他做三件事,如果你能跟着做到,这里的车随你挑一辆开走,如果不能,就把你的车留下,很多人做不到,所以。。
他想,五岁的小孩能做到的,还能做不到嘛,于是就试一试。老板就带他到一个屋子里,里面有一个漂亮的裸体美女,小孩过去亲了她一下,他跟着做了,然后小孩又过去摸了美女的全身,他也跟着做了,第三件事,小孩掏出小弟弟弯了三下。。。。。

3:某男隐居深山,一日赤裸身体躺于草丛中休息.突然来了个采蘑菇的小姑娘:"1个,2个,3个,4个,5个,5个,5个,5个..."最终放弃离开.此男甚爽.第二天依然裸睡于此,来了个采蘑菇的小熊:"1个,2个,3个,4个,5个,5个,5个,5个...6个,7个,8个......"

4:说白雪公主与皮诺曹生活在大森林里,一日,白雪公主终于耐不住寂寞,抓住小匹的头夹在两腿之间说道:"说实话、说假话、再说实话、再说假话..."这样说了一千遍,公主才把小皮放开。

5:有一天一位先生去帮他太太买内衣,因为他从来没有帮他太太买过内衣,所以他不知道要买哪一种size!
跟店员扯了半天,店员只好拿水果来形容了!   店员:木瓜?!先生:no!no!   店员:苹果?!先生:不不不!
店员:莲雾?!先生:再小一点!   店员:鸡蛋?!先生很高兴的说:对!对!对!
当店员了解後转身去拿内衣时,那位突然大叫:小姐等一下!是煮过的。

6 :一人经过一栋房子时,突然从二楼窗户飞下来一只用过的安全套,刚好落到他的头上。
这人感到即恶心又恼火,于是他走到这栋房子的大门口,使劲敲打大门,    一个老头开了门,问他为什麽这麽大力敲门,    这人质问道:
"谁住在二楼?"    老头回答:"这和你有什麽关系?上面住的是我女儿和她的未婚夫。"    这人将那只安全套递给老头说:
"好吧,我只是想告诉你,你孙儿从窗户掉下来了

7:办公室里女白领要男同事讲一个既短小又有内涵的黄段子。男士沉思片刻说了八个字:"我是锄禾,你是当午!"

8:某男和某女因为没房子,在女方家度过新婚之夜。第二天早上小夫妻没下楼吃早饭,老两口没在意。中午,小两口仍没下楼。老两口以为他们昨晚太累了仍没在意。到了吃晚饭时见小两口仍没下来老头坐不住了,对小儿子说,你姐和你姐夫昨晚不会有什么事吧?小儿子回答,没什么事啊。对了昨晚我姐夫管我要一点凡士林油,很不巧我恰好用完了,于是我给了他一点我粘模型用的强力胶!

9:有两个渔夫在海边打鱼,一天一个渔夫打上来一条美人鱼,鱼尾巴以上是个超级美女,但是渔夫想了想把她放了,另一个渔夫不解,问:"Why?"第一个渔夫耸耸肩,答道:"How?"

10 :一男一女在捐献中心碰面了,两人聊了起来。 女人说"我来献血,他们付我五块钱。" 男人说"我来捐精子,他们付五十块。"
女人听后考虑了很久。随后两人分手了。 过了几个月,他们俩又在捐献中心碰面了,男人主动打招呼"嗨,又来献血吗?"
女人紧闭着嘴一边摇头一边发出"呜呜"的声音............

11:有一位男士坐在一台最先进的豪华喷射客机 ,突然肚子剧痛,要拉肚子.... 但所有的男士专用厕所都客满。
但他实在憋不住了,于是跟空中小姐拜托,让他用一下女生厕所。    空中小姐有点为难,但还是答应让他去上,
还很担心一再交待他不要碰任何东西,拉完肚子就赶快出来。    于是他一阵慌乱进去女生厕所。当他拉完后,神情一阵轻松 …
发现马桶旁有三个按钮,分别写著 HW、HA、ATR ,他很好奇;想想这么先进的厕所一定有什么特别之处,但又想起空中小姐的叮咛 KK
。不过,还是很好奇,于是按了第1个写著 HW 钮 ……    咦!竟然从後面喷出清洁屁屁的热水。好棒!原来是 Hot Water 之意。
他心想,真高级!连忙看第2个钮 … 写著HA 应该就是 Hot Air 罗!果然按下钮后,送来徐徐热风。    真有意思!!那第3个写著
ATR 到底是什么意思?    于是他按下第三钮 …… 突然一阵剧痛 ……$@#!* ,两眼发黑晕眩了过去……

 12:一日,某君的老婆生小孩,他急急忙忙跑到医院看望,等了n个小时,产房里传来了哭声,他高兴大喊,我做爸爸了!这时医生满脸愁容走出来,告诉他,小孩子先天畸形。某君呆在那,还没明白什么原因,忽然产房里传来了他老婆的喊叫:都怪那天杀的,看贴老不回贴,报应呀

2008年5月9日星期五

中巴关系

巴基斯坦与中国关系可以说变化只是分为两个阶段。在巴国前期阶段也就是中国刚刚建国阶段。当时巴国完全走亲美路线。与中国关系并不是很好。但是也绝非很坏。当时可以说巴国一直在举棋不定的摇摆中。50年代以后。巴国亲眼目睹了中国是如何以"数万边防军"痛击自己的一贯仇敌--印度的。因此开始从国内上下层有所转变。

70年代以后巴国与中国交往借助与印度的印巴之战的多次失利。开始了新的交际。在第二次印巴之战以后。美国第一个抛弃了被他称作"亚洲最好的朋友"的巴基斯坦。美国为了拉拢当时投报在前苏联怀里的印度,美国军方以各种名义拖延,暂扣了应该迅速交给巴基斯坦的武器装备。再加之印度采购了大批前苏联先进的(当时)的战斗机。从空中上彻底把巴基斯坦击败。取得了制空权。此时巴基斯坦实际上已经成为了一个"世界孤儿"。没有要的孩子。这句话说的并非夸张。这是巴国一个前政府资深人士对总统所说。"我们已经被世界所抛弃"。

但是此时对于印度来说简直是"天下掉下的林妹妹"好事太好了。东巴最终被迫分裂。眼看印度占据巴基斯坦已经成为可能。巴国有限的抵抗力量从空中之战开始就被印度打垮了。当然这里也有战术运用问题。

但是就在印度做着"分裂东巴,收复巴国"美梦之际。一个贫穷但是很大得国家突然站在了巴基斯坦背后。用一只手掌把巴国推起来。巴国就此开始与中国增加密切交往。从以往的"美国西方沟通平台"转换为中国一个友好国家。并且获得了中国制造的"歼6,7"战斗机。特别是歼7战斗机进入巴基斯坦以后。使得猖狂的印度空军遭受了连接的重大损失。

巴国就此一直把歼7作为"守卫首都上空的卫士"来看待。绰号为"空中哨兵"。而此时并巴国内部开始一场翻天覆地的"大反思"行动。新政府机构上台。就此开始改变他的原有的一边倒美的政策。转向把自己投入中国怀抱。

巴国一句政治家的座右铭:任何时候如果相信了美国等于选择了被抛弃。在巴国分析中,中国对比西方对于巴国最大的优越性是"中国是中共领导的国家"是一个具有很高的传习制度的国家。这与欧美的2派3倒政策截然不同。它可以稳固坚持至少50-100年以上的中国外交策略。而不同于美国的几乎更换一个总统就会出现新的衡量朋友的标准。这对于巴基斯坦恰恰太重要了。

80年代中国开始走单边亲美政策。而对巴国的政治态度也有所改变。从以往十分亲密无间。到了略有瑕疵的关系。但是巴国还是坚持自己的方针策略。他们还是认为中共是一个传习制度的政党早晚会有一场天大巨变。

前苏联入侵阿富汗以后。巴国感到十分紧张。必定那是他还是苏联红军。不可一世。因此巴国与中国关系更加紧密。而美国此时正欲借助中国来遏制前苏联。巴国则果断建立了一条通往阿富汗抵抗军的道路。美国出钱中国提供武器巴国负责运输到抵抗者手里。这样的系列化关系。最终导致了前苏联鲸吞阿富汗计划彻底破产。

80-90年代前期。美国更换了首脑。开始采用软手段对华进行内部分化。最终导致了"北京之春"。而美国随后在联合国大会公开提出要求全世界制裁中国。恰好此处正好是一个巴国抉择的分水岭。依据退役的中央情报局官员偌塔利回忆说:美国曾经以援助大批过剩军事物资,部分新型战斗机。以及不少于每年500万美元的援助。要求巴国离开中国主动站立到"民主与自由"一边。

巴国当时没有给予直接回答。而美国则以默许形式开始对巴国出售F16战斗机计划。当联大会以开始决定对华实施制裁性投票之际。巴国突然站起来(虽然弱小但是依旧铿锵)。高声回答:"我们坚决反对制裁中国,这是毫无理由的干涉国家主权"。就此此次民主联合大会制裁中国问题议案第一张反对票出台。而投票者它就是巴基斯坦。(结果巴国迎来了是美国的风暴般的军事,经济外交制裁。)

不久后巴国军事政变军政府上台。虽然改变了很多东西。但是为有一样东西巴国军政府没有任何改变反而加强。那就是对华关系走向。在这里我顺便提起远在北美的中国朋友古巴。他也是投了反对票的。随后他倡导召开的全世界不结盟运动48国大会。以压倒性的绝对优势通过了一个反对联合国干涉中国内政的议案。

此外巴国在军事上与中国合作更加紧密。中国研制的红箭8型导弹刚出道之际几乎没有市场"巴国则是率先成批采购"并且在其国内举行了有欧美11国家参加的所谓"试验发射"。红箭8就此名声鹊起。同时巴国决定在中国专家协助下大力仿制。以替代他的早期"陶1"导弹。起名"绿剑"(不是口香糖)。并且通过美国支持秘密销售给南斯拉夫独立派打击南联盟政府军。取得了超越"催格尔"的好成绩。

巴国拥有与法国不错的关系。中国90年代中前期由于当时的欧洲武器禁运正在火头上。希拉克也不敢公开对华出售武器。但是中国此时为了台独日益膨胀,面对东海问题的"有海无军"的局面迫切希望更换一种新型潜艇。中国开始与法国商谈打算引进法国阿格斯塔B潜艇技术。

而巴国率先在中国引进之前购买了3艘阿格斯塔B潜艇。其中1艘被秘密开往中国。供给中国"帮助其研究维修计划"。96,97年连续2年内中国接连开发了宋级1,2两个型号几乎同一年不同时间下水。1型为自主设计。带有阶梯形式的望楼。2型外观几乎与法国阿格斯塔B一样。就是现在的宋级2代。而1型量产很少。2型则是以每年3-4艘速度建造到至少2006年。(此资料为美国情报局宣称,但是法国反对这样说法。巴基斯坦没有吭声。)

中巴联合研制L8教练机。巴国并不顾及市场前景淡薄。不惜重金参与研制。但是结果很显然。L8销量并不是太好。而巴国对此没有什么怨言。中巴联合研制新型坦克。其车体基础就是被中国陆军淘汰掉得T85IIMP。而此前从泰国传来的很多不利于T85II的传闻。巴国似乎没有听到!

21世纪中国10年前承诺的新型战斗机枭龙终于飞起来了。就在巴国举国欢庆之际。还没等到中巴笑出声音来,印度利用武器合约企图迫使俄罗斯中断共给枭龙战斗机发动机。而巴国此时对此毫无办法!只能把希望寄托于他认为"最可以信赖"的国家。中国。果然中国还是用了很多办法。解除了俄罗斯限制。并且把克里莫夫公司引入了中国。印度耗资约78亿美元购买的俄罗斯巨额"二手货"合同协议。终于没有阻止住中巴合作。反而被俄罗斯甩了一把。

中国主席到访巴国该国总统以最盛大仪式率领政府团队前去机场恭候。竟然打出了"6星红旗"印度媒体对此评论说"巴国军政府在出卖巴国"。而中国主席则给予了巴国"4好邻国"的高度评价。

此外军政府上台以后。增加了很多新闻管束的内容。这与西方一贯了解的巴国有的反差。在巴国截止现在都不准以"台湾和中国"或者"北京和台北"等所谓擦边球辞令来报道。他们依旧在说"中国台湾省"。而我的几位记者朋友2006年,2007年分别到访巴国。因为那里曾经出现了几次武装分子袭击中国工地事件。因此巴国对于凡是由中国负责完成的工程项目都增加了为数众多的武装士兵。几乎超过了他的总统护卫。在巴国公车上。如果你是中国人你会感到什么是"朋友,4好邻国"。在巴国如果你是中国人。你可以参观很多设立有禁区的设施。而如果你是西方人你可能会遭到拒绝。这是2006年英国泰晤士时报的一篇报道。

但是在这里我又要说说我们自己。我以前曾经报道过,一位巴国媒体记者报到了他在中国的所见所闻。引起了巴国民众的很大不满。因为我们一些地方的外事人员,始终把巴国看作一个穷的向叫花子的国家。一些包括北京,上海等大城市的外事服务区内。总是把巴国人与印度看作一起。引起了很大不满。(这两者还是很好分辨)2006年中国一位西南报社记者。在内参中报到了中国西南部地区一些边境公路的司机。看到巴国人大包小包往家买东西。就毫不客气把他们赶下车。嘴里还谩骂不停。此事后
来中青报也刊载了。据称目前似乎得到了好转。

这些事情巴国政府目前是对内封锁。不准自己的本国国民知道。但是几位"喝了洋墨水"的高级中国人在那里开办的什么小报就要把此事泄露给巴国人。还宣称最好你别到中国去。

巴国政府虽然查抄了这些小报。但是他们没有办法处理那些"中国人"只得递解处境。

从大面说我们政府可以说对得起朋友。但是从琐碎说,我们的国民真的有些不知道到底谁是朋友?到底谁看得起你!我不是自己骂自己。但是我们一些人就是这样。别人越是瞧不起我们,我们却要把热脸偏偏往人家冷冷的屁股上贴。反而对于那些真诚热爱爱戴我们的人们。却给与冷言热风。巴国国民总数不足中国1/3我们今天开罪几十万。觉得没啥。明天在开罪几十万也觉得没啥。。。。。那么我们算算巴国国民究竟有几个几十万够我们13亿开罪多少天的?

再问问!中国在国际舞台上朋友众多吗?89大会一次我们就看到了。全世界都在制裁中国。这不过是美国在那里轻微抖抖手结果。而我们以往的朋友不是胆怯的不敢说话。就是拿了昧心的美元。只有2个真实的朋友说了句公道话。随后在遭到了美国制裁。但是那时我们能够给予他们什么?钱?还是先进得不得了的武器?还是什么?几乎什么也没有。但是信念留存在巴国和古巴心中。他们还是坚信中国会有崛起的今天。

老实说我们在这个国际舞台上。没剩下几个真诚的朋友了祖宗留下的"红色国际"老本我们已经快赔的差不多了。再不挽回。我们真的要成为"孤家寡人"吗?会过头去拉拢那些诸如朝鲜?越南这样的"亲密战友"吗?想想吧我的国人!想想吧我的朋友们

谁将饿死全世界

石化能源供给正变得越来越稀缺,开发生物能源又会带来严重的饥荒和环境问题。那么,人类的未来之路又在何方?发展循环经济虽然是正确的选择,但也只是会让资源紧缺问题在一段时期内得到缓解而已。即使再节省使用资源,随着人口的不断增长,人与自然、经济与环境的矛盾就必然要出现。未来的循环经济必须要考虑人口因素。否则,人类不断增多的胃口必将饿死人类自己!
  ◎高辉清

  国家信息中心经济测部发展战略处处长

  悲观预测的最大作用就是让悲剧最终被避免!

  十四年前,美国世界观察研究所所长布朗发表了"谁来养活中国?"一文,说到21世纪初中国为了养活10多亿人口,可能引起世界粮价的上涨,威胁全世界粮食安全。时光越进新千年,一位中国领导人笑呵呵地说,我们不仅没有饿死全世界,相反还在为过剩的粮食无处保存而发愁!

  布朗先生的预测算是彻底破产了,但毫无疑问,他值得每个中国人尊敬!如果没有他的盛世危言,中国人也许不会每年将粮食生产列为"重中之重",也许不会死守"全国耕地不少于18亿亩"这条红线不放松,也许袁隆平的超级稻就不能得到快速的推动,也许今天的我们可能也就因为松懈了一点点,而陷入全球性粮荒的漩涡之中。

  曾经看过一部电影《修女也疯狂》,但今天的地球早就比疯狂修女更疯狂了!先是矿石,接着是石油,然后是粮食,价格都在连翻筋斗地往上飞,粮价4个月内竟然上涨了150%!37个国家因此陷入窘境,全球一亿多人陷入贫困中,
2000年联合国首脑会议通过的"2015年将世界赤贫率减少一半"的"千年发展目标"化作了泡影。

  粮食危机来得如此突然和凶猛,以至于被世界粮食计划署形容为一场"无声的海啸"!要知道仅仅在一年前,在WTO的多哈回合谈判中,各国还因为替本国农产品争取到尽可能大的出口份额而不惜撕破脸,
而今天的欧洲、北美纷纷取消农产品出口补贴措施,而亚洲国家几乎无一例外地限制粮食出口。

  那么,是谁制造了这场海啸?是谁要饿死全世界?习惯戴有色眼镜看问题的德国总理默克尔说"现在有三亿印度人一天吃两顿饭,和以前相比突然间双倍的食物被消耗掉,再加上十亿中国人开始喝牛奶,这当然会改变我们的牛奶和其它(食品)的消费比例。"
稍有常识的人都知道,中国和印度虽然都是世界人口大国,但却都是大米主要出口国,不仅不是粮价上涨的元凶,反而是遏制国际粮价更快上涨的重要力量。以我国为例,粮食生产连续4年丰收,库存水平比世界平均水平多一倍,今年季度国内粮价上涨幅度只有国际市场的二十分之一!

  今日粮食危机一个公认的根源,是欧美的生物能源发展计划。2007年世界粮产达到了创纪录的21.3亿吨。但是,大量的粮食被用于生产燃料,2007年美国用于生产乙醇的玉米同比增长50%,已占玉米总产量20%以上,欧盟60%的油菜用于生产燃料,导致了市场粮食短缺。事实上,当前世界粮食短缺量实际非常小,只要欧美在生物能源计划暂时停一下,问题就能迎刃而解!

  但是,迄今为止欧美似乎对这一切视而不见,发展生物能源势头有增无减,这就不能不引起世人的深思了。于是一种新的阴谋论不胫而走:粮价上涨是一场人为发动的战争,幕后主谋正是美国,欧盟则是帮凶!华盛顿近几年来由于奉行单边主义,政治和军事上全面受挫,却心有不甘,于是又开始祭起粮食武器了。1965年至1967年,美国对印度采取限制出口粮食的政策,最终迫使印度改变反对美国入侵越南的外交政策。美国斯特拉特福战略预测机构指出,粮食现在再次成为地缘政治中的王牌,而美国正是当今世界最大的粮食生产者和囤积者,以粮食为武器,它们终将使包括石油输出国组织(欧佩克)在内的那些不听命于白宫的国家屈服于其淫威。

  粮食武器的杀伤力巨大。在大多数国家,油价上涨对政治稳定带来的负面影响相对有限,受影响的只是抵抗风险能力较强的高收入阶层和中产阶级。但粮食价格上涨使得每个人都受损,尤其是低收入阶层受损最大。日本江户时代爆发了最大的一次农民起义――"岛原之乱",直接诱因就是天灾之后的大饥荒。我国历史上的绿林、赤眉起义以及明王朝的灭亡,同样也是因为大饥荒触发的。

  当然,在当今社会受各种因素制约,美国不可能明目张胆地通过禁运粮食来威胁别国,但是人为推动粮价上涨同样可以达到目的。诺贝尔奖获得者阿马蒂亚.森研究上世纪40年代孟加拉国的饥荒发现,当时孟国市场上并不是没有粮食,只是因为粮价上涨过快,穷人们买不起,才导致几十万人因饥饿而死。按照目前美国的技术水平,1英亩农田所产玉米只能提炼875加仑燃料乙醇。注满一辆SUV油箱所需的乙醇是从可以供养非洲一个成人一年所需的口粮中提取的,联合国食物权问题特别报告员让.齐格勒据此提出,全球粮价上涨是一场"无声的大规模谋杀",而以美国为首的西方国家应为此负责。

  美欧大规模发展生物能源有个很有诱惑力却经不起"推敲"的口号――减少对石油等不可能再生资源的依赖,实现人类社会的可持续发展。由于生物燃料是可再生燃料,过去为科学家们所大力提倡,但是最近的研究发现,生物燃料的开发会带来巨大的环境问题。由于将土地用于种植生产生物燃料所需的作物,导致大片森林、湿地和草地被毁。相对前者而言,后者吸收更多的碳。美国明尼苏达大学一位生态学家的一项研究证明,要用上400多年的生物柴油才能"补偿"开辟泥炭地用来种植油棕树所释放的碳;开辟草原用来种植生产乙醇的玉米,释放的碳也需要使用93年的生物燃料才能补偿。事实上,生物燃料不仅不再是可持续发展的解决方案,而已成需要解决的问题之一!

  石化能源供给变得越来越稀缺,开发生物能源又会带来严重饥荒和环境问题。人类在能源利用方面似乎走入了死胡同:未来之路在何方?

  现在看来,发展循环经济虽然是一条正确的路,但并非是完美无缺的答案。即使是全世界都推广应用了循环经济,也只是会让资源紧缺问题在一段时期内得到缓解而己,而并不能使问题得到彻底解决。正如美国经济学家鲍尔丁的"宇宙飞船经济理论"所指出,地球实际上就是一艘宇宙飞船,即使再节省使用资源,随着人口的不断增长,人与自然、经济与环境的矛盾就必然要出现。很显然,未来的循环经济也需要改进,人口因素也必须要考虑进去。否则,人类不断增多的胃口必将饿死人类自己!

一个爱国者,几句不得不说的肺腹之言!

一个爱国者,几句不得不说的肺腹之言!

欧洲一般的中产阶级家庭,如果想全家出去吃顿饭(快餐除外),至少提前两三个月就要作预算。因为那是一笔大开销。欧洲的餐馆为什么贵?因为他们的翻台率很低,相当一部分是没有翻台,很多西餐厅基本上就指望着晚上的一顿。因为他们出去吃不起。

每每我陪老公出差去欧洲,他同事的那些太太特别希望有我作陪去吃晚餐,因为他们就有理由去了。一次,一位太太很实在,说:"我盼这顿饭已经盼了两个月了。"

冬天时,在英国、法国的大街上经常看到年轻女子里面就穿夏天的衣服,外面套一件薄外套颤抖着在寒风中等车,我问当地的英国朋友,她们不冷吗?就为了漂亮?

朋友说:"她们不是为漂亮,她们没有更多的钱买更多的衣服,所以这样一年四季都可以穿夏天的衣服,天冷时套个外套。巴黎和伦敦每年冬天都会有喝醉酒的女孩子在大街上冻死。"

这不是卖火柴的小姑娘吗?

美国的情况相对好一些,但是美国人穿得就太恶心了,除了商业区里的人穿得体面点,大多数人穿得都象中国早市上逛街的大爷大妈。

去年底我从美国回来时,飞机上一位年轻的空姐说:"美国人怎么穿成那样?真不可思议,我以为他们有多富裕呢。"

我对知道她一定是第一次飞美国,所以笑着对她说:"等你多飞几次你就会发现,还是中国最好。抛开北京、上海不算,即便大连、成都、苏州随便找出一块漂亮点的地方也比曼哈顿、伦敦、巴黎强百倍!你看看他们地上那些垃圾,多恶心!洛克菲勒大厦帝边那臭哄哄的街道,赃乎乎的小饭馆,想起来就让我没胃口!中国照这样再发展下去,不知要比他们强多少倍呢!"

中国人总是很善良,总喜欢把好词好句用在外国人身上,使得许多人认为他们素质高,其实人都是一样的!素质高的只是极个别人,大多数也都是自私之至,大城市里乱丢垃圾的现象也很严重。大家都是人,人性的弱点都有。他们也会仇富、也会对政府充满抱怨,因为警察见到有钱人就不敢乱说乱动,他们都有知名的私家大律师做后盾呵?警察轻易也不敢惹,对付那些小老百姓及白人以外的其他种族时,那手中的大棒子就真成武器了。所以警察也无奈,也恨有钱人。但是社会的阶级的分别让他们已经习惯甚至麻木于这样的无奈了。这就是人生的主旋律!

我一个朋友说:原来他的孩子特别想出国读书,后来他利用假期带孩子去欧洲和美国转了转,去欧美的中产阶级家庭住了一段时间,那些人家的孩子几乎没有几个象这个孩子似的去过那么多地方。欧洲还好一些,因为国家都小,火车又方便又便宜,所以有的小孩子还算出过门。但是象我们中国孩子这样,小康之家就能带着孩子出去玩玩,哪怕只是在国内呢,对于一般西方国家的家庭并太容易!

而且,许多中国孩子手上的PSP,PS2之类的东西都是西方绝大多数家庭孩子的梦想之物。

象摄象机、照相机等电子产品,西方的产品流行时间都比中国要晚两三年。比如

手机这么一个简单的东西,我们都用摄象手机了,他们才用照相手机。因为国外的手机大都是你买厂家服务,厂家免费提供给你。当然这样的手机就会很便宜、功能很少。象我们用的这样功能繁多的,往往需要顾客自己出钱买,这样愿意花钱的人就很少了。所以,象诺基亚、摩拖罗拉这样的公司真是在中国挣大钱了。否则单靠西方社会,那种移动公司购买的方式,在很大程度上是抑制产品了更新换代和高科技的发展。

中国的购买力是许多在中国发展的外国企业的强大经济支柱。

朋友说,他的孩子再不提出国这回事了。因为他在国外时,那些家庭的孩子都抢着玩他手上的电子产品,他根本轮不上。因为那些孩子总会说:"我们只玩这几天,你可以一直玩着。"而今,他威胁孩子最强有力的话就是:你再不好好学习,下学期我就给你送去美国或者欧洲!

现在,大家知道西方人为什么成心给我们捣乱了吧?在他们眼里,中国人就象《闪闪的红星》里面的潘东子----穷鬼闹翻身了!

他们怕我们强大,怕我们富裕!所以他们要千方百计地给我们搞破坏,相信这还只是一个开始,以后他们会用出更加丑恶的手段来。

让暴风雨来得更猛烈些吧!中国已经不可逆转地走向了康庄大道!

是的,我们的国家、我们的政府还有许多问题,但是我们相信一切都会更好!

西方国家就没有问题吗?从前课本里学习资本主义国家就是资本主义统治无产阶级的工具,现在明白那是真的。我们国家所有的问题,西方国家一样有,只是他们是所谓的法制国家,一般捞百姓不敢说,因为随便说了可能招上官司,又请不起好律师,就可能招来牢狱之灾。我来讲一件现在美国正在发生的事情吧:

美国的儿童疫苗是国家负担的,免费的,由政府采购。布什上台后,政府就用了一个当初出资支持过布什竞选的一家公司生产的疫苗,但是由于该公司的疫苗含汞严重超标,造成美国近几年新生儿的自闭症发生率是世界平均概率的近百倍,这个数字还在逐年增加!

后来有人发现这一问题,受害孩子的家长想一起起诉该公司,但是没有人敢接手这样的案件,因为根本不可能胜诉!与一个受政府保护的企业打官司,根本无法取证!律师也有可能受到人身危险。

后来,加州政府自己出钱买了符合标准的疫苗提供给本地居民,当地新生儿自闭症发生率一下降至世界平均水平!然而,其他地区的新生儿还在承受着这样的危险。

我是通过一位在那边的白人朋友得知此事的,他的孩子就是这样的受害者。他的孩子经常自残,有时甚至要放火烧毁家宅,幸好都及时发现,并未酿成大灾。他太太整日以泪洗面。他们已经试尽了所有办法,现在想试一试中医,所以求到我。

这样我才知道了,这个号称世界上最有人权国家的一些小故事!

真至今天,美国极大多数地区的孩子们还是用着这种疫苗。我不断地告诉我的新生了孩子的纽约、亚特兰大等地方的朋友,不要用政府的免费疫苗。他们很多听了我的故事吓一跳,然后打去加州的朋友那里得到了确认。这样的事,媒体是不敢曝光的,或许几十年后,人们才会知道。就象肯尼迪死后N多年,人们才知道他在白宫象个皇帝,所有的女工作人员,只要他看得上的,都被他搞过了一样。

记得《越狱》里的段子吗?CIA为了不总统的丑闻被对方政党曝光,可以去贫民窟杀几个人,来抢头版,吸引大家注意力!这可不是空穴来风。

这就是象我们小时学过的《小马过河》的故事一样。我们不想他们描绘的那样丑,他们也不象我们描绘得那样美。并非象西方政府宣传的,中国的孩子连馒头都吃不起,也不是西方的国家有多么得富裕。

都说他们收入高,可是你知道他们物价有多贵?一颗草莓几乎等于中国一斤草莓的价格了。就象北京、上海的收入高,可是你在北京、上海月收入十万,远不如成都月收入一万过得滋润自在呢。

所以单比一个地区的收入并不能反映真实生活状态。

他们也有关系网、也很黑暗,只是一般人进不去那个圈子,或者知道的也不敢乱说,从而表面看起来很美罢了!

我们中国人不喜欢谈人不好,正所谓言人善既是善,言人恶既是恶。但是,西方媒体不是这样的。网上或者报章上有人说那时因为西方媒体有言论自由。我不这样认为。

其实经常出去,或者有过外国生活经历的人不难发现。象CNN、BBC这种媒体,每每谈到中国时,从来是负面新闻占80%,近来有点变本加厉,几乎没有一条是正面的,全是中国如何如何不好。我绝对相信这是政府的作用。比如,当西方社会觉得中国产品出口国外太多时,他们的媒体就会异口同声地宣传中国的产品如何如何垃圾。

比如去年说中国的餐馆、食品如何如何不好、不卫生,以及日本的有毒食品案等等,都是针对中国食品的。希望吓跑热衷于购买中国食品的客户,让中国食品没有销路。其实美国的食品就好吗?美国的转基因食品白送给非洲,非洲人都不要。我一个学生物的朋友告诉我:他发觉自己以及很多人去美国以后脖子都变粗了,他说我们经常看到美国人的脖子与脸差不多一样粗,但是欧洲人就好一些。他发现许多东方人出去以后也变成那样了。他说那同吃转基因食品有关,因为他就是研究转基因食品的博士。但是这种话是不能说的,说了也不会有媒体帮助你代言。你自己写来,人家会找大律师与你辩论,把你送进监狱关你几年就老实了。

近来又说中国的玩具不好,如何伤害人。其实,中国的玩具远比他们从其他东南亚订货的玩具质量好很多,而且又便宜。

但是,种种这些宣传都与抵制中国产品有关。这都是政府的意思。每当议会里有人放出中国产品不好时,这些媒体就象得了圣旨,到处搜罗甚至不惜捏造新闻来攻击中国。

这是就是所谓的新闻自由?!其实马克思说得很对:国家就是统治阶级统治被统治阶级的工具。哪个国家的主流媒体也是为政治服务的,没有谁是有真正自由的。

就象我们小时候,总是说:外国小朋友都在工厂里当童工一样。西方媒体对其国民也是大肆欺骗。相当多的没出过门的普通老百姓都以为:中国人连馒头都吃不起;外国人去中国在海关就要被脱光衣服检查;他们电脑里面的东西要被中国的公安机关备份;大多数中国人家里还没通电;中国人根本不知道何为电脑等等。

我一个美国朋友对我说:"你看看我常往返于中美之间,听着这种话都象听故事一样。这些媒体,他们骗人都不会骗。中国没有电,我们商场里那么多中国产的商品怎么生产出来的?手工做出来的?那么中国人就都是上帝了!"

我儿子的英语家教说:"他第一次来中国时,在网上跟他的同学聊天。他的同学说:你不是去中国了吗?怎么还能上网?"

这就是西方的愚民政策,可笑吗?但却是真实的。

至于说到体制。西方的体制就真的好吗?我们看一看世界上的另一个人口大国:印度。西方宣传的是印度比中国富裕很多。但是,这个和中国人口数目相近的国家,其GDP约是中国广东、浙江、福建三个省的总和。

英美国在印度推行了近百年的民主,至使印度现在全国没有一条高速路,所有的道路上都象动物园。牛、马、象等等随处可见。

到印度的人都知道几个原则:一、生食绝对不能吃,哪怕是水果;二、尽量不吃肉食;三、喝水、刷牙一定要用瓶装水。

讲个真实的故事:我一个同事,或许体质弱一些,只因为洗澡时不甚一点水溅入口中,就肚泻不止。以至于后来公司在去印度的指南手册上特别叮嘱大家洗澡时一定让得闭上嘴。

我有几个印度朋友,当他们从上海及大连飞机上下来,去酒店的路上都哭了。他们说:一直以为中国很穷,但是现在见到差距这么大,心里很难过。印度天天搞民主,国民都活不下去了。民生才是最大的民主,人民连生存都困难,哪还有什么民主可言?

我认识一个法国女士,她是汉学家。她对我说过一段很有意思的话:和"国家国家,国就像家,治国与治家道理相似,这是孔子说的,也很对。对于一个三口、四口之家,你可以搞民主,大家商量着来。但比如中国从前,一家很多个孩子,加上孙子就几十个人,如果也搞民主,那么这个家就很难做成事了。特别是在资源有限的情况下,容易造成混乱、拖塌等等局面,这时需要有个家长综合大家的意见做出结论。中国封建社会时依靠家庭为单位管理国家,家里有家长,族里有族长,自家的事自家说,只要不违法国法,族长、家长权力很在,可以根据自己家庭需要来解决一些问题,很人性化。

"解放以后,中国就形成了民主集中制,这种体制对于一个人口大国来说,在发展之初是最方便、最高效的体制。

每个国家与每个国家不同,因为文化、国情不同,就象每个家庭与每个家庭不同。你家的方法拿到我家来就可能造成离婚。

欧洲国家与美国也不同。美国的法制最健全,因为他们是移民国家,好象一个家庭,成员都是来自不同家庭,彼此没有血缘关系,他们如果想和平相处,就必须规定出一个很详细的家法来,否则每个人都要按照自己的方式来生活,这个家就成战场了。"

我想,那些学政治的政客们当然更懂得这样的道理,但是他们打着民主、自由的口号,实际就是想破坏你的发展。

我们的政府确实有很多问题,但是我们看得出,他们正在努力进步、发展。现在,国家领导忍辱负重地闷头搞建设,就是因为知道我们周围有一堆看着我们眼红的狼,四下寻机想再咬我们一口。

大家想一想,西方资本主义为什么会发展这样快?马克思说过:资本的每一个缝里都滴着血。对!那正是我们祖先的血。

大家记得《南京条约》吧?我们赔款英国政府2100万元,请大家去查一查1842年英国的GDP,就知道这个数目对于英国有多么的庞大了!

日本是最坏的国家,他们发动战争之前在中国派遣了无数间谍,了解中国的赔款能力,所以一个《马关条约》就是白银两亿两!据一位学日语的朋友说,那是日本1894年时近百倍的GDP!

大家想一想,如果现在有一个国家凭白给我们一百个国民生产总值的钱,我们中国人拿来分一分,每个人也能分上两百多万,那岂不家家都成大款了!

如果拿一部分来搞建设、买军火,那中国不比任何一个国家强大吗?

再就不要谈《辛丑条约》了,九亿八千万两白银,八个国家分。那时他们的GDP有多少?这些钱对他们的国家而言是多么庞大的一比财富?更不要提那些士兵们从中国抢走的无数宝贝了!

这就是西方国家的丑恶的发家史!他们贪婪地还想把中国当成他们的提款机!

现在大家知道西方国家为什么会这样同我们过不去了?因为他们怕他们的愚民政策漏陷!怕他们的国民知道我们中国人的餐桌比他们丰富多得多,我们的衣服比他们亮丽多姿十倍!

更怕更多的企业家看准中国庞大的市场,与聪明勤劳的人民,而纷纷关来投资!从而加速中国的发展!这就是西方政客的罪恶心理!

那么,面对这样的问题,我们应该怎么办?

首先,我们要知道,那些所谓的ZD分子大多数都是花钱顾的。因为现在西方经济不景气,人们活着不容易,有个活挣点外快是好事。然而事情过后,那些人早把事情忘掉脑后了,艰难的生活就让他们无暇想这些与己无关的政治了。

而且,西方百姓大都不关心政治,他们只关心自己的生活。所以,我们要知道,大多数的外国人,游客、运动员都是好人。我们要用极大的热情对待他们。哪怕他们有一些支持ZD的言论,我们也不必发怒。因为他们完全是被欺骗的。我们要耐心同他们讲一讲事实,用事实来教育他们。

比如前一段我同几个外国朋友说清西藏的真实情况,而且,请他们去http://www.anti-cnn.com/上看一看,他们中许多人后来气愤地打电话对我说:"我要告诉我所有的朋友,永远也不要再相信CNN!"

坏人终究是少数。我们要以我们的笑脸,给他们一个好的记忆。对于他们而言,出国旅游一趟也不容易,回去也是愿意和朋友们津津乐道的。他们会把中国的正面消息带到世界各地。西方人相信朋友远远大于相信媒体!人们常说人言可畏,有时人言也是可爱的!

正如我的朋友们常爱说的一句就是:"我回去要建议公司把更多的生意拿到中国来,这样我们就可以有更多的同事来中国旅游,享受中国的美食及便宜优质的商品。"

朋友们,同胞们,奥运是我们最重要的一个机会,每一个参与其中的中国人,请记住,你的言行是代表这个国家的。西方人最怕的是不安全,所以西方政客们要在中国策动暴乱!

我们一定让他们的阴谋破产。那么,我们就要尽全力给他们展现一个和平、友好、积极的国家形象,让他们相信,中国人、中国政府有能力做好一切事情!

让每一个来中国的外国游客和运动员明白,中国人是多么宽容、友好、可亲可敬。中国是怎样一个和平、伟大的国家,让他们把对中国的口碑传至五湖四海。那些什么CNN、BBC都白忙活了,而且,以后也不会再有人相信他们。那句话怎么说来的____搬起石头砸自己的脚!

这样奥运之后,会有更多的外国人来中国旅游、投资!为我们的国民带来更多的实惠!

奥运不仅是一场盛会,对于我们每个中国人而言,更是一种责任,一个强国的机会。为了自己,也为了子孙后代,我们一定要把握好这个机会。

无论我们国民间,国民与政府间有多么大的矛盾,那都是我们家里的矛盾。现在,我们都要放一放,认真、努力把奥运这件大事做好!

为国家、为国民、办一个最好的奥运,靠我们每一个中国人!

运筹学

运用科学的数量方法�主要是数学模型�研究对人力、物力进行合理筹划和运用,寻找管理及决策最优化的综合性学科。我国科学家把它译成「运筹学」�Operational
Research或Operations Research�,「运筹」一词出于《史记:汉高祖本纪》:「运筹策帷幄之中,决胜千里之外。」

最早进行的运筹学工作是以英国生理学家希尔为首的英国国防部防空试验小组在第一次世界大战期间进行的高射炮系统利用研究。同时英国人莫尔斯建立的分析美国海军横跨大西洋护航队损失的数学模型也是运筹学的早期工作,这一工作在第二次世界大战中有了深入而全面的发展。1938年,英国空军就有了飞机定位和控制系统,并在沿海设立了雷达站,用来发现敌机,但在一次空防演习中发现,由这些雷达送来的�常常是互相矛盾的�信息,需要加以协调和关联,才能改进作战效能。于是提出了「运筹」的课题,为此,英国成立了专门的小组,由罗威把这一课题研究命名为运筹学。专门小组就是空军运筹学小组,当时主要从事警报和控制系统的研究。在1939年到1940年,这个小组的任务扩大到包括防卫战斗机的布置,并对未来的战斗进行预测,以供决策之用,这个小组的工作对后来的不列颠空战的胜利起了积极的作用。第二次世界大战中,运筹学被广泛应用于军事系统工程中去,除英国外,美国、加拿大等国也成立了军事数学小组,研究并解决战争提出的运筹学课题,例如,组织适当的护航编队使运输船队损失最小,改进搜索方法,及时发现敌军潜艇;改进深水炸弹的起爆深度,提高了毁伤率;合理安排飞机维修,提高了飞机的利用率等。这些运筹学成果对盟军大西洋海战的胜利起了十分重要的作用,对许多战斗的胜利也起了积极的作用。战争结束时,英美及加拿大军队中工作的运筹学工作者已超过了700人,正是由于战争需要的促进,运筹学有了长足的发展,并且形成为科学。

1948年,美国麻省理工学院率先开设了运筹学课程,许多大学群起效法,运筹学成一门学科,内容也日益丰富。1950年,美国出版了第一份运筹学杂志;1951年,莫尔斯和金伯尔出版了《运筹学方法》一书,这是第一本以运筹学为名的专著,书中总结了第二次世界大战中运筹学的军事应用,并且给出了运筹学的一个著名的定义:运筹学是为执行部门对它们控制下的"业务"活动采取决策提供定量依据的科学方法。

运筹学的主要分支有:数学规划、决策分析、排队论、库存论、对策论、搜索论、计算机模拟等。

60年代以来,运筹学主要用于处理大型的复杂的问题,诸如军事问题,教育问题、污染问题、交通运输问题、人力资源管理问题等;还广泛应用于这样一些部门:能源、预测、会计金融、销售、存储、计算机与信息系统、设计、城市服务系统、保健与医疗、电气、加工工业、第三产业等。

在中国战国时期,曾经有过一次流传后世的赛马比赛,相信大家都知道,这就是田忌赛马。田忌赛马的故事说明在已有的条件下,经过筹划、安排,选择一个最好的方案,就会取得最好的效果。可见,筹划安排是十分重要的。

现在普遍认为,运筹学是近代应用数学的一个分支,主要是将生产、管理等事件中出现的一些带有普遍性的运筹问题加以提炼,然后利用数学方法进行解决。前者提供模型,后者提供理论和方法。

运筹学的思想在古代就已经产生了。敌我双方交战,要克敌制胜就要在了解双方情况的基础上,做出最优的对付敌人的方法,这就是"运筹帷幄之中,决胜千里之外"的说法。

但是作为一门数学学科,用纯数学的方法来解决最优方法的选择安排,却是晚多了。也可以说,运筹学是在二十世纪四十年代才开始兴起的一门分支。

运筹学主要研究经济活动和军事活动中能用数量来表达的有关策划、管理方面的问题。当然,随着客观实际的发展,运筹学的许多内容不但研究经济和军事活动,有些已经深入到日常生活当中去了。运筹学可以根据问题的要求,通过数学上的分析、运算,得出各种各样的结果,最后提出综合性的合理安排,已达到最好的效果。

运筹学作为一门用来解决实际问题的学科,在处理千差万别的各种问题时,一般有以下几个步骤:确定目标、制定方案、建立模型、制定解法。

虽然不大可能存在能处理及其广泛对象的运筹学,但是在运筹学的发展过程中还是形成了某些抽象模型,并能应用解决较广泛的实际问题。

随着科学技术和生产的发展,运筹学已渗入很多领域里,发挥了越来越重要的作用。运筹学本身也在不断发展,现在已经是一个包括好几个分支的数学部门了。比如:数学规划(又包含线性规划;非线性规划;整数规划;组合规划等)、图论、网络流、决策分析、排队论、可靠性数学理论、库存论、对策论、搜索论、模拟等等。

各分支简介

数学规划的研究对象是计划管理工作中有关安排和估值的问题,解决的主要问题是在给定条件下,按某一衡量指标来寻找安排的最优方案。它可以表示成求函数在满足约束条件下的极大极小值问题。

数学规划和古典的求极值的问题有本质上的不同,古典方法只能处理具有简单表达式,和简单约束条件的情况。而现代的数学规划中的问题目标函数和约束条件都很复杂,而且要求给出某种精确度的数字解答,因此算法的研究特别受到重视。

这里最简单的一种问题就是线性规划。如果约束条件和目标函数都是呈线性关系的就叫线性规划。要解决线性规划问题,从理论上讲都要解线性方程组,因此解线性方程组的方法,以及关于行列式、矩阵的知识,就是线性规划中非常必要的工具。

线性规划及其解法―单纯形法的出现,对运筹学的发展起了重大的推动作用。许多实际问题都可以化成线性规划来解决,而单纯形法有是一个行之有效的算法,加上计算机的出现,使一些大型复杂的实际问题的解决成为现实。

非线性规划是线性规划的进一步发展和继续。许多实际问题如设计问题、经济平衡问题都属于非线性规划的范畴。非线性规划扩大了数学规划的应用范围,同时也给数学工作者提出了许多基本理论问题,使数学中的如凸分析、数值分析等也得到了发展。还有一种规划问题和时间有关,叫做"动态规划"。近年来在工程控制、技术物理和通讯中的最佳控制问题中,已经成为经常使用的重要工具。

排队论是运筹学的又一个分支,它有叫做随机服务系统理论。它的研究目的是要回答如何改进服务机构或组织被服务的对象,使得某种指标达到最优的问题。比如一个港口应该有多少个码头,一个工厂应该有多少维修人员等。

排队论最初是在二十世纪初由丹麦工程师艾尔郎关于电话交换机的效率研究开始的,在第二次世界大战中为了对飞机场跑道的容纳量进行估算,它得到了进一步的发展,其相应的学科更新论、可靠性理论等也都发展起来。

因为排队现象是一个随机现象,因此在研究排队现象的时候,主要采用的是研究随机现象的概率论作为主要工具。此外,还有微分和微分方程。排队论把它所要研究的对象形象的描述为顾客来到服务台前要求接待。如果服务台以被其它顾客占用,那么就要排队。另一方面,服务台也时而空闲、时而忙碌。就需要通过数学方法求得顾客的等待时间、排队长度等的概率分布。

排队论在日常生活中的应用是相当广泛的,比如水库水量的调节、生产流水线的安排,铁路分成场的调度、电网的设计等等。

对策论也叫博弈论,前面讲的田忌赛马就是典型的博弈论问题。作为运筹学的一个分支,博弈论的发展也只有几十年的历史。系统地创建这门学科的数学家,现在一般公认为是美籍匈牙利数学家、计算机之父――冯・诺依曼。

最初用数学方法研究博弈论是在国际象棋中开始的――如何确定取胜的着法。由于是研究双方冲突、制胜对策的问题,所以这门学科在军事方面有着十分重要的应用。近年来,数学家还对水雷和舰艇、歼击机和轰炸机之间的作战、追踪等问题进行了研究,提出了追逃双方都能自主决策的数学理论。近年来,随着人工智能研究的进一步发展,对博弈论提出了更多新的要求。

搜索论是由于第二次世界大战中战争的需要而出现的运筹学分支。主要研究在资源和探测手段受到限制的情况下,如何设计寻找某种目标的最优方案,并加以实施的理论和方法。在第二次世界大战中,同盟国的空军和海军在研究如何针对轴心国的潜艇活动、舰队运输和兵力部署等进行甄别的过程中产生的。搜索论在实际应用中也取得了不少成效,例如二十世纪六十年代,美国寻找在大西洋失踪的核潜艇"打谷者号"和"蝎子号",以及在地中海寻找丢失的氢弹,都是依据搜索论获得成功的。

运筹学有广阔的应用领域,它已渗透到诸如服务、库存、搜索、人口、对抗、控制、时间表、资源分配、厂址定位、能源、设计、生产、可靠性、等各个方面。

纳什博弈论的原理与应用

背景知识:纳什博弈论的原理与应用

http://ent.sina.com.cn 2002年03月21日17:44 北京晚报
  1950年和1951年纳什的两篇关于非合作博弈论的重要论文,彻底改变了人们对竞争和市场的看法。他证明了非合作博弈及其均衡解,并证明了均衡解的存在性,即著名的纳什均衡。从而揭示了博弈均衡与经济均衡的内在联系。纳什的研究奠定了现代非合作博弈论的基石,后来的博弈论研究基本上都沿着这条主线展开的。然而,纳什天才的发现却遭到冯・诺依曼的断然否定,在此之前他还受到爱因斯坦的冷遇。但是骨子里挑战权威、藐视权威的本性,使纳什坚持了自己的观点,终成一代大师。要不是30多年的严重精神病折磨,恐怕他早已
站在诺贝尔奖的领奖台上了,而且也绝不会与其他人分享这一殊荣。

  纳什是一个非常天才的数学家,他的主要贡献是1950至1951年在普林斯顿读博士学位时做出的。然而,他的天才发现―――非合作博弈的均衡,即"纳什均衡"并不是一帆风顺的。

  1948年纳什到普林斯顿大学读数学系的博士。那一年他还不到20岁。当时普林斯顿可谓人杰地灵,大师如云。爱因斯坦、冯・诺依曼、列夫谢茨(数学系主任)、阿尔伯特・塔克、阿伦佐・切奇、哈罗德・库恩、诺尔曼・斯蒂恩罗德、埃尔夫・福克斯……等全都在这里。博弈论主要是由冯・诺依曼(1903―1957)创所立的。他是一位出生于匈牙利的天才的数学家。他不仅创立了经济博弈论,而且发明了计算机。早在20世纪初,塞梅鲁(Zermelo)、鲍罗(Borel)和冯・诺伊曼已经开始研究博弈的准确的数学表达,直到1939年,冯・诺依曼遇到经济学家奥斯卡・摩根斯特恩(Oskar
Morgenstern),并与其合作才使博弈论进入经济学的广阔领域。

  1944年他与奥斯卡・摩根斯特恩合著的巨作《博弈论与经济行为》出版,标志着现代系统博弈理论的的初步形成。尽管对具有博弈性质的问题的研究可以追溯到19世纪甚至更早。例如,1838年古诺(Cournot)简单双寡头垄断博弈;1883年伯特兰和1925年艾奇沃奇思研究了两个寡头的产量与价格垄断;2000多年前中国著名军事家孙武的后代孙膑利用博弈论方法帮助田忌赛马取胜等等都属于早期博弈论的萌芽,其特点是零星的,片断的研究,带有很大的偶然性,很不系统。冯・诺依曼和摩根斯特恩的《博弈论与经济行为》一书中提出的标准型、扩展型和合作型博弈模型解的概念和分析方法,奠定了这门学科的理论基础。合作型博弈在20世纪50年代达到了巅峰期。然而,诺依曼的博弈论的局限性也日益暴露出来,由于它过于抽象,使应用范围受到很大限制,在很长时间里,人们对博弈论的研究知之甚少,只是少数数学家的专利,所以,影响力很有限。正是在这个时候,非合作博弈―――"纳什均衡"应运而生了,它标志着博弈论的新时代的开始!纳什不是一个按部就班的学生,他经常旷课。据他的同学们回忆,他们根本想不起来曾经什么时候和纳什一起完完整整地上过一门必修课,但纳什争辩说,至少上过斯蒂恩罗德的代数拓扑学。斯蒂恩罗德恰恰是这门学科的创立者,可是,没上几次课,纳什就认定这门课不符合他的口味。于是,又走人了。然而,纳什毕竟是一位英才天纵的非凡人物,他广泛涉猎数学王国的每一个分支,如拓扑学、代数几何学、逻辑学、博弈论等等,深深地为之着迷。纳什经常显示出他与众不同的自信和自负,充满咄咄逼人的学术野心。1950年整个夏天纳什都忙于应付紧张的考试,他的博弈论研究工作被迫中断,他感到这是莫大的浪费。殊不知这种暂时的"放弃",使原来模糊、杂乱和无绪的若干念头,在潜意识的持续思考下,逐步形成一条清晰的脉络,突然来了灵感!这一年的10月,他骤感才思潮涌,梦笔生花。其中一个最耀眼的亮点就是日后被称之为"纳什均衡"的非合作博弈均衡的概念。纳什的主要学术贡献体现在1950年和1951年的两篇论文之中(包括一篇博士论文)。1950年他才把自己的研究成果写成题为"非合作博弈"的长篇博士论文,1950年11月刊登在美国全国科学院每月公报上,立即引起轰动。说起来这全靠师兄戴维・盖尔之功,就在遭到冯・诺依曼贬低几天之后,他遇到盖尔,告诉他自己已经将冯・诺依曼的"最小最大原理"(minimax
solution)推到非合作博弈领域,找到了普遍化的方法和均衡点。盖尔听得很认真,他终于意识到纳什的思路比冯・诺伊曼的合作博弈的理论更能反映现实的情况,而对其严密优美的数学证明极为赞叹。盖尔建议他马上整理出来发表,以免被别人捷足先登。纳什这个初出茅庐的小子,根本不知道竞争的险恶,从未想过要这么做。结果还是盖尔充当了他的"经纪人",代为起草致科学院的短信,系主任列夫谢茨则亲自将文稿递交给科学院。纳什写的文章不多,就那么几篇,但已经足够了,因为都是精品中的精品。这一点也是值得我们深思的。国内提一个教授,要求在"核心的刊物"上发表多少篇文章。按照这个标准可能纳什还不一定够资格。

  1996年诺贝尔经济学奖得主莫尔里斯当牛津大学艾奇沃思经济学讲座教授时也没有发表过什么文章,特殊的人才,必须有特殊的选拔办法。

  纳什在上大学时就开始从事纯数学的博弈论研究,1948年进入普林斯顿大学后更是如鱼得水。20岁出头已成为闻名世界的数学家。特别是在经济博弈论领域,他做出了划时代的贡献,是继冯・诺依曼之后最伟大的博弈论大师之一。他提出的著名的纳什均衡的概念在非合作博弈理论中起着核心的作用。后续的研究者对博弈论的贡献,都是建立在这一概念之上的。由于纳什均衡的提出和不断完善为博弈论广泛应用于经济学、管理学、社会学、政治学、军事科学等领域奠定了坚实的理论基础。

  囚犯的两难处境

  大理论中的小故事

  要了解纳什的贡献,首先要知道什么是非合作博弈问题。现在几乎所有的博弈论教科书上都会讲"囚犯的两难处境"的例子,每本书上的例子都大同小异。

  博弈论毕竟是数学,更确切地说是运筹学的一个分支,谈经论道自然少不了数学语言,外行人看来只是一大堆数学公式。好在博弈论关心的是日常经济生活问题,所以不能不食人间烟火。其实这一理论是从棋弈、扑克和战争等带有竞赛、对抗和决策性质的问题中借用的术语,听上去有点玄奥,实际上却具有重要现实意义。博弈论大师看经济社会问题犹如棋局,常常寓深刻道理于游戏之中。所以,多从我们的日常生活中的凡人小事入手,以我们身边的故事做例子,娓娓道来,并不乏味。话说有一天,一位富翁在家中被杀,财物被盗。警方在此案的侦破过程中,抓到两个犯罪嫌疑人,斯卡尔菲丝和那库尔斯,并从他们的住处搜出被害人家中丢失的财物。但是,他们矢口否认曾杀过人,辩称是先发现富翁被杀,然后只是顺手牵羊偷了点儿东西。于是警方将两人隔离,分别关在不同的房间进行审讯。由地方检察官分别和每个人单独谈话。检察官说,"由于你们的偷盗罪已有确凿的证据,所以可以判你们一年刑期。但是,我可以和你做个交易。如果你单独坦白杀人的罪行,我只判你三个月的监禁,但你的同伙要被判十年刑。如果你拒不坦白,而被同伙检举,那么你就将被判十年刑,他只判三个月的监禁。但是,如果你们两人都坦白交代,那么,你们都要被判5年刑。"斯卡尔菲丝和那库尔斯该怎么办呢?他们面临着两难的选择――坦白或抵赖。显然最好的策略是双方都抵赖,结果是大家都只被判一年。但是由于两人处于隔离的情况下无法串供。所以,按照亚当・斯密的理论,每一个人都是从利己的目的出发,他们选择坦白交代是最佳策略。因为坦白交代可以期望得到很短的监禁―――3个月,但前提是同伙抵赖,显然要比自己抵赖要坐10年牢好。这种策略是损人利己的策略。不仅如此,坦白还有更多的好处。如果对方坦白了而自己抵赖了,那自己就得坐10年牢。太不划算了!因此,在这种情况下还是应该选择坦白交代,即使两人同时坦白,至多也只判5年,总比被判10年好吧。所以,两人合理的选择是坦白,原本对双方都有利的策略(抵赖)和结局(被判1年刑)就不会出现。这样两人都选择坦白的策略以及因此被判5年的结局被称为"纳什均衡",也叫非合作均衡。因为,每一方在选择策略时都没有"共谋"(串供),他们只是选择对自己最有利的策略,而不考虑社会福利或任何其他对手的利益。也就是说,这种策略组合由所有局中人(也称当事人、参与者)的最佳策略组合构成。没有人会主动改变自己的策略以便使自己获得更大利益。"囚徒的两难选择"有着广泛而深刻的意义。个人理性与集体理性的冲突,各人追求利己行为而导致的最终结局是一个"纳什均衡",也是对所有人都不利的结局。他们两人都是在坦白与抵赖策略上首先想到自己,这样他们必然要服长的刑期。只有当他们都首先替对方着想时,或者相互合谋(串供)时,才可以得到最短时间的监禁的结果。"纳什均衡"首先对亚当・斯密的"看不见的手"的原理提出挑战。按照斯密的理论,在市场经济中,每一个人都从利己的目的出发,而最终全社会达到利他的效果。不妨让我们重温一下这位经济学圣人在《国富论》中的名言:"通过追求(个人的)自身利益,他常常会比其实际上想做的那样更有效地促进社会利益。"从"纳什均衡"我们引出了"看不见的手"的原理的一个悖论:从利己目的出发,结果损人不利己,既不利己也不利他。两个囚徒的命运就是如此。从这个意义上说,"纳什均衡"提出的悖论实际上动摇了西方经济学的基石。因此,从"纳什均衡"中我们还可以悟出一条真理:合作是有利的"利己策略"。但它必须符合以下黄金律:按照你愿意别人对你的方式来对别人,但只有他们也按同样方式行事才行。也就是中国人说的"己所不欲勿施于人"。但前提是人所不欲勿施于我。其次,"纳什均衡"是一种非合作博弈均衡,在现实中非合作的情况要比合作情况普遍。所以"纳什均衡"是对冯・诺依曼和摩根斯特恩的合作博弈理论的重大发展,甚至可以说是一场革命。

  从"纳什均衡"的普遍意义中我们可以深刻领悟司空见惯的经济、社会、政治、国防、管理和日常生活中的博弈现象。我们将例举出许多类似于"囚徒的两难处境"这样的例子。如价格战、军奋竞赛、污染等等。一般的博弈问题由三个要素所构成:即局中人(players)又称当事人、参与者、策略等等的集合,策略(strategies)集合以及每一对局中人所做的选择和赢得(payoffs)集合。其中所谓赢得是指如果一个特定的策略关系被选择,每一局中人所得到的效用。所有的博弈问题都会遇到这三个要素。

  价格战博弈:

  现在我们经常会遇到各种各样的家电价格大战,彩电大战、冰箱大战、空调大战、微波炉大战……这些大战的受益者首先是消费者。每当看到一种家电产品的价格大战,百姓都会"没事儿偷着乐"。在这里,我们可以解释厂家价格大战的结局也是一个"纳什均衡",而且价格战的结果是谁都没钱赚。因为博弈双方的利润正好是零。竞争的结果是稳定的,即是一个"纳什均衡"。这个结果可能对消费者是有利的,但对厂商而言是灾难性的。所以,价格战对厂商而言意味着自杀。从这个案例中我们可以引伸出两个问题,一是竞争削价的结果或"纳什均衡"可能导致一个有效率的零利润结局。二是如果不采取价格战,作为一种敌对博弈论(vivalry
game)其结果会如何呢?每一个企业,都会考虑采取正常价格策略,还是采取高价格策略形成垄断价格,并尽力获取垄断利润。如果垄断可以形成,则博弈双方的共同利润最大。这种情况就是垄断经营所做的,通常会抬高价格。另一个极端的情况是厂商用正常的价格,双方都可以获得利润。从这一点,我们又引出一条基本准则:"把你自己的战略建立在假定对手会按其最佳利益行动的基础上"。事实上,完全竞争的均衡就是"纳什均衡"或"非合作博弈均衡"。在这种状态下,每一个厂商或消费者都是按照所有的别人已定的价格来进行决策。在这种均衡中,每一企业要使利润最大化,消费者要使效用最大化,结果导致了零利润,也就是说价格等于边际成本。在完全竞争的情况下,非合作行为导致了社会所期望的经济效率状态。如果厂商采取合作行动并决定转向垄断价格,那么社会的经济效率就会遭到破坏。这就是为什么WTO和各国政府要加强反垄断的意义所在。

  污染博弈:

  假如市场经济中存在着污染,但政府并没有管制的环境,企业为了追求利润的最大化,宁愿以牺牲环境为代价,也绝不会主动增加环保设备投资。按照看不见的手的原理,所有企业都会从利己的目的出发,采取不顾环境的策略,从而进入"纳什均衡"状态。如果一个企业从利他的目的出发,投资治理污染,而其他企业仍然不顾环境污染,那么这个企业的生产成本就会增加,价格就要提高,它的产品就没有竞争力,甚至企业还要破产。这是一个"看不见的手的有效的完全竞争机制"失败的例证。直到20世纪90年代中期,中国乡镇企业的盲目发展造成严重污染的情况就是如此。只有在政府加强污染管制时,企业才会采取低污染的策略组合。企业在这种情况下,获得与高污染同样的利润,但环境将更好。

  贸易自由与壁垒:

  这个问题对于刚刚加入WTO的中国而言尤为重要。任何一个国家在国际贸易中都面临着保持贸易自由与实行贸易保护主义的两难选择。贸易自由与壁垒问题,也是一个"纳什均衡",这个均衡是贸易双方采取不合作博弈的策略,结果使双方因贸易战受到损害。X国试图对Y国进行进口贸易限制,比如提高关税,则Y国必然会进行反击,也提高关税,结果谁也没有捞到好处。反之,如X和Y能达成合作性均衡,即从互惠互利的原则出发,双方都减少关税限制,结果大家都从贸易自由中获得了最大利益,而且全球贸易的总收益也增加了。(孙健)

2008年5月7日星期三

知道seo价值后 你想学习她吗?

知道seo价值后 你想学习她吗?
[折叠]
SEO,相信大家都知道了。我所理解的SEO,它应该属于网络营销的一个分支,而大多情况下,很多网络营销,尤其是网站的营销忽视了SEO,最根本的还是很多人不知道SEO,不知道SEO能带给我们什么。其实,SEO是网络营销最重要的一个环节,它能是实实际际的带给我们流量,带来转换率很高的流量,有效的运用它,可以为网站带来最有价值的流量。

很多人说起SEO,第一个直觉就是做"群发外链"。都认为SEO,很简单,不是门值得学习的网络学科。也有很多人反驳这样的说话,常说的一句话就是,"你自己去做个热门关键词试一试"。这就好比一部小说,喜欢这部书的人,疯狂的迷恋它,不喜欢它的人,网上发布条"不同的意见",就会遭遇到大量"粉丝"抵制,说出他们戴在嘴边的一句话,"有本事你自己写一本啊"。

很多学科都这样,入门极易,想学精却很难,编程就是个很典型的例子。做SEO,就是研究搜索引擎的变化,摸索出搜索引擎的规律。尤其是国内的百度,他是抵制搜索优化的,他的算法也是变换最快的。尤其是针对娱乐站方面,打击力度相当大。

做搜索优化,离不开和网站打交道。中国做SEO的,基本都是站长出生,我也是。当初是没有办法的情况下学的。

入门导航

一、html

这是最基本的,必须要掌握的。了解Title,了解table,知道td和tr的区别,知道div为什么搜索会喜欢。它与table的区别在那(优化上)?对待关键词密度等方面各有那些优势。

二、页面设计

这里说的页面设计不是大家常说的美工,而是设计搜索的页面。当然了,你不能一味的迎合搜索,你还的考虑网站转换率(提高网站黏度,提高二次访问等),用户习惯等。这些知识是必须的,一个合格的SEO从业者必须掌握的,也许你不会写代码,但是你得会画图,画一张你认为最合理的结构图,然后交给美工去做。

三、网站结构

明白域名的权重分布,树状目录合理分配。这里说的网站结构,特指用程序实现前台页面(如CMS)。对目录的命名的把握,对二级域名的合理选择,分类目录的名称,最终页面的内部互联等。全站优化,这方面是重点。

四、外部链接

记住,这是优化的根本之所在,也是搜索打击最严厉的。

五、研究网民

关于"研究网民",我想多说一些。现在很多做seo的同行,很少研究这块。这块其实非常重要,只要你了解了网民的习惯后,你才会做出最有效的优化文档。

这点很重要,如果你要学seo,这点不能放弃。怎么研究网民习惯?调查、看统计是最快捷的方法。

可以说,这五点是网站优化最重要的四点,也是入门的朋友必须要学习并掌握的四点。我只是很粗略的介绍。做优化,尤其是多个竞争对手也做了优化,那比的就是网站结构,网页结构以及高质量外链和内部互链等多方面因素。这些不在讨论范围内,我就不多说了。

这篇文章写的很笼统,说是入门文章,不如说是Seo介绍文章更合适。Seo主要是和搜索打交道,所以你必须的会使用搜索引擎。很多人还局限在输入关键词直接搜索,找不到去论坛求救的阶段。记得刚接触互联网,痴迷黑客,常看到有人提起"社会工程学"。我们做搜索优化也一样,你也的会这个。你得善于分析那些发布资料的人会怎么拟定标题,文章中一半包含了那些文字。慢慢研究,了解了用户搜索习惯,做优化会轻松很多,收入会高很多,公司不需要做外链的Seo,对那些会分析用户习惯的Seo,却是求知若渴。

经常记录数据是个好习惯,以后你也可以"预言"。多观察,多对比,不要轻易下结论,有些时候个别现象很重要,更多的时候,它只是个"苦果",正所谓尝过才知道,经验也是这样积累起来的。

记得,有问题多搜索,实在没有就自己琢磨,求人不如求己,没有人会把自己所知道的都告诉你,好比你不会把你老婆分享给别人一样。说的难听,但就这是个道理

软 件 设 计 师 考 试 大 纲

软 件 设 计 师 考 试 大 纲

--------------------------------------------------------------------------------

  一、考试说明

  1.考试要求:
   (1) 掌握数据表示、算术和逻辑运算;
   (2) 掌握相关的应用数学、离散数学的基础知识;
   (3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理;
   (4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;
   (5) 熟练掌握常用数据结构和常用算法;
   (6) 熟悉数据库、网络和多媒体的基础知识;
   (7) 掌握C程序设计语言,以及C++、Java、Visual、Basic、Visual C++中的一种程序设计语言;
   (8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;
   (9) 熟悉掌握软件设计的方法和技术;
   (10) 掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识;
   (11) 了解信息化、计算机应用的基础知识;
   (12) 正确阅读和理解计算机领域的英文资料。

  2.通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;具有工程的实际工作能力和业务水平。

  3.本考试设置的科目包括:
   (1) 计算机与软件工程知识,考试时间为150分钟,笔试;
   (2) 软件设计,考试时间为150分钟,笔试。


  二、考试范围

  考试科目1:计算机与软件工程知识

 1.计算机科学基础

  1.1 数制及其转换
     ・ 二进制、十进制和十六进制等常用制数制及其相互转换

  1.2 数据的表示
     ・ 数的表示(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出)
     ・ 非数值表示(字符和汉字表示、声音表示、图像表示)
     ・ 校验方法和校验码(奇偶校验码、海明校验码、循环冗余校验码)

  1.3 算术运算和逻辑运算
     ・ 计算机中的二进制数运算方法
     ・ 逻辑代数的基本运算和逻辑表达式的化简

  1.4 数学基础知识
     ・ 命题逻辑、谓词逻辑、形式逻辑的基础知识
     ・ 常用数值计算(误差、矩阵和行列式、近似求解方程、插值、数值积分)
     ・ 排列组合、概率论应用、应用统计(数据的统计分析)
     ・ 运算基本方法(预测与决策、线性规划、网络图、模拟)

  1.5 常用数据结构
     ・ 数组(静态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树、平衡树、线索树、线索树、堆)、图等的定义、存储和操作
     ・ Hash(存储地址计算,冲突处理)

  1.6 常用算法
     ・ 排序算法、查找算法、数值计算方法、字符串处理方法、数据压缩算法、递归算法、图的相关算法
     ・ 算法与数据结构的关系、算法效率、算法设计、算法描述(流程图、伪代码、决策表)、算法的复杂性

 2.计算机系统知识

  2.1 硬件知识

   2.1.1 计算机系统的组成、体系结构分类及特性
     ・ CPU和存储器的组成、性能和基本工作原理
     ・ 常用I/O设备、通信设备的性能,以及基本工作原理
     ・ I/O接口的功能、类型和特性
     ・ I/O控制方式(中断系统、DMA、I/O处理机方式)
     ・ CISC/RISC,流水线操作,多处理机,并行处理

  2.1.2 存储系统
     ・ 主存-Cache存储系统的工作原理
     ・ 虚拟存储器基本工作原理,多级存储体系的性能价格
     ・ RAID类型和特性

  2.1.3 安全性、可靠性与系统性能评测基础知识
     ・ 诊断与容错
     ・ 系统可靠性分析评价
     ・ 计算机系统性能评测方式

  2.2 软件知识

   2.2.1 操作系统知识
     ・ 操作系统的内核(中断控制)、进程、线程概念
     ・ 处理机管理(状态转换、共享与互斥、分时轮转、抢占、死锁)
     ・ 存储管理(主存保护、动态连接分配、分段、分页、虚存)
     ・ 设备管理(I/O控制、假脱机)
     ・ 文件管理(文件目录、文件组织、存取方法、存取控制、恢复处理)
     ・ 作业管理(作业调度、作业控制语言(JCL)、多道程序设计)
     ・ 汉字处理,多媒体处理,人机界面
     ・ 网络操作系统和嵌入式操作系统基础知识
     ・ 操作系统的配置

   2.2.2 程序设计语言和语言处理程序的知识
     ・ 汇编、编译、解释系统的基础知识和基本工作原理
     ・ 程序设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用
     ・ 各类程序设计语言主要特点和适用情况

  2.3 计算机网络知识
     ・ 网络体系结构(网络拓扑、OSI/RM、基本的网络协议)
     ・ 传输介质、传输技术、传输方法、传输控制
     ・ 常用网络设备和各类通信设备
     ・ Client/Server结构、Browser/Server结构
     ・ LAN拓扑,存取控制,LAN的组网,LAN间连接,LAN-WAN连接
     ・ 因特网基础知识以及应用
     ・ 网络软件
     ・ 网络管理
     ・ 网络性能分析

  2.4 数据库知识
     ・ 数据库管理系统的功能和特征
     ・ 数据库模型(概念模式、外模式、内模式)
     ・ 数据模型,ER图,第一范式、第二范式、第三范式
     ・ 数据操作(集合运算和关系运算)
     ・ 数据库语言(SQL)
     ・ 数据库的控制功能(并发控制、恢复、安全性、完整性)
     ・ 数据仓库和分布式数据库基础知识

  2.5 多媒体知识
     ・ 多媒体系统基础知识,多媒体设备的性能特性,常用多媒体文件格式
     ・ 简单图形的绘制,图像文件的处理方法
     ・ 音频和视频信息的应用
     ・ 多媒体应用开发过程

  2.6 系统性能知识
     ・ 性能指标(响应时间、吞吐量、周转时间)和性能设计
     ・ 性能测试和性能评估
     ・ 可靠性指标及计算、可靠性设计
     ・ 可靠性测试和可靠性评估

   2.7 计算机应用基础知识
     ・信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等基础知识
     ・ 远程通信服务基础知识
     ・ 常用应用系统

 3.系统开发和运行知识

  3.1 软件工程、软件过程改进和软件开发项目管理知识
     ・ 软件工程知识
     ・ 软件开发生命周期各阶段的目标和任务
     ・ 软件开发项目管理基础知识(时间管理、成本管理、质量管理、人力资源管理、风险管理等)及其常用管理工具
     ・ 主要的软件开发方法(生命周期法、原型法、面向对象法、CASE)
     ・ 软件开发工具与环境知识
     ・ 软件过程改进知识
     ・ 软件质量管理知识
     ・ 软件开发过程评估、软件能力成熟评估基础知识

  3.2 系统分析基础知识
     ・ 系统分析的目的和任务
     ・结构化分析方法(数据流图(DFD)、数据字典(DD)、实体关系图(ERD)、描述加工处理的结构化语言)
     ・ 统一建模语言(UML)
     ・ 系统规格说明书

  3.3 系统设计知识
     ・ 系统设计的目的和任务
     ・ 结构化设计方法和工具(系统流程图、HIPO图、控制流程图)
     ・ 系统总体结构设计(总体布局、设计原则、模块结构设计、数据存储设计、系统配置方案)
     ・ 系统详细设计(代码设计、数据库设计、用户界面设计、处理过程设计)
     ・ 系统设计说明书

  3.4 系统实施知识
     ・ 系统实施的主要任务
     ・ 结构化程序设计、面向对象程序设计、可视化程序设计
     ・ 程序设计风格
     ・ 程序设计语言的选择
     ・ 系统测试的目的、类型,系统测试方法(黑盒测试、白盒测试、灰盒测试)
     ・ 测试设计和管理(错误曲线、错误排除、收敛、注入故障、测试用例设计、系统测试报告)
     ・ 系统转换基础知识

  3.5 系统运行和维护知识
     ・ 系统运行管理基础知识
     ・ 系统维护基础知识
     ・ 系统评价基础知识

  3.6 面向对象开发方法
     ・ 面向对象开发概念(类、对象、属性、封装性、继承性、多态性、对象之间的引用)
     ・ 面向对象开发方法的优越性以及有效领域
     ・ 面向对象设计方法(体系结构、类的设计、用户接口设计)
     ・ 面向对象实现方法(选择程序设计语言、类的实现、方法的实现、用户接口的实现、准备测试数据)
     ・ 面向对象程序设计语言(如C++、Java、Visual、Bsasic、Visual C++)的基本机制
     ・ 面向对象数据库、分布式对象的概念

 4.安全性知识
     ・ 安全性基本概念
     ・ 防治计算机病毒、防范计算机犯罪
     ・ 存取控制、防闯入、安全管理措施
     ・ 加密与解密机制
     ・风险分析、风险类型、抗风险措施和内部控制

 5.标准化知识
     ・ 标准化意识、标准化的发展、标准制订过程
     ・ 国际标准、国家标准、行业标准、企业标准基本知识
     ・ 代码标准、文件格式标准、安全标准、软件开发规范和文档标准知识
     ・ 标准化机构

 6.信息化基础知识
     ・ 信息化意识
     ・ 全球信息化趋势、国家信息化战略、企业信息化战略和策略
     ・ 有关的法律、法规
     ・ 远程教育、电子商务、电子政务等基础知识
     ・ 企业信息资源管理基础知识

 7.计算机专业英语
     ・ 掌握计算机技术的基本词汇
     ・ 能正确阅读和理解计算机领域的英文资料

  考试科目2:软件设计

 1.外部设计

  1.1 理解系统需求说明

  1.2 系统开发的准备
     ・ 选择开发方法、准备开发环境、制订开发计划

  1.3 设计系统功能
     ・ 选择系统结构,设计各子系统的功能和接口,设计安全性策略、需求和实现方法,制订详细的工作流和数据流

  1.4 设计数据模型
     ・ 设计ER模型、数据模型

  1.5 编写外部设计文档
     ・ 系统配置图、各子系统关系图、系统流程图、系统功能说明书、输入输出规格说明、数据规格说明、用户手册框架
     ・ 设计系统测试要求

  1.6 设计评审

 2.内部设计

  2.1 设计软件结构
     ・按构件分解,确定构件功能规格以及构件之间的接口
     ・ 采用中间件和工具
  2.2 设计输入输出
     ・ 屏幕界面设计、设计输入输出检查方法和检查信息

  2.3 设计物理数据
     ・ 分析数据特性,确定逻辑数据组织方式、存储介质,设计记录格式和处理方式
     ・ 将逻辑数据结构换成物理数据结构,计算容量,进行优化

  2.4 构件的创建和重用
     ・ 创建、重用构件的概念
     ・ 使用子程序库或类库

  2.5 编写内部设计文档
     ・ 构件划分图、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、文件设计文档、数据库设计文档

  2.6 设计评审

 3.程序设计

  3.1 模块划分(原则、方法、标准)

  3.2 编写程序设计文档
     ・ 模块规格说明书(功能和接口说明、程序处理逻辑的描述、输入输出数据格式的描述)
     ・ 测试要求说明书(测试类型和目标、测试用例、测试方法)

  3.3 程序设计评审

 4.系统实施

  4.1 配置计算机系统及其环境

  4.2 选择合适的程序设计语言

  4.3 掌握C程序设计语言,以及C++、Java、Visual、Basic、Visual
C++中任一种程序设计语言,以便能指导程序员进行编程和测试,并进行必要的优化

  4.4 系统测试
     ・ 指导程序员进行模块测试,并进行验收
     ・ 准备系统集成测试环境和测试工具
     ・ 准备测试数据
     ・ 写出测试报告

 5.软件工程
     ・ 软件生存期模型(瀑布模型、螺旋模型、喷泉模型)和软件成本模型
     ・ 定义软件需求(系统化的目标、配置、功能、性能和约束)
     ・ 描述软件需求的方法(功能层次模型、数据流模型、控制流模型、面向数据的模型、面向对象的模型等)
     ・ 定义软件需求的方法(结构化分析方法、面向对象分析方法)
     ・ 软件设计(分析与集成、逐步求精、抽象、信息隐蔽)
     ・ 软件设计方法(结构化设计方法、Jackson方法、Warnier方法、面向对象设计方法)
     ・ 程序设计(结构化程序设计、面向对象程序设计)
     ・ 软件测试的原则与方法
     ・ 软件质量(软件质量特性、软件质量控制)
     ・ 软件过程评估基本方法、软件能力成熟度评估基本方法
     ・ 软件开发环境和开发工具(分析工具、设计工具、编程工具、测试工具、维护工具、CASE)
     ・ 软件工程发展趋势(面向构件,统一建模语言(UML))
     ・软件过程改进模型和方法

中越、中印两场反击战中鲜为人知的真实内幕

一、中越战争

 1.关于炮兵火力实际上,在1979年中越战争中,越军对中国军队的最深刻印象就是中国陆军占压倒优势的炮兵火力。越军战俘反映,与美军作战时从未遇见过这么猛烈的炮火打击。美军由于拥有空中优势,作战中主要依靠空中火力支援,而中国军队炮兵的配备密度和火力强度远远超过越战中的美军。通常在师进攻背景下,对尖刀连突破的火力强度为半小时内在1平方公里左右的设防工事区域及敌炮兵、指挥区域进行二至三次火力准备,投射7-8万发炮弹,其中近半为130-154mm口径炮弹。1970年的一次连进攻实兵演习一个月后,演习场区内原郁郁葱葱的满山树木,竟全部枯黄,死光了。说中国空军力量不足有道理,但说中国陆军炮兵火力不足就外行了。实际上,中国由于沿袭苏联军事理论,高度重视炮兵,其炮兵火力与苏军不相上下,远强于北约各国部队。越军炮兵在79年战争全程中一直被中国炮火有效压制,直到几年后老山战役时得到苏联122mm"冰雹"火箭增程弹后,才得以对中国炮兵进行超射距袭击。79年友谊关突破时中国步兵的较大伤亡,主要是多年来初次作战无经验,战士冲击时队型过于密集所致。战争开始2-3天后,伤亡率即大幅下降即证明了这一点。

[ 转自铁血社区 http://bbs.tiexue.net/ ]

  2.关于伤亡人数人们对中国军队伤亡人数的臆想,大概是出于中国军队人多加上看过去打仗电影得出来的印象所致。实际上,中国军事理论虽强调集中兵力,在突破地域需数倍于敌,但作战时队型相当分散,并非电影里看到的"人海战术"。步兵间隔多在10-20米左右,火炮间隔多为数百米。这样拍电影当然不行,摄影师忙活半天,镜头里只能收进三、五个人或一门炮。观众喜欢的是数十门炮排在一起,一打一大串的火爆场景。但打仗不是那么回事。看过History
Channel最近放的美军特种部队训练的片子吗?没意思吧?就那么三、五个人,枪声稀稀拉拉。真实的情况是,1979年战争的中越伤亡总数近乎相等,中方约6万多人,越方不到8万人。但中方伤亡中,伤者占大多数,死亡仅6000余人,且多在战争最初几天,越方则死亡率很高,死亡人数约近5万人。造成如此差别的原因是中方保持着占压倒优势的进攻主动权,作战区域一直向前推进。几乎所有局部战斗结束后,战场均为中方占领,中方伤员可以得到及时的救护和直升机迅速后送,因此伤员死亡率大为降低。这是中越战争中中方后勤的主要经验之一。而越方一直被迫撤退,大量伤员被遗弃在战场上,许多伤员未避免被俘,爬到潮湿且蚊蝇虫蚁孳生的丛林或洞穴中躲避,因得不到及时治疗而死亡。


  3.战争局限于边境地区,是出于对北方苏联的顾虑,而非中方后勤和防空部队无力支持。地空导弹只能打50公里的例子实在有些荒唐。导弹不能随部队向前移动吗?当然,为了避免战争升级刺激苏联,中国在中越数年战争中,确实未使用过导弹,中国空军也从未越过边界作战。


  中国对越作战的战略目标,是以围魏救赵之策,迫使越军减轻对柬埔寨梅莱山红色高棉基地的压力。以中国军事实力,若大举攻越,短期内拿下河内、海防等中心城市,并非难事。实际上,作战开始一周,越军边境地区防御即已全线崩溃,越314A师据守的谅山三面被围,而谅山以南为平原地带,适于中国装甲部队作战,越军再也无险可守,河内唾手可下。但中国不能不顾虑背后的苏联。由于苏联绝不会容忍中国夺占其在东南亚的势力范围,若中国攻占河内,更换越南政权,苏军在中国北方策应越南的可能性极大。中国对越作战从一开始就反复申明是边界反击战,就是向苏联表明绝无占领越南之意,防止苏联动手。在战役战术上,则采用"围点打援"策略,围住谅山而不攻陷,吸引越军主力从柬埔寨回援,歼灭越军主力部队后撤军,这样,救援柬埔寨的战略目标就达成了。实际上,越军开始确实中计,已将6个主力师,包括突破金边的203师从柬调回,企图增援谅山。当越军主力向谅山移动时,中国在谅山东南和西南方向的10多万部队随即向两侧运动,已张开了袋口。但中国由于顾虑苏联在北方行动而一再明示自己的意图终于起了作用,加上苏军卫星侦察到这一移动,并将情况通报了越军,使越南终于明白中国从一开始就说出的战略企图是真的,从而明白了中国军队对谅山围而不打的真实意图。于是,越军主力不再企图增援谅山,而回撤到河内以北布防。中国见战略企图已暴露,越军主力不会再上钩,只得对谅山合围发起攻击。攻击谅山只用一天半解决战斗,消灭了314A师的情况表明,对谅山包围20多天,显然不是中国军队打不下谅山,而是典型的"围点打援"战术,意在围歼增援的越军主力。


  当然,由于苏联挚肘,中国被迫暴露战略企图,未能达成战略目标,不能不令人遗憾。中国军队在指挥、通信、后勤保障等方面也暴露出大量问题。美军估计,由于后勤方面的问题,中国军队越过边界300公里(不是区区50公里)后,作战能力将大幅下降。但在对越作战的各战役中,中国军队在火力和作战能力等各方面占压倒优势,追着越军打的情况,是事实。甚至在让侵越美军甚为头痛的小部队丛林游击战方面,中国陆军对越军也占压倒优势。这都是事实。

................................................................


  二、62年中印战争中国该不该退兵?

[ 转自铁血社区 http://bbs.tiexue.net/ ]


  1、特别是当时战略环境十分险恶,居然也敢打。当时国内自然灾害刚结束,台湾在东南沿海叫嚣要反攻大陆。国际上,中苏开始交恶,苏联、美国两个超级大国都站在印度一边,英国自不别说是在印度一边;印度作为不结盟运动领导人,第三世界国家都站在印度那边。中国是经济、政治上都成问题。军事上,本来原不准备打印,只是印度太气人。所以,毛泽东说,印度搞我们那么多年了,我们也该搞他一下。我理解只不过是要教训一下而已。那时,毛泽东等人从来就未在乎过什么"中国威胁论"。

  2、时机选择得当。隆冬将至,抢在大雪封山,后勤和军队便于交通之时。最重要的是在美苏两国热衷于古巴导弹危机之间。古巴导弹危机一结束,我便见好就收,充分适应现代局部战争有限性的特点。

  3、打得好。法国人、以色列人等西方国家高声赞叹:"内行人的战争!"、"潇洒至极的战争!"。俘虏印军准将以下7000多人,而我无一人被俘;几乎吃掉了印军的主力,却主动撤军。毛泽东、刘伯承等人用兵如神。

  4、收得好。迅速回撤,还将缴获兵器维修一新送回,战俘及时送回,令达维尔等人既汗颜又口服心服。收兵之时,美国的航母已开至孟加湾企图干预;苏联准备给印度新印武器;英国的新装备已经运抵印度。后人常叹曰:"不该打后又撤回麦线以北!"其实是不了解当时的险恶环境。毛泽东战略运筹确实是高人一筹。倒是刘帅认为回撤是否可以少撤一点,但当时谁能把一切都做得十全十美呢。


  62年中印边境一战后,打出了近半个世纪的和平!


  62年发生的中印战争,是中国军队军力的一个顶峰,中国仅以边防部队3万余人就重创了印军主力,占领全部争议土地,逼得印度全国动员并乞求美国干预,在全世界丢尽了脸,而中国当然威名大振,还落下一个好名声,极大的改善了中国在世界上的地位和形象。

[ 转自铁血社区 http://bbs.tiexue.net/ ]
  但这场战争对很多中国人来说留下了很大的遗憾,并因此产生数十年的争议。遗憾和争议的焦点是中国是否应放弃东段九万多平方公里的争议土地。很多砖家和愤青对此愤愤不平,对毛放弃丰饶的东段却保留了贫瘠的西段而气愤不已,愚蠢说,送礼说,甚至于卖国说纷纷出笼,认为毛下令退兵错了。


  中国到底该不该退兵?我认为,该,十分该!理由是:


  (1)经过一个多月的战斗,中国军队战力已达极限。一些人(包括一些前线指战员)虽然乐观的回忆说战斗后来很轻松,但实际上大多数人已感到疲乏了??毕竟在所有作战物资均靠人员运送、翻越4、5千米高的大山,一路作战南下一个月了。而敌人虽然被击败了,可这些只是其军队中很少的一部分,在平坦的印度大平原,装备有坦克、重炮、飞机,人数在中国参战部队总人十倍以上的印军(不计印度动员部分),轻易就可将轻装的中国军队全歼。虽然中国有百万大军,可能集结到争议土地上的能有多少!依当时的条件,集结保障3、5万人作战已是中国的极限了,而且还不能长期化。

  (2)后勤保障是中国退兵的决定因素。其实看过与那场战争有关的书的人,多少可以看到后勤保障的艰辛:往前线送弹药补给全靠人力和畜力;为保障前线,连四岁的小孩都要背四筒八斤重的罐头支前!这种靠牦牛和老百姓的双肩维系的后勤支援,不可能长久,也只短时间的适用于最前线。战争主要的物资供应,是靠汽车从数千公里外的中国内地运上来的,运一车油到拉萨要烧掉半车,而当时中国还是"贫油"国,也没有足够的汽车来运输……相比之下,依托印度大平原的印度却能方便使用汽车、火车搞运输。

  在另一方面,西藏的冬季是可怕的:道路随时可能被大雪封住,人畜皆不能通行,更别说车辆;中国军队在西藏边境进行战争,装备给养来自中国内地,从中国内地进藏的几条干线公路抛开艰险不说(唱唱"高高的二郎山"吧),随时都有被大雪封山可能。在《喜马拉雅山的雪》一书中,第五章就描述了我军后续部队遭遇雪崩的情景,有十五名优秀的开路战士因此尸骨无存……难啊,苦啊!这些绝不是坐在桌前打电脑的砖家和愤青所能想象到的。时至今日,通向西藏和通向军事分界线的道路仍比大多数人想象的要差,墨脱仍是中国唯一不通公路的县。

  在这种情况下,尽管中国准备了打三个月的物资,仅打了一个月就退兵了,因为大雪马上就要封闭西藏通向印度的崎岖山路,因为内地通向西藏的公路也将被雪封闭,因为前线补给能力已极度透支……在现代战争就是打后勤的现实下,中国唯一的正确选择就是退兵。八十年代印度成立"阿那尔恰努尔"邦时,就因后勤原因中国放弃了对印度开战。

[ 转自铁血社区 http://bbs.tiexue.net/ ]
  综上所述,中国军队退兵是必须的。

打出的尊严

中国人民志愿军在朝鲜战争中打出了新中国的自尊

只有在中国共产党的领导下,中国才得以自信的态度自主地决定自己的命运。这种自信最突出的表现在中国人敢于主动以自己的意志科学地、强制性地否定外国的意志。自中国共产党成立以来,中国人做出了一系列令人刮目相看的举动。


解放战争:不畏强敌


1946年,美国海军陆战队进入解放军防区,解放军开枪还击,毙伤美军十多人,中共的强硬使美国放弃了干涉中国内战的念头。


1949年,渡江战役前夕,英国几艘军舰朔长江而上,巨大的舰炮傲视北岸解放军阵地,结果解放军抢先开炮,毙伤英舰数艘,英军数百。


当遭受重创的英舰带著伤亡官兵摇摇晃晃地回到香港时,英国政府以及香港殖民地人民对未来的新中国有了震憾性的感性认识。这也是英国在西方国家中最早承认中华人民共和国的原因之一吧。


朝鲜战争:震撼全球


1950年,朝鲜告急,美军战舰进入台湾海峡,美国飞机已经开始对位于朝鲜的中国边境进行轰炸,联合国旗下16国联军已经逼近中国边境。


此时毛泽东力排众议,在林彪等人怯战的情况下,令彭德怀这个从未到过东北的湖南人,带领解放军第四野战军的第13兵团进入朝鲜,与联合国军交战。联合国随即决议,中国是侵略者。但中国既然出兵,就是要与联合国军一战。


志愿军入朝后,与联合国军短兵相接。13兵团首战告捷后,毛泽东又命宋时轮这个湖南人带领第9兵团迎战东加美军第10军。在西加,13兵团将联合国第8集团军打得抱头鼠窜,其中号称'勇猛'的突厥旅被中国人简单消灭。美第二师在解放军两个团的伏击的下,也被打得溃不成军,一个下午就损失了4000人;联合国军第8集团军司令沃克中将在撤退中车祸丧生;南朝鲜的几个师被全歼;联合国军整个第8集团军土崩瓦解。


在东加长津湖一带,连冬衣都没有的解放军第9兵团将士,在冰天雪地里包围了美军最精锐的陆战第一师,《人民日报》和《中央人民广播电台》自信地向世界宣布,该美军精锐部队就要被全歼了。


最后,美军虽侥幸突围出去,美第10军11万多战斗人员坐船撤退到南朝鲜,2万人的陆战第一师损失了1.1万多人。美国全国进入了紧急状态,大批青壮年被征入伍。中国给美国乃至世界的心理震撼是难以磨灭的。


中印冲突:教训印度


1962年,印度不断向中国发动侵略,中国万般忍耐,印度却把中国的忍让当成了软弱。一向鼓吹和平的尼赫鲁这个印度哲学家(时任印度总理)制订了所谓前进政策,决定武力清除中印边境上的中国军队。国际舆论当然是站在印度一边谴责中国侵略。一场迫不得已的惩罚性战争开始了。


毛泽东的逻辑很简单,与其让世界无休止地指责中国'侵略',还不如让大家看看中国真动起手来是什么样子。因此,中国的目标是越过麦克马洪加,给印度人一个终身难忘的教训。


印军当时有一支精锐部队,叫捷克连队,与英国人一起参加过鸦片战争、八国联军侵略中国,曾经在北京城里耀武扬威。毛泽东知道这情况后,大手一挥说:百年奇耻!命令解放军务必将此连队全歼。结果这个连队的结局就是没有一个人活著回去。


解放军对印军摧枯拉朽的打击使整个印度民族陷入了恐慌和心理崩溃。对印度的一战,彻底粉碎了印度作为所谓不结盟运动领袖在道德上?驾于其他国家的美梦,印度在国际上的地位一落千丈。美国等大国对印度的轻视不必多说,众多的第三世界国家也改变了对中国的态度,开始支援和拥护中国。中国再次向世界人民传递了一个强烈的资讯,那就是新中国,即使在最困难的时期,也是不好惹的,惹了是不好办的。

对越战争:再赢尊重


1979年,中国发动了一场对越南的自卫还击战争,当时世界上支援中国出兵的只有柬埔寨一个国家。但是中国本著对人类与世界和平负责的态度,不惜流血牺牲,对越南这个东南亚小霸进行了坚决的打击,中国再一次赢得了世界的尊重。


参加朝鲜战争的美国大兵回忆到,他们本来以为中国人就是那种逆来顺受的苦力,谁知他们竟然如此富有'侵略性'。在美国加州,朝鲜战争改变了华人非人的概念,并在1952年投票废除不准华人工作和其他歧视性的州宪法条文。


就连李光耀这个南洋华侨都感到沾了光。据新加坡资政李光耀回忆说,朝鲜战争后,西欧国家海关官员见到华人立刻肃然起敬,一改过去歧视的态度。这件事使李光耀大为感慨,开始认同中华文化,并认真学习汉语


强大武力确保发展


可见当中国强大的时候,世界人民就会心悦诚服;而一旦中国露出软弱的痕迹,哪怕只是片刻的软弱,都会立刻遭到世界人民的轻视。


香港人有句话说第一毛泽东,第二李小龙。为什么这样说呢?就是这两个人包括香港在内的中国人,让世界人民从心里服气。毛泽东靠的是横扫千军的气魄和战略,李小龙靠的是打遍天下无敌手的拳脚功夫。可以非常肯定地说,中国人现在有的一切尊严都是靠自己打出来的。


邓小平说过,发展才是硬道理。目前的世界局势,美国在军事上似乎占尽了优势。但美国已经到顶了。美中之间的竞争归根结底是经济实力、生产力的较量。不管世界如何炮火纷飞,SARS如何猖獗,中国经济仍保持了强有力的增长,这就是中国的胜利。


但是要确保这种增长的可持续性,中国必须有强大的武力和正确的战略,这种战略只可能来自中国对世界战略态势的正确判断。在美国强大的压力面前,盲目地、一厢情愿地寻找战略伙伴是重犯蒋介石依赖外力的错误。

白刃战疑踪:日军为何在中国放弃拼刺刀

白刃战疑踪:日军为何在中国放弃拼刺刀
  二战里面,日军在白刃战前先把子弹退掉然后拼刺刀,是一个怪异而引人注目的战术。说起来这是其步兵条令的规定,在热兵器时代,这一规定因为看起来迂腐而令人困惑。然而,它决不是"死要面子活受罪",也不全是捍卫"武士道的尊严",而是日本军队根据实战检验做出的结论,这和日军的兵器,作战特点是相吻合的。

  日军在白刃战前退出子弹,是指双方开始班以上规模近距离格斗的时候,而不是只要一准备肉搏,冲锋的时候就退掉子弹,那纯粹是自杀行为。

  当时各国军队在冲锋的时候不但不能退出子弹,而且整个过程中要全力射击,尽量压制对方火力。比如军事作品《亮剑》中,就有这样一段真实的描写:

  随着最后一批手榴弹的脱手,伏在坡下的突击队一跃而起,疾跑中20挺轻机枪同时开火,组成密集的火网,日军工事在密集的弹雨下被打得烟尘四起。在爆炸后残存的日军士兵又恢复了强悍的本色,他们嚎叫着还击,面无惧色。八路军突击队员们不断倒下,后面的候补射手又迅速补上,双方杀红了眼,有些日军士兵杀得性起,竟毫无遮拦地端着刺刀从工事中跳出来迎着弹雨进行反冲锋,但顷刻间被打成蜂窝状,短短30米冲击距离,李云龙的第一突击队的机枪手们全部阵亡,无一生还……

  战争是残酷的,日军对这一点的认识和其他国家军队并无区别。事实上太平洋战争中,无论塞班还是冲绳,日军发动步兵冲击的时候,都是一边射击一边前进,并且把轻机枪手放在一线,以增强压制火力(因为一线日军一直没有装备冲锋枪)。

  这倒不太用担心误伤自己人。二战中,步兵冲击的散兵线即便以所谓"密集队形"发动攻击,其队形也远比冷兵器时代松散,士兵前后重叠的概率不高。真正采用那种传统意义的密集队形,冲击的效果往往很糟。比如瓜达尔卡纳尔日军对"血岭"的密集队形冲击,中国军队在忻口会战中对1002高地的强袭,过于密集的队形,造成己方后方人员的武器无法使用,而对方的武器命中率则大大提高,徒然增加自己的伤亡。

  根据日军自己的统计,在白刃战开始以后,保留步枪子弹造成的损失比收获更大。明令白刃战开始后子弹退膛,正是依据这个判断。究其原因,我想主要有以下两个:

  第一,日军使用的步兵轻武器性能限制。

  日军的制式轻武器,最典型的就是三八式步枪。它继承了其前辈村田式步枪的特点,那就是弹丸初速高、瞄准基线长、枪身长。这样的特点使三八式步枪射程远,打得准,也适合白刃战,不但日军喜欢用,中国军队缴获后也喜欢用,战前还从日本进口过一批。但是它也有缺点,因为弹丸初速高、质量好,因此命中之后往往易于贯通,创口光滑,一打两个眼,对周边组织破坏不大,在杀伤力上不如中国的中正式步枪。白刃战中,这个缺点更为突出,因为白刃战中双方人员往往互相重叠,使用三八式步枪,贯通后经常杀伤自己人。而且,由于贯通后弹丸速度降低,二次击中后弹丸会形成翻滚、变形,造成的创伤更为严重,而仅受贯通伤的对手未必当场失去战斗力,仍然能够反击!在二战中国战场,因为装备和训练的优势,日军人员损失与中国军队相比,达到1:4甚至1:6的水平,而且日军处于人员劣势。因此,使用三八式步枪在肉搏战中开枪射击,因为误伤造成己方大量减员,显然是赔本的事情。

  第二,日军对白刃战的战术认识。

  白刃战中,日军标准的刺杀准备姿势为一手握前护木,一手握枪托前段弯曲部,枪托稍下垂在支撑腿侧面,半斜向面对对手,刺刀尖略与眉平。这样,枪从斜上方到斜下方,正好护住颈、胸、腹要害,而刺刀一甩就可以突刺。问题是如果摆一下这个姿势,就会发现原来这样一比划,枪口根本就不是朝向对方,而是朝向斜上方的天空。因此,格斗起来,射击的机会很难比突刺的机会更多。而如果作射击准备,手指必须放在扳机上,这就造成了两个严重问题,一,只要双方武器一相交磕碰,就会走火;二,手指不能全力握枪,影响了持枪姿态,拼杀中使不上全力。另外,三八式步枪太长,转动枪口瞄准对方的力距也长,如果对方不是出现在正前方,转动枪口的时间太长,可能枪口还未到位,自己已经被刺倒,这时候使用枪托进行打击无疑是更为方便的作战方法。可见,日军白刃战中能够有效射击的机会很少,保留枪膛中的子弹,取得战果的机会微乎其微,反而影响了肉搏动作的质量。

  这才是日军在白刃战前枪弹退膛的真正原因。

2008年5月6日星期二

贝叶斯过滤算法

一、 贝叶斯介绍

  贝叶斯是基于概率的一种算法,是Thomas
Bayes:一位伟大的数学大师所创建的,目前此种算法用于过滤垃圾邮件得到了广泛地好评。贝叶斯过滤器是基于"自我学习"的智能技术,能够使自己适应垃圾邮件制造者的新把戏,同时为合法电子邮件提供保护。在智能邮件过滤技术中,贝叶斯(Bayesian)过滤技术取得了较大的成功,被越来越多地应用在反垃圾邮件的产品中。

二、 贝叶斯过滤算法的基本步骤


  1. 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。

  2. 提取邮件主题和邮件体中的独立字符串,例如
ABC32,¥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件。

  3. 每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。

  4. 计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)

  5. 综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为:

  A 事件 ---- 邮件为垃圾邮件;

  t1,t2 …….tn 代表 TOKEN 串

  则 P ( A|ti )表示在邮件中出现 TOKEN 串 ti 时,该邮件为垃圾邮件的概率。

  设

  P1 ( ti ) = ( ti 在 hashtable_good 中的值)

  P2 ( ti ) = ( ti 在 hashtable_ bad 中的值)

  则 P ( A|ti ) =P2 ( ti ) /[ ( P1 ( ti ) +P2 ( ti ) ] ;


  6. 建立新的哈希表hashtable_probability存储TOKEN串ti到P(A|ti)的映射

  7. 至此,垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的哈希表 hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性。

  当新到一封邮件时,按照步骤2,生成TOKEN串。查询hashtable_probability得到该TOKEN 串的键值。

  假设由该邮件共得到N个TOKEN 串,t1,t2…….tn,hashtable_probability中对应的值为 P1 , P2 ,
……PN , P(A|t1 ,t2, t3……tn) 表示在邮件中同时出现多个TOKEN串t1,t2……tn时,该邮件为垃圾邮件的概率。

  由复合概率公式可得
  P(A|t1 ,t2, t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)]

  当 P(A|t1 ,t2, t3……tn) 超过预定阈值时,就可以判断邮件为垃圾邮件。


三、 贝叶斯过滤算法举例

  例如:一封含有 " 法轮功 " 字样的垃圾邮件 A 和一封含有 " 法律 " 字样的非垃圾邮件 B 。 根据邮件 A 生成
hashtable_bad ,该哈希表中的记录为

  法: 1 次

  轮: 1 次

  功: 1 次

  计算得在本表中:

  法出现的概率为 0.3

  轮出现的概率为 0.3

  功出现的概率为 0.3

  根据邮件B生成hashtable_good,该哈希表中的记录为:

  法: 1 次

  律: 1 次

  计算得在本表中:

  法出现的概率为 0.5

  律出现的概率为 0.5

  综合考虑两个哈希表,共有四个 TOKEN 串:法 轮 功 律

  当邮件中出现"法"时,该邮件为垃圾邮件的概率为:

  P = 0.3/ ( 0.3 + 0.5 ) = 0.375

  出现"轮"时,该邮件为垃圾邮件的概率为:

  P = 0.3/ ( 0.3 + 0 ) = 1

  出现"功"时,该邮件为垃圾邮件的概率为:

  P = 0.3/ ( 0.3 + 0 ) = 1

  出现"律"时,该邮件为垃圾邮件的概率为:

  P = 0/ ( 0 + 0.5 ) = 0

  由此可得第三个哈希表 hashtable_probability ,其数据为:

  法: 0.375

  轮: 1

  功: 1

  律: 0

  当新到一封含有"功律"的邮件时,我们可得到两个TOKEN串:功 律

  查询哈希表 hashtable_probability 可得:

  P (垃圾邮件 | 功) = 1

  P (垃圾邮件 | 律) = 0

  此时该邮件为垃圾邮件的可能性为:

  P= ( 0*1 ) /[0*1+ ( 1-0 ) * ( 1-1 ) ] = 0

  由此可推出该邮件为非垃圾邮件。

四、总结

  叶斯过滤器为什么能够工作得这么好呢?因为贝叶斯过滤器纯粹根据统计学规律运作,比起那些需要分析邮件句法或内容含义的过滤器来显然要简单的多,而且可计算性强得多。更重要的是,这些标记完全可以由用户根据自己所接收的垃圾邮件和非垃圾邮件来创建,因而可以获得一种对用户来说独一无二的过滤器。这意味着垃圾邮件发送者根本无法猜测出你的过滤器是如何配置的,从而有效地阻截住各类垃圾邮件。

  不过,尽管贝叶斯过滤器非常有效,但它仍需要进行优化才能真正完美。比如它可以结合
"白名单"降低误报率,结合"黑名单"降低漏过率,还可以利用其他技术如源址认证使其成为更加精确的垃圾邮件过滤器。

2008年5月5日星期一

教你使用solr搭建你的全文检索

教你使用solr搭建你的全文检索
 Solr 是一个可供企业使用的、基于 Lucene 的开箱即用的搜索服务器。对Lucene不熟?那么建议先看看下面两篇文档:

  实战Lucene,第 1 部分: 初识
Lucene:http://www.ibm.com/developerworks/cn/java/j-lo-lucene1/

  用Lucene加速Web搜索应用程序的开发:http://www.ibm.com/developerworks/cn/web/wa-lucene2/

  一、 solr介绍

  solr是基于Lucene
Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。它的官方网址在http://lucene.apache.org/solr/
.solr需要运行在一个servlet 容器里,例如tomcat5.5.solr在lucene的上层提供了一个基于HTTP/XML的Web
Services,我们的应用需要通过这个服务与solr进行交互。

  二、 solr安装和配置

  关于solr的安装和配置,这里也有两篇非常好的文档,作者同时也是 Lucene Java 项目的提交人和发言人:

  使用Apache Solr实现更加灵巧的搜索:http://www.ibm.com/developerworks/cn/java/j-solr1/index.html

  http://www.ibm.com/developerworks/cn/java/j-solr2/index.html

  下面主要说说需要注意的地方。

  Solr的安装非常简单,下载solr的zip包后解压缩将dist目录下的war文件改名为solr.war直接复制到tomcat5.5的webapps目录即可。注意一定要设置solr的主位置。有三种方法。我采用的是在tomcat里配置java:comp/env/solr/home的一个JNDI指向solr的主目录(example目录下),建立/tomcat55/conf/Catalina/localhost/solr.xml文件。

<Context docBase="D:/solr.war" debug="0" crossContext="true"
><Environment name="solr/home" type="java.lang.String"
value="D:/solr/solr" override="true" /></Context>


  观察这个指定的solr主位置,里面存在两个文件夹:conf和data.其中conf里存放了对solr而言最为重要的两个配置文件schema.xml和solrconfig.xml.data则用于存放索引文件。

  schema.xml主要包括types、fields和其他的一些缺省设置。

  solrconfig.xml用来配置Solr的一些系统属性,例如与索引和查询处理有关的一些常见的配置选项,以及缓存、扩展等等。

  上面的文档对这两个文件有比较详细的说明,非常容易上手。注意到schema.xml里有一个

<uniqueKey>url</uniqueKey>


  的配置,这里将url字段作为索引文档的唯一标识符,非常重要。

  三、 加入中文分词

  对全文检索而言,中文分词非常的重要,这里采用了qieqie庖丁分词(非常不错:))。集成非常的容易,我下载的是2.0.4-alpha2版本,其中它支持最多切分和按最大切分。创建自己的一个中文TokenizerFactory继承自solr的BaseTokenizerFactory.

/**
* Created by IntelliJ IDEA.
* User: ronghao
* Date: 2007-11-3
* Time: 14:40:59
* 中文切词 对庖丁切词的封装
*/
public class ChineseTokenizerFactory extends BaseTokenizerFactory {
/**
* 最多切分 默认模式
*/
public static final String MOST_WORDS_MODE = "most-words";
/**
* 按最大切分
*/
public static final String MAX_WORD_LENGTH_MODE = "max-word-length";
private String mode = null;
public void setMode(String mode) {
if (mode==null||MOST_WORDS_MODE.equalsIgnoreCase(mode)
|| "default".equalsIgnoreCase(mode)) {
this.mode=MOST_WORDS_MODE;
} else if (MAX_WORD_LENGTH_MODE.equalsIgnoreCase(mode)) {
this.mode=MAX_WORD_LENGTH_MODE;
}
else {
throw new IllegalArgumentException("不合法的分析器Mode
参数设置:" + mode);
}
}
@Override
public void init(Map args) {
super.init(args);
setMode(args.get("mode"));
}
public TokenStream create(Reader input) {
return new PaodingTokenizer(input, PaodingMaker.make(),
createTokenCollector());
}
private TokenCollector createTokenCollector() {
if( MOST_WORDS_MODE.equals(mode))
return new MostWordsTokenCollector();
if( MAX_WORD_LENGTH_MODE.equals(mode))
return new MaxWordLengthTokenCollector();
throw new Error("never happened");
}
}


  在schema.xml的字段text配置里加入该分词器。

<fieldtype name="text" class="solr.TextField"
positionIncrementGap="100"> <analyzer type="index">
<tokenizer class="com.ronghao.fulltextsearch.analyzer.
ChineseTokenizerFactory" mode="most-words"/> <filter
class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt"/> <filter
class="solr.WordDelimiterFilterFactory" generateWordParts="1"
generateNumberParts="1" catenateWords="1" catenateNumbers="1"
catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/> <filter
class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer>
<analyzer type="query"> <tokenizer
class="com.ronghao.fulltextsearch.analyzer.
ChineseTokenizerFactory" mode="most-words"/> <filter
class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="
stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
generateNumberParts="1" catenateWords="0"
catenateNumbers="0" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/> <filter
class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer>
</fieldtype>


  完成后重启tomcat,即可在http://localhost:8080/solr/admin/analysis.jsp

  体验到庖丁的中文分词。注意要将paoding-analysis.jar复制到solr的lib下,注意修改jar包里字典的home.

  四、 与自己应用进行集成

  Solr安装完毕,现在可以将自己的应用与solr集成。其实过程非常的简单,应用增加数据――>根据配置的字段构建add的xml文档――>post至solr/update.

  应用删除数据à根据配置的索引文档唯一标识符构建delete的xml文档――>post至solr/update.

  检索数据à构建查询xml―>get至/solr/select/――>对solr返回的xml进行处理――>页面展现。

  具体的xml格式可以在solr网站找到。另外就是solr支持高亮显示,非常方便。

  关于中文,solr内核支持UTF-8编码,所以在tomcat里的server.xml需要进行配置

<Connector port="8080" maxHttpHeaderSize="8192" URIEncoding="UTF-8" …/>


  另外,向solr Post请求的时候需要转为utf-8编码。对solr
返回的查询结果也需要进行一次utf-8的转码。检索数据时对查询的关键字也需要转码,然后用"+"连接。

String[] array = StringUtils.split(query, null, 0);

for (String str : array) {

result = result + URLEncoder.encode(str, "UTF-8") + "+";

}
本贴来自ZDNetChina中文社区 http://bbs.zdnet.com.cn
,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=181555

Apache Solr(1)

本文是Apache Solr介绍的姊妹篇,我将逐一分析Apache Solr的各个包,力图详细地分析Solr的设计和架构。Apache
Solr由12个包组成,如下:

org.apache.solr.analysis
org.apache.solr.core
org.apache.solr.request
org.apache.solr.schema
org.apache.solr.search
org.apache.solr.search.function
org.apache.solr.servlet
org.apache.solr.tst
org.apache.solr.update
org.apache.solr.util
org.apache.solr.util.test
org.apache.solr.util.xlst
Apache Solr尚处于发展期,目前版本才是1.1.0。文档的注释非常少。我们先从使用者的角度出发,最先看到的当然是servlet,因为Solr本身是个独立的网络应用程序,需要在Servlet容器中运行来提供服务,所以servlet是用户接触的最外层。

我们看看org.apache.solr.servlet包。这个包很简单,只有两个类:SolrServlet和SolrUpdateServlet.我们很容易从类名中猜出这两个类的用途。

SolrServlet类继承HttpServlet类,只有四个方法:

init()
destroy()
doGet()
doPost()
SolrServlet类中除了普通的Java类对象(包括Servlet相关的)外,有四个Solr本身的类,还有一个Solr本身的异常。其中两个类和一个异常属于org.apache.solr.core包,两个类属于org.apache.solr.request包。属于core包的有:

Config:
SolrCore:
属于request包的有:

SolrQueryResponse:
QueryResponseWriter:
分析一下这个SolrServlet类。
首先servlet会调用init()方法进行初始化:通过Context查找java:comp/env/solr/home来确定Solr的主目录(home),接着调用Config.setInstanceDir(home)方法设置这个实例的目录。然后通过SolrCore.getSolrCore()来获得一个SolrCore实例。
destroy()方法将会在Servlet对象销毁时调用,仅仅调用core.close()关闭SolrCore实例。
当用户请求进来时doPost()简单地将任务交给doGet()完成,主要的任务由doGet()完成。
分析一下doGet()方法:

使用SolrCore和doGet()参数request生成一个SolrServletRequest对象(注意:这个SolrServletRequest类不是公开类,位于org.apache.solr.servlet包中,继承了SolrQueryRequestBase类,仅仅接受SolrCore和HttpServletRequest对象作为参数)
然后SolrCore执行execute()方法(参数为SolrServletRequest和SolrQueryResponse)

网页优化作弊行为

网页优化作弊行为

 网页优化不乏旁门左道,但这往往只是讨一时之巧,结果终是得不偿失。搜索引擎,尤其是大型搜索引擎在侦测作弊行为方面是很聪明的,所以从长计议,最好不要采用以下作弊行为:

.....................................................................................

 ■ 设置文字颜色与背景相同
 这是种"古老"的提高网页关联度的手段,具体做法是:

 在网页中放置大量的关键词,并将其颜色设成与背景同色,这样可以让搜索引擎检索到更多的关键词,同时还不易被普通浏览者发现。

 这是种典型的作弊行为,现在所有的搜索引擎对此都异常敏感,一旦发现投机取巧者,它们将毫不留情地予以严厉的打击。因此,除非你想证实搜索引擎对此有多恼火,否则千万不要以身试法。

.....................................................................................

 ■ 使用与网页内容无关的关键词
 有的网站为了增加访问量,在网页中使用一些非常热门,但与自己网页内容无关的搜索词,比如"mp3"、"DVD video"等,希望借此吸引更多的访问者。

 但要知道,这是种极不负责任的行为。当用户碰到这种情况时,他们往往会感到沮丧,并且由于大多数普通网民不了解搜索引擎检索信息的机制,他们会怀疑搜索引擎的有效性,进而对搜索引擎敬而远之,而这正是搜索引擎最不愿见到的结果。

 所以搜索引擎对这类做法也是深恶痛绝,一旦作弊者被发现,所受到的惩罚将是严厉的,轻则取消你网页的排名资格,重则会将你的整个网站从数据库中清除。

.....................................................................................

 ■ 大量无关的外部链接
 在网页排名基本原则和网页优化部分我们提到外部链接的重要性,但这并不意味着你可以不求策略地与所有愿意与你链接的网站交换链接。实际上过多与网站无关的低质量链接不仅起不了作用,相反会给你带来麻烦,而在这方面Google尤其挑剔。

Great Firewall of China

Great Firewall of China 科普
bruce | 三月 20,2006 09:09
用纳税人的钱来限制纳税人的自由 文章来源:维基百科,自由的百科全书


防火长城,正式名称中国防火墙或中国国家防火墙,指中华人民共和国政府在其管辖因特网内部建立的多套网络审查系统的总称,包括金盾系统和相关行政审查系统。一般情况下主要指中国对因特网内容进行自动审查和过滤监控、由计算机与网络设备等软硬件所构成的系统。


其英文名称Great Firewall of China(与长城 Great Wall 相谐的效果),简写为Great Firewall,缩写GFW。


主要技术


国家入口网关的IP封锁


从90年代初期,中国大陆只有教育网、高能所和公用数据网3个国家级网关出口,中国政府对认为具有颠覆性质的站点进行IP封锁,这是有效的封锁手段。对于IP封锁,用普通Proxy技术就可以绕过。只要找到一个普通的海外Proxy,然后通过Proxy就可以浏览自己平时看不到的信息了。但网络封锁部门也就开始把人们常用的Proxy加入了IP封锁列表。


主干路由器关键词过滤阻断


在2002年左右,中国大陆研发了一套系统,并规定各个因特网服务提供商必须使用。思科等公司的高级路由设备帮助中国大陆实现了关键词过滤,最主要的就是IDS(Intrusion
Detection System)---入侵检测系统。它能够从计算机网络系统中的关键点(如国家级网关)收集分析信息,过滤、嗅探指定的关键词,并进行智能识别,检查网络中是否有违反安全策略的行为。利用这些设备主要进行网址的过滤和网页内容的过滤,如果符合即定的规则,则向用户发送ACK-FIN,自动打断用户与服务器的会话连接,使数据流中断,而在终端计算机上会显示主机无法识别。不同的IDS甚至有可能在一段预定或随机的时间内试图阻止从用户主机发出的所有通信。


所以在访问境外网站时,如果数据流里敏感字符过多时,会出现网页一闪而过,随后提示「无法访问」的情况,例如Google。而且在接下来的一段时间内,有可能无法访问任何网页。


关键词过滤的弱点就是对已加密的信息无能为力,而网址的关键词和网页的关键词都可以用不同的手段来加密,从而使这样的信息过滤系统从根本上失去作用。不同的加密手段也是后来所有突破网络封锁软件的基础。


「思科公司为中国特制了数据包级别的内容过滤路由器(content filtering
router),而中国的路由器80%是思科公司的。」正在进行中的「金盾工程」是一个与Novell的合作项目。这个工程将包括生化监控、人工智能、自动识别等技术。


域名劫持

参见域名劫持

在世界上一共有十几个根(Root)级别的域名服务器,到目前没有一个安装在中国大陆,所以中国大陆方面不能从根本上控制修改域名。

2002年左右,中国大陆开始采用域名劫持手段,他们用路由器提供的IDS监测系统来进行域名劫持,防止了人们访问被过滤的网站。同时,为了防止高级用户自己直接使用有正常功能的境外的域名服务器,中国大陆也开始不断地封锁海外的DNS服务器,已经封锁了几百个北美的DNS服务器。

由于因特网的高度流通,使有关当局的措施不时影响到海外的用户(但给辖区内网民带来极大麻烦和愤怒)。

被管制和限制的网站不完全列表

所有境外的网站都受到关键词过滤的影响,出现偶尔不可访问(比如Gmail);大量色情的论坛或网站被封锁;所有民运及在大陆被查禁的宗教的境外网站被封锁;台湾的大多数政府网站与论坛。

2008年5月4日星期日

gmail

2004年4月1日,Google宣布推出免费电子邮件服务Gmail,并且一开始就把单个邮箱的容量定在了惊人的1000M(1G)!根据Google的说明,Gmail还有以下特殊的优势:

无须将邮件归类,使用邮箱搜索功能便可精确定位某个邮件;
容量巨大,用户无须随时删除邮件以便为新邮件腾出存储空间;
系统自动将某一邮件的来往信件归于一组,并以对话的形式排列;
除相关的文字广告(实际上就是Google关键词广告)外,邮件不附带任何弹出广告或其他形式的图像广告。
  听起来象是一道美味的免费午餐,但是且慢,如果你了解了背后的一些内情,你也许就会觉得这顿免费大餐并非象看起来的那么诱人。

  ■ 个人隐私

  这是Google Gmail最引人争议的问题。要了解为什么Gmail会对用户隐私构成潜在威胁,还要从邮件附带的Adwords广告说起。

  按Google的说法,邮件中附带的Adwords广告将根据用户邮件的内容自动发布。由此可以推断,Google肯定会对邮件的内容进行扫描,并据此判断发布哪些与邮件内容相关的广告。对用户来说,如果邮件中包含一些敏感内容,一经Google扫描,个人隐私必将暴露无遗。虽然Google坚称邮件内容扫描由程序控制,不会人工进行干预,并且会严格保守用户信件的秘密,但其做法到底还是对用户隐私的一种侵犯,对任何一个个体这都不是件令人快慰的事。何况在特殊情况下,用户信息被某个组织机构或个人所利用的可能性并非完全不存在。

  Google推出Gmail的初衷也许是为了回应Yahoo和MSN在搜索引擎方面给自己带来的竞争压力,同时由于上市在即,也可为今后在收益增长方面埋下伏笔。然而实际效果却是一石激起千层浪,在社会上引起了极大的反响,不少美国和欧洲个人隐私保护组织都对Google的做法提出了强烈置疑。


  ■ 信息所有权

  Google Gmail容量高达1G,而且Google告诉你今后你再也不用随时想着删除以前的邮件,从这一角度看,Gmail确实对用户体贴入微。但反过来,如果你根本无法删除个人邮件,你又做何感想?

  根据Google的说明,Gmail的用户将无法完全删除邮箱中的邮件,即使用户界面显示邮件已经删除,或甚至关闭Gmail帐户后,邮件仍将保留在Google服务器上。这样就引发了一个问题,即Google到底有没有权利占有用户的信息资料,也就是说用户对个人信息还拥不拥有所有权?

  Google保留用户邮件的目的尚不得而知。但从商业统计角度说,大量看似无用的邮件经过分析归纳,完全可以挖掘出许多有价值的信息,包括用户总体及个体的行为模式、喜好倾向等等等等。其实个人信息的收集一直是个敏感的话题。Google搜索引擎的用户也许并未意识到,直到2038年,Google在你电脑中植入的cookie将不断地把你的搜索行为报告给Google。幸亏浏览器至少还允许用户通过拒绝cookie来防止个人隐私的泄漏,然而当用户没有了这种主动权(比如无法自主决定个人邮件的去留),个人隐私的保护也就无从谈起。

  Google对其免费邮件系统所引发的争议显然没有做好思想准备。Google创始人之一Larry
Page对此的反应是"我对这些问题感到非常的意外"。Google毕竟是个成立只有4年的年轻公司,就象一个成绩拔尖的在校学生,虽然学业有成但社会经验尚显不足。这次免费邮箱风波对Google的成长无疑将大有助益。

  ■ Google的选择

  Google对Gmail的开发已持续了好几年,准备将它作为一个新的利润来源渠道,同时还可以对Yahoo、MSN现有的邮箱收费服务模式来个釜底抽薪,可谓一石二鸟。然而个人隐私问题却让Google有些左右为难。尊重了用户隐私,那么对Google来说Gmail就根本没有了存在的必要,也意味着数年的开发投入全部付之东流;如果继续推行现有的Gmail,不仅会招致用户的抗议,而且政府管理部门也有可能介入。更有甚者,出于保护个人隐私的考虑,用户将弃Gmail而去,最终使得Google当初的计划落空。

  目前Google的出路似乎有这么几条:要么干脆放弃Gmail计划,要么将免费邮箱改为收费,再或者去掉Adwords广告,提供完全的免费邮箱,但哪条路看起来似乎都不符合Google的利益。因此,Google目前的处境绝非尴尬一词可以形容。

网站排名基本原则

在搜索引擎的"远古"时代,搜索结果的排列只是以搜索引擎在数据库中找到匹配网页的先后次序排列,但人们很快意识到这种搜索根本是无效的。实际上用户在信息检索时,最关心的是如何在最短时间内找到想要的东西,因此对搜索引擎提出了更高的要求,即不仅限于简单返回数据库检索结果,还应该对这些结果进行再加工,判断哪些最符合用户搜索意图,然后优先排列最匹配的网页。这便是搜索引擎发挥作用的最基本原则――相关性原则,有人更是将之上升为搜索引擎的"第一定律"。

 从搜索引擎登录角度上看,相关性原则对网站也意义非凡。我们总是想让自己的网站信息优先出现在搜索结果中,以便吸引更多的访问者,因此了解搜索引擎在网站排名方面的一些规则,对于我们登录搜索引擎并获得理想的搜索排名会有相当大的帮助。

 由于网页"相关性"是我们进行网页优化的最终目的,因此需要对其做进一步的探讨。

 所谓相关性,就是指网站信息符合搜索条件的程度。搜索引擎在判断关联性时,基本上是根据网页中关键词的"匹配/位置/频次"原则,就是说网站内容中的字词、词组或短语与用户输入的关键词越匹配,出现的次数越多,则该网站的关联程度越高,在搜索结果中排名也越靠前。

 随着互联网规模的不断发展,搜索引擎技术也在不断完善。为了给用户提供更有价值的搜索服务,目前各引擎在原有相关性基础上,逐步在排名规则中引入了网站主题和受欢迎程度的概念,具体体现为:一个网站的内容主题越集中,相关的外部链接越多,网站获得的点击率越高,则排名会越靠前。

 当然万变不离其宗,这一切还是要基于信息关联的基础上的。即使你的网站主题突出,很受访问者的欢迎,但如果内容与用户的搜索条件不符,你仍旧是无法获得好名次的。这一点不难理解。

网站排名基本原则

 在搜索引擎的"远古"时代,搜索结果的排列只是以搜索引擎在数据库中找到匹配网页的先后次序排列,但人们很快意识到这种搜索根本是无效的。实际上用户在信息检索时,最关心的是如何在最短时间内找到想要的东西,因此对搜索引擎提出了更高的要求,即不仅限于简单返回数据库检索结果,还应该对这些结果进行再加工,判断哪些最符合用户搜索意图,然后优先排列最匹配的网页。这便是搜索引擎发挥作用的最基本原则――相关性原则,有人更是将之上升为搜索引擎的"第一定律"。

 从搜索引擎登录角度上看,相关性原则对网站也意义非凡。我们总是想让自己的网站信息优先出现在搜索结果中,以便吸引更多的访问者,因此了解搜索引擎在网站排名方面的一些规则,对于我们登录搜索引擎并获得理想的搜索排名会有相当大的帮助。

 由于网页"相关性"是我们进行网页优化的最终目的,因此需要对其做进一步的探讨。

 所谓相关性,就是指网站信息符合搜索条件的程度。搜索引擎在判断关联性时,基本上是根据网页中关键词的"匹配/位置/频次"原则,就是说网站内容中的字词、词组或短语与用户输入的关键词越匹配,出现的次数越多,则该网站的关联程度越高,在搜索结果中排名也越靠前。

 随着互联网规模的不断发展,搜索引擎技术也在不断完善。为了给用户提供更有价值的搜索服务,目前各引擎在原有相关性基础上,逐步在排名规则中引入了网站主题和受欢迎程度的概念,具体体现为:一个网站的内容主题越集中,相关的外部链接越多,网站获得的点击率越高,则排名会越靠前。

 当然万变不离其宗,这一切还是要基于信息关联的基础上的。即使你的网站主题突出,很受访问者的欢迎,但如果内容与用户的搜索条件不符,你仍旧是无法获得好名次的。这一点不难理解。

目录索引

  与全文搜索引擎相比,目录索引有许多不同之处。

  首先,搜索引擎属于自动网站检索,而目录索引则完全依赖手工操作。用户提交网站后,目录编辑人员会亲自浏览你的网站,然后根据一套自定的评判标准甚至编辑人员的主观印象,决定是否接纳你的网站。

  其次,搜索引擎收录网站时,只要网站本身没有违反有关的规则,一般都能登录成功。而目录索引对网站的要求则高得多,有时即使登录多次也不一定成功。尤其象Yahoo!这样的超级索引,登录更是困难。(由于登录Yahoo!的难度最大,而它又是商家网络营销必争之地,所以我们会在后面用专门的篇幅介绍登录Yahoo雅虎的技巧)

  此外,在登录搜索引擎时,我们一般不用考虑网站的分类问题,而登录目录索引时则必须将网站放在一个最合适的目录(Directory)。

  最后,搜索引擎中各网站的有关信息都是从用户网页中自动提取的,所以用户的角度看,我们拥有更多的自主权;而目录索引则要求必须手工另外填写网站信息,而且还有各种各样的限制。更有甚者,如果工作人员认为你提交网站的目录、网站信息不合适,他可以随时对其进行调整,当然事先是不会和你商量的。

  目录索引,顾名思义就是将网站分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。如以关键词搜索,返回的结果跟搜索引擎一样,也是根据信息关联程度排列网站,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后顺序决定(也有例外)。

  目前,搜索引擎与目录索引有相互融合渗透的趋势。原来一些纯粹的全文搜索引擎现在也提供目录搜索,如Google就借用Open
Directory目录提供分类查询。而象 Yahoo!
这些老牌目录索引则通过与Google等搜索引擎合作扩大搜索范围(注)。在默认搜索模式下,一些目录类搜索引擎首先返回的是自己目录中匹配的网站,如国内搜狐、新浪、网易等;而另外一些则默认的是网页搜索,如Yahoo。

全文搜索引擎

搜索引擎基本工作原理
了解搜索引擎的工作原理对我们日常搜索应用和网站提交推广都会有很大帮助。


........................................................................................
 全文搜索引擎
  在搜索引擎分类部分我们提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出"蜘蛛"程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。

  另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出"蜘蛛"程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于近年来搜索引擎索引规则发生了很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,因此目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。

  当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法――通常根据网页中关键词的匹配程度,出现的位置/频次,链接质量等――计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。

人肉搜索引擎

实际上,这里所说的人肉搜索引擎就是指更多的利用人工参与来提纯搜索引擎提供的信息的一种机制。猫扑的人肉搜索引擎就是其中一个比较成功的例子。后面我们会根据猫扑的人肉搜索引擎给出一个更加具体的描述。

针对搜索引擎的Link Farm和Spam也许永远不会停止,因为他们能够从他们的作恶中得到利益。我们知道得到利益不是作恶的唯一原因,然而大规模的工业化的作恶唯一的原因当然是那样可以得到利益。

所以,这是一场永远无法结束的战争,只要搜索引擎还是应用最广泛的一种互联网应用,只要搜索引擎还是用户用户找到合适服务的最主要手段,这就是一场永远无法结束的战争。很多人把问题归结于PageRank技术,历史是何其相似啊,当年人们也是这样地抱怨META关键字和描述技术。也许Google或者其他的公司能够研究出来更加伟大的技术(注一)来取代PageRank,但是谁知道这新的技术什么时候又会变成明日黄花。

搜索引擎是利用机器自动化的收集网络信息并有序化的一种技术。搜索引擎高效快速,然而因为现在人工智能并不完善,搜索引擎还很难甄别刻意的修饰过的信息,所以SEO
Spam才会那么猖獗。所以,有些人想从搜索引擎的反面来解决问题,那就是更多的利用人工把搜索引擎得到的信息进一步萃取,进一步有序化,我们称之为人肉搜索引擎。

很多人知道的中国有一个叫做猫扑的论坛,人气非常旺。Tiny在2001年到2004年期间是这个论坛的忠实用户。在我的印象中,人肉搜索引擎的概念应该出自于猫扑。

跟很多论坛一样,猫扑上面也经常有人问这个问题那个问题。同时猫扑有种虚拟货币叫做Mp,问问题的人往往会用Mp来奖励可以帮助他们的人。虽然Mp不能吃不能喝,但是还是很多人醉心于挣取更多的Mp(注二)。那些惯于通过回答问题挣取Mp的人在猫扑一般叫做赏金猎人。

于是很有趣味的一幕出现了,某人需要解决一个问题,就在猫扑发贴并许与一定数量的Mp作为酬谢。很快,就会有赏金猎人看到这个贴子,他们就会去用搜索引擎来寻找问题的答案,然后争先恐后地把找到的答案回在帖子里面邀功。最后,提问题的人得到了答案,赏金猎人得到了Mp,皆大欢喜。这也就形成了所谓的人肉搜索引擎的机制。有趣的是,我们可以发现人肉搜索引擎的搜索流程和搜索引擎在不同服务器之间的分布式搜索流程看起来是那么的相似,区别仅仅在于发动和执行流程的是人,还是机器。

人肉搜索引擎的质量怎样保证呢?这是一个非常有趣的问题,从刚才的流程上大家可以发现,如果有足够多的赏金猎人,他们之间就会产生竞争,寻找资料速度的竞争,资料准确性的竞争。竞争的结果是,一个速度又快资料又准确全面的赏金猎人会有越来越多的Mp,这会给他带来更多的成就感(注三),同时他也会更加的醉心于赏金猎人的工作。甚至,据我所知很多赏金猎人会形成自己的职业道德和行为准则,这样可以给他们更大的自我实现,同时提高了用户的满意程度。这就形成可一个正反馈,一个良性循环,前提是有足够的激励(Mp)投入和足够产生竞争的参与者(赏金猎人)。

同时很多人也为自己是一个人肉搜索引擎的用户感到自豪,因为这确实太好用了,不需要担心分词不准确,不用担心电脑错误的理解了你的话,不用担心搜索引擎收录范围不同造成的风险(注四),甚至不需要学习搜索引擎怎么用(注五),而且答案也不会仅仅局限于搜索引擎能找到的信息,虽然绝大部分问题是通过搜索引擎就可以找到的。

然而,人肉搜索引擎几年来仅仅是一个概念,没有成为一种产品,在猫扑,人肉搜索引擎只能帮助猫扑提升人气,并不能成为一个产品给猫扑带来效益,同时也给更多的人服务。这是为什么呢?我想可能有4点原因:
1、猫扑人肉搜索引擎和论坛的差异不够明显。或者说在猫扑里,人肉搜索引擎只是论坛的一种应用而已,任何需要人肉搜索引擎服务的人必须是论坛的用户,这降低了用户普及度(注六)。
2、Mp过于游戏化。Mp是虚拟货币,是游戏化的货币,这也给猫扑的人肉搜索引擎加上了游戏性的标签。做赏金猎人的人仅仅是喜欢这个游戏化氛围的人,或者说是能被Mp这样的虚拟货币激励的人,这影响了赏金猎人队伍的扩大,从而影响了人肉搜索引擎的扩大。
3、人肉搜索引擎的反映比较慢。Google可以在0.00001秒内给你一个答案,然而人肉搜索引擎需要等待有人看到你的帖子,并找出结果才会有所反应。
4、猫扑人肉搜索引擎不能保留历史纪录,每次有一个问题出现,就会引发一次分布式搜索。即使问题是重复的,也会同样引发这个流程,而且相同的问题在不同的时间问,答案可能迥异(注七),不能对相同答案给予一致性的结果。

或者说,我觉得以上4点如果能够解决,人肉搜索引擎将能帮助我们更快更好的找到有用的信息。
-------------------
注一:按照某些人的猜测,新的搜索引擎页面估值革命性技术也许是利用Google加速器记录的用户访问行为来评估网站的流量,这个方案可以解决PageRank的动态性不足问题。然而这个方案和Alexa何其的类似,一旦出台新一轮的作弊风潮一定出现,可以想象每个商业网站都会要求员工安装Google加速器了,就像他们现在要求员工安装Alexa一样。当然Google的技术实力远非Alexa可比,一切也还仅仅是某些人的猜测。题外话,如果Google真的有一天声称会用Google加速器的访问记录来评估网站,那么Google加速器在中国安装量一定会非常的惊人,看起来这倒可以作为一个不错的推广方法。

注二:这实际上就是Mp机制带来的游戏性造成的,在分析猫扑的时候,Mp是一个关键,它造成了猫扑的游戏性,而猫扑的游戏性应该是它一直以来人气旺盛的主要原因。有人甚至说猫扑就是最好玩的网游,这还是有一定道理的。

注三:我猜测这是Mp机制的动力,也是其他的游戏机制的动力。

注四:传统搜索引擎用户一般情况下只用一种习惯的搜索引擎,但你需要的某资料恰好只被你不用的那种搜索引擎收录的时候,你的习惯就会让你和你需要的资料擦肩而过。然而人肉搜索引擎略有不同,在赏金猎人足够多的情况下,他们各自不同的习惯正好弥补了这种问题带来的风险。

注五:有些信息必须利用高级的搜索引擎技巧才能找到,然而这些技巧很难被最大数量的用户所掌握。这里我们突然发现,人肉搜索引擎的另一个优点,因为它促进了分工,赏金猎人如果想成功一定会比较了解这些高级的搜索引擎技巧的。

注六:作为中国最有人气的论坛,猫扑的用户量也就是十万级的,而搜索引擎的用户量往往是千万级的。

注七:因为时间不同所以前来解决问题的赏金猎人也不同,所以答案也往往不同。

搜索引擎

新华网北京5月2日电(冯晓芳、周丹丹)根据中国互联网数据中心统计表明,中国综合搜索引擎格局正在发生深刻变化:搜索引擎市场第一阵营与第二阵营之间差距正在缩小,第二阵营两大竞争对手谷歌和搜搜不相伯仲。虽然谷歌仍以微弱优势领先,但腾讯搜搜以其较强大的用户群为基础,结合各种有效的网络推广方式,正在有力扩张用户市场份额。

今年第一季度,百度以较为领先的优势占领搜索引擎市场,前3个月的访问率(实际使用了搜索功能与到达其页面的比例)均在85%以上,其中3月份的访问率高达88.7%。

谷歌和搜搜紧随其上,成为市场第二阵营。谷歌在今年第一季度的月度访问率呈现持续上升态势,从1月份的49.3%上升到3月份的54.4%;搜搜从40.8%上升到42.3%,作为腾讯公司推出不久的搜索服务,搜搜的表现值得关注。

雅虎搜索前3个月的平均月度访问率为14.9%和其他搜索引擎网站一起,构成中国搜索引擎市场的第三阵营。

谷歌董事长埃里克・施密特曾表示,谷歌进入中国市场较晚,但正在迎头赶上。在搜索方面,谷歌的服务和质量提高都很快,而且在向领先地位前进。

同为第二阵营的腾讯搜搜,拥有不容小视的潜在竞争实力。2007年,腾讯拥有超过2.3亿QQ即时通讯用户、QQ游戏同时在线人数最高达271万。在腾讯独有的"搜吧"服务中,用户可直接用QQ号登录。这笔资源,正是腾讯搜搜与百度、谷歌正面争夺网络广告市场的本钱。

日前备受关注的微软收购雅虎案日前陷入"拉锯战"。毅联汇业(ICAP)公司经济分析师萨钦・沙阿说,寄望于联手雅虎抗衡谷歌,微软不会"放走"雅虎。2005年,雅虎公司与中国电子商务公司阿里巴巴实现战略性合作,合作双方期望共同打造中国最具优势的互联网搜索平台。从目前的数据看,尽管雅虎搜索在中国的优势并不明显,但以其固有基础,如若微软成功收购雅虎,雅虎搜索极可能会有大的动作以抗衡其固有竞争对手谷歌,这极可能会波及雅虎搜索在中国的业务。

目前,百度仍然是中国搜索引擎市场的行业老大,但对于变化中的互联网市场而言,究竟谁最终能执掌行业牛耳,人们只能拭目以待。

php java 比较

PHP的主要语言开发者之一、Zend公司的创始人之一Andi
Gutmans最近在blog中直言不讳地批评了Java语言。他指出,目前Java厂商试图在JVM上提供动态语言实现的路子根本不对,Java已经输掉了Web开发语言的战争,PHP是事实上的标准和胜利者。

  Gutmans的这篇文章在技术界引发了强烈争议,很对人对此有不同的意见,我在这里就阐述一下我对PHP和Java两种语言的看法。

  我早先曾经在《Perl、PHP、ASP、JSP技术比较》一文中对比过PHP和Java的异同,简而言之,PHP是一种解释执行的脚本语言,语法和C语言类似,易学易用,不懂电脑的非专业人员稍经学习也能使用PHP.而Java要先编译成Class文件,然后在Java虚拟机上执行,Java开发需要熟悉Java语法以及一些核心的架构,从而实现一种可复用的、跨平台的软件,Java比PHP要难学的多。

  实际上,从技术架构来说,Java语言相比PHP有明显的优势,Java使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。PHP只能实现简单的分布式两层或三层的架构,而JAVA可以实现多层架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用Java的web开发技术实现了MVC的设计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。从数学运算和数据库访问速度来讲,Java的性能也优于PHP.实际上,对于跨平台的大型的企业应用系统来讲,Java几乎已经成为唯一的选择(微软.NET不支持跨平台),但是在于Web网站应用开发来讲,Java却面临着被PHP边缘化的危险,几乎所有的虚拟主机都支持PHP+MySQL,而支持Java的却少之又少,在资源上,网上有不计其数的PHP资源,很多著名的大型网站(例如Facebook、Mediawiki等)都是基于PHP的,而成功的Java网站却寥寥无几,这又是什么原因呢?

  Java的理念是"一次编写,到处运行",Java在应用框架底下的架构是无与伦比的,远胜过其他任何语言,Java的框架利于大型的协同编程开发,系统易维护、可复用性较好。而PHP很容易自学,让热备能快速简洁地编写代码,适合于快速开发,中小型应用系统,开发成本低。在调试、发布上,PHP也较Java简单。

  理念上的不同导致了Java和PHP在Web应用开发上显示了不同的结果,尽管Java的数学计算和数据库访问都有优势,架构也相当完美,但是PHP却可以简单轻松地支持高强度Web访问,能够快速开发应用,支持PHP的虚拟主机多如牛毛,使得用PHP开发一个网站比用Java开发一个网站要快得多,容易的多。Java所拥有的优点只适合传统的以软件项目为核心的开发模式,而PHP更适合于以客户为核心的SaaS的开发模式,因此,PHP目前在Web网站开发的优势完全是因为Web网站开发的特殊性而导致的,并非编程语言特性所决定。

  因此,PHP在Web网站开发语言的战争中已经慢慢将Java抛在了后面,Java要想在Web网站开发上奋起直追,的确应该多听听Andi
Gutmans的意见,彻底改变一下思路才行,否则两者的差距只能是越来越远。

  另外,虽然在国际上LAMP(Linux+Apache+Mysql+Php)架构已经占领了统治地位,但是在中国国内还有一个怪胎,就是基于微软的Windows
Server+IIS+SqlServer+ASP/ASP.NET的架构,从理论上说,微软的这一套架构也能实现不错的性能,只可惜Windows和SqlServer价格不菲,整个架构在性能上比起LAMP不仅没有什么优势,反而还有不少劣势,因此微软的这一套家伙在国际市场上吃不开。而国内使用微软盗版则可以忽略成本,而ASP的易学易用性不逊于PHP,甚至连IT外行都能够使用,因此在国内也有不小的市场。但是随着中国在保护知识产权方面的日趋完善,免费的LAMP依旧是未来的趋势。

基本搜索引擎优化策略

为什么有的网站能在搜索引擎上排名很好,而有的却连找到找不到呢?这个秘密何在呢?正如免费搜索引擎上的指导方针所说,有五个因素你是必须铭记于心的:

1、 你网站的内容与主题。
2、 每页的关键字数。
3、 关键字放置的位置。
4、 点击量。
5、 链接数量。
1、 搜索引擎优化策略:网站内容

网站的实际内容是你网络优化策略的一个重要的因素。如果你想你的网站能在搜索结果中排得靠前,在你的网站中必须有实际的内容。搜索引擎的蜘蛛基本上是一个瞎子。他们只能对你网页内容进行判断你网站的质量,而不能从图片、flash动画上判断。在所有的页面中有充足的内容给搜索引擎进行索引是一个成功搜索引擎优化策略的基本需要。很容易明白,为什么一个没什么内容的网站很难排上去。人们在查找信息的时候,总是希望找到一个包括很多重要信息的网站。很自然,网页内容丰富的网站要比那些网页内容还那么丰富的网站排名要好得多。每个为他们的网站进行优化的站主牢记。不要忘记更新你的网站。无论是搜索引擎还是访问者都希望看到比较新的信息。这是什么意思呢?这就要求你要收集大量的信息,专注于这领域的变化。

2、搜索引擎优化策略:关键字密度

网页上通常会有数以百计的词语,那么搜索引擎怎样去分辨哪些是描述你的网站的重要的词语呢?搜索引擎会统计你一个页面的字数。那些重复出现的词或短语被认为比较重要些。搜索引擎利用自身的算法来统计你页面中每个字的重要程度。关键字数与该页面字数的比例称为关键字密度,这是一个搜索引擎优化策略最重要的一个因素。

为了得到更好的排名,你的关键字必须在页面中出现若干次,或者在搜索引擎允许的范围内。
怎样才能知道关键字的密度是多少才能得到较好的排名呢?很简单,只要你在搜索引擎中搜索你要优化的关键字,然后统计一下排在前面几个网站该关键字的密度就可以了。当然也有很多统计关键字密度的工具(你可以在本站上找到)。

3、 索引擎优化策略:突出关键字

在有价值的地方放置关键字,当你统计完你的页面需要多少个关键字后,接下来就是考虑把你的关键字放在网页的什么地方。突出关键字是吸引搜索引擎注意的一个最重要的因素。搜索引擎将会专注于你网页中某一部分的内容,处于这一关注部分的词语显得比其他部分的词语要重要得多。这就是所谓的"突出关键字"。

A: Title 和meta 标签:在上一节已经提到,title
标签是网页中最重要的标签。所以在title中放置关键字显得非常重要。有一些搜索引擎会额外的注意"描述"与"关键字"标签。

B: 标题(headings)

2008年5月3日星期六

西藏獒

西藏獒是举世公认的最古老而仅存于世的稀有犬种,在古老的东方有关藏獒神奇的传说已被神话为英勇护主事迹的化身。他不仅漂亮、雄壮、威武、另人*的气势更使的宵小及凶残*动物如狮豹、野狼不寒而栗,而且他忠心护主的天性,不仅是游牧民族的最佳保护犬,同时也被认定是国王、部落首长的最佳护卫犬。
  目前品相最好的上品藏獒,出于西藏的河曲地区。这种藏獒有典型的喜马拉雅山地犬的原始特征:茂密的鬃毛像非洲雄狮一样,前胸宽阔,目光炯炯有神,含蓄而深邃。喜马拉雅山脉的严酷环境赋予了藏獒一种粗犷、剽悍美、刚毅的心理承受能力,同时也赋予藏獒王者的气质,高贵、典雅、沉稳、勇敢。还有一种藏獒出于青海地区。这种藏獒几乎没有鬃毛,身上的毛也比较短,体型却更大!但是它的性格没有带鬃毛的藏獒凶猛、沉稳。
  藏獒的性格和气质与中国古典哲学相吻合:大智若愚、大勇若怯。藏獒的目光很典型:总是微微闭着双眼,眼神之中含有一种蔑视的神态,那种处变不惊的沉稳气度颇具王者风范。举个例子,如果有人敲门,藏獒只是机警地把头朝向门的方向,像往常一样眯着眼睛,一种蔑视的目光等待着事态进一步发展。开门后,如果进来的人非常高声地一边说话一边往里走,藏獒才会用低沉的、浑厚的、具有无穷穿透力的、轻轻的呜呜声,警告来人到别人家里说话声音不要太高!就是这种轻轻的声音,完全可以让那些冒失的人突然变得有礼貌。
  藏獒是出色的护卫犬,几乎不用进行任何训练就具有很好的护卫功能,而且自然就懂得要攻击颈动脉。而且藏獒还具有一副令人望而生畏的身材,它头颈部茂密的鬃毛,使它的头显得很大,陌生人很难不惧怕这种具有原始野性的"狮子"!

2008年4月29日星期二

Lucene 简介

Lucene 简介

Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene
目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。

目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能。Lucene
能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进行索引和搜索。比如你要对一些
HTML 文档,PDF 文档进行索引的话你就首先需要把 HTML 文档和 PDF 文档转化成文本格式的,然后将转化后的内容交给 Lucene
进行索引,然后把创建好的索引文件保存到磁盘或者内存中,最后根据用户输入的查询条件在索引文件上进行查询。不指定要索引的文档的格式也使
Lucene 能够几乎适用于所有的搜索应用程序。

图 1 表示了搜索应用程序和 Lucene 之间的关系,也反映了利用 Lucene 构建搜索应用程序的流程:


图1. 搜索应用程序和 Lucene 之间的关系


回页首


索引和搜索

索引是现代搜索引擎的核心,建立索引的过程就是把源数据处理成非常方便查询的索引文件的过程。为什么索引这么重要呢,试想你现在要在大量的文档中搜索含有某个关键词的文档,那么如果不建立索引的话你就需要把这些文档顺序的读入内存,然后检查这个文章中是不是含有要查找的关键词,这样的话就会耗费非常多的时间,想想搜索引擎可是在毫秒级的时间内查找出要搜索的结果的。这就是由于建立了索引的原因,你可以把索引想象成这样一种数据结构,他能够使你快速的随机访问存储在索引中的关键词,进而找到该关键词所关联的文档。Lucene
采用的是一种称为反向索引(inverted
index)的机制。反向索引就是说我们维护了一个词/短语表,对于这个表中的每个词/短语,都有一个链表描述了有哪些文档包含了这个词/短语。这样在用户输入查询条件的时候,就能非常快的得到搜索结果。我们将在本系列文章的第二部分详细介绍
Lucene 的索引机制,由于 Lucene 提供了简单易用的
API,所以即使读者刚开始对全文本进行索引的机制并不太了解,也可以非常容易的使用 Lucene 对你的文档实现索引。

对文档建立好索引后,就可以在这些索引上面进行搜索了。搜索引擎首先会对搜索的关键词进行解析,然后再在建立好的索引上面进行查找,最终返回和用户输入的关键词相关联的文档。


回页首


Lucene 软件包分析

Lucene 软件包的发布形式是一个 JAR 文件,下面我们分析一下这个 JAR 文件里面的主要的 JAVA 包,使读者对之有个初步的了解。

Package: org.apache.lucene.document

这个包提供了一些为封装要索引的文档所需要的类,比如 Document, Field。这样,每一个文档最终被封装成了一个 Document 对象。

Package: org.apache.lucene.analysis

这个包主要功能是对文档进行分词,因为文档在建立索引之前必须要进行分词,所以这个包的作用可以看成是为建立索引做准备工作。

Package: org.apache.lucene.index

这个包提供了一些类来协助创建索引以及对创建好的索引进行更新。这里面有两个基础的类:IndexWriter 和 IndexReader,其中
IndexWriter 是用来创建索引并添加文档到索引中的,IndexReader 是用来删除索引中的文档的。

Package: org.apache.lucene.search

这个包提供了对在建立好的索引上进行搜索所需要的类。比如 IndexSearcher 和 Hits, IndexSearcher
定义了在指定的索引上进行搜索的方法,Hits 用来保存搜索得到的结果。


回页首


一个简单的搜索应用程序

假设我们的电脑的目录中含有很多文本文档,我们需要查找哪些文档含有某个关键词。为了实现这种功能,我们首先利用 Lucene
对这个目录中的文档建立索引,然后在建立好的索引中搜索我们所要查找的文档。通过这个例子读者会对如何利用 Lucene
构建自己的搜索应用程序有个比较清楚的认识。


回页首


建立索引

为了对文档进行索引,Lucene 提供了五个基础的类,他们分别是 Document, Field, IndexWriter,
Analyzer, Directory。下面我们分别介绍一下这五个类的用途:

Document

Document 是用来描述文档的,这里的文档可以指一个 HTML 页面,一封电子邮件,或者是一个文本文件。一个 Document
对象由多个 Field 对象组成的。可以把一个 Document 对象想象成数据库中的一个记录,而每个 Field 对象就是记录的一个字段。

Field

Field 对象是用来描述一个文档的某个属性的,比如一封电子邮件的标题和内容可以用两个 Field 对象分别描述。

Analyzer

在一个文档被索引之前,首先需要对文档内容进行分词处理,这部分工作就是由 Analyzer 来做的。Analyzer
类是一个抽象类,它有多个实现。针对不同的语言和应用需要选择适合的 Analyzer。Analyzer 把分词后的内容交给
IndexWriter 来建立索引。

IndexWriter

IndexWriter 是 Lucene 用来创建索引的一个核心的类,他的作用是把一个个的 Document 对象加到索引中来。

Directory

这个类代表了 Lucene 的索引的存储的位置,这是一个抽象类,它目前有两个实现,第一个是
FSDirectory,它表示一个存储在文件系统中的索引的位置。第二个是 RAMDirectory,它表示一个存储在内存当中的索引的位置。

熟悉了建立索引所需要的这些类后,我们就开始对某个目录下面的文本文件建立索引了,清单1给出了对某个目录下的文本文件建立索引的源代码。


清单 1. 对文本文件建立索引
package TestLucene;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.util.Date;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
/**
* This class demonstrate the process of creating index with Lucene
* for text files
*/
public class TxtFileIndexer {
public static void main(String[] args) throws Exception{
//indexDir is the directory that hosts Lucene's index files
File indexDir = new File("D:\\luceneIndex");
//dataDir is the directory that hosts the text files that to be indexed
File dataDir = new File("D:\\luceneData");
Analyzer luceneAnalyzer = new StandardAnalyzer();
File[] dataFiles = dataDir.listFiles();
IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true);
long startTime = new Date().getTime();
for(int i = 0; i < dataFiles.length; i++){
if(dataFiles[i].isFile() && dataFiles[i].getName().endsWith(".txt")){
System.out.println("Indexing file " +
dataFiles[i].getCanonicalPath());
Document document = new Document();
Reader txtReader = new FileReader(dataFiles[i]);
document.add(Field.Text("path",dataFiles[i].getCanonicalPath()));
document.add(Field.Text("contents",txtReader));
indexWriter.addDocument(document);
}
}
indexWriter.optimize();
indexWriter.close();
long endTime = new Date().getTime();

System.out.println("It takes " + (endTime - startTime)
+ " milliseconds to create index for the
files in directory "
+ dataDir.getPath());
}
}

在清单1中,我们注意到类 IndexWriter 的构造函数需要三个参数,第一个参数指定了所创建的索引要存放的位置,他可以是一个 File
对象,也可以是一个 FSDirectory 对象或者 RAMDirectory 对象。第二个参数指定了 Analyzer
类的一个实现,也就是指定这个索引是用哪个分词器对文挡内容进行分词。第三个参数是一个布尔型的变量,如果为 true
的话就代表创建一个新的索引,为 false
的话就代表在原来索引的基础上进行操作。接着程序遍历了目录下面的所有文本文档,并为每一个文本文档创建了一个 Document
对象。然后把文本文档的两个属性:路径和内容加入到了两个 Field 对象中,接着在把这两个 Field 对象加入到 Document
对象中,最后把这个文档用 IndexWriter 类的 add
方法加入到索引中去。这样我们便完成了索引的创建。接下来我们进入在建立好的索引上进行搜索的部分。


回页首


搜索文档

利用Lucene进行搜索就像建立索引一样也是非常方便的。在上面一部分中,我们已经为一个目录下的文本文档建立好了索引,现在我们就要在这个索引上进行搜索以找到包含某个关键词或短语的文档。Lucene提供了几个基础的类来完成这个过程,它们分别是呢IndexSearcher,
Term, Query, TermQuery, Hits. 下面我们分别介绍这几个类的功能。

Query

这是一个抽象类,他有多个实现,比如TermQuery, BooleanQuery, PrefixQuery.
这个类的目的是把用户输入的查询字符串封装成Lucene能够识别的Query。

Term

Term是搜索的基本单位,一个Term对象有两个String类型的域组成。生成一个Term对象可以有如下一条语句来完成:Term term
= new Term("fieldName","queryWord");
其中第一个参数代表了要在文档的哪一个Field上进行查找,第二个参数代表了要查询的关键词。

TermQuery

TermQuery是抽象类Query的一个子类,它同时也是Lucene支持的最为基本的一个查询类。生成一个TermQuery对象由如下语句完成:
TermQuery termQuery = new TermQuery(new
Term("fieldName","queryWord")); 它的构造函数只接受一个参数,那就是一个Term对象。

IndexSearcher

IndexSearcher是用来在建立好的索引上进行搜索的。它只能以只读的方式打开一个索引,所以可以有多个IndexSearcher的实例在一个索引上进行操作。

Hits

Hits是用来保存搜索的结果的。

介绍完这些搜索所必须的类之后,我们就开始在之前所建立的索引上进行搜索了,清单2给出了完成搜索功能所需要的代码。


清单2 :在建立好的索引上进行搜索
package TestLucene;
import java.io.File;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.FSDirectory;
/**
* This class is used to demonstrate the
* process of searching on an existing
* Lucene index
*
*/
public class TxtFileSearcher {
public static void main(String[] args) throws Exception{
String queryStr = "lucene";
//This is the directory that hosts the Lucene index
File indexDir = new File("D:\\luceneIndex");
FSDirectory directory = FSDirectory.getDirectory(indexDir,false);
IndexSearcher searcher = new IndexSearcher(directory);
if(!indexDir.exists()){
System.out.println("The Lucene index is not exist");
return;
}
Term term = new Term("contents",queryStr.toLowerCase());
TermQuery luceneQuery = new TermQuery(term);
Hits hits = searcher.search(luceneQuery);
for(int i = 0; i < hits.length(); i++){
Document document = hits.doc(i);
System.out.println("File: " + document.get("path"));
}
}
}

在清单2中,类IndexSearcher的构造函数接受一个类型为Directory的对象,Directory是一个抽象类,它目前有两个子类:FSDirctory和RAMDirectory.
我们的程序中传入了一个FSDirctory对象作为其参数,代表了一个存储在磁盘上的索引的位置。构造函数执行完成后,代表了这个IndexSearcher以只读的方式打开了一个索引。然后我们程序构造了一个Term对象,通过这个Term对象,我们指定了要在文档的内容中搜索包含关键词"lucene"的文档。接着利用这个Term对象构造出TermQuery对象并把这个TermQuery对象传入到IndexSearcher的search方法中进行查询,返回的结果保存在Hits对象中。最后我们用了一个循环语句把搜索到的文档的路径都打印了出来。好了,我们的搜索应用程序已经开发完毕,怎么样,利用Lucene开发搜索应用程序是不是很简单。

Solr

Solr 是一个可供企业使用的、基于 Lucene 的开箱即用的搜索服务器。对Lucene不熟?那么建议先看看下面两篇文档:

  实战Lucene,第 1 部分: 初识
Lucene:http://www.ibm.com/developerworks/cn/java/j-lo-lucene1/

  用Lucene加速Web搜索应用程序的开发:http://www.ibm.com/developerworks/cn/web/wa-lucene2/

  一、 solr介绍

  solr是基于Lucene
Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。它的官方网址在http://lucene.apache.org/solr/
.solr需要运行在一个servlet 容器里,例如tomcat5.5.solr在lucene的上层提供了一个基于HTTP/XML的Web
Services,我们的应用需要通过这个服务与solr进行交互。

  二、 solr安装和配置

  关于solr的安装和配置,这里也有两篇非常好的文档,作者同时也是 Lucene Java 项目的提交人和发言人:

  使用Apache Solr实现更加灵巧的搜索:http://www.ibm.com/developerworks/cn/java/j-solr1/index.html

  http://www.ibm.com/developerworks/cn/java/j-solr2/index.html

  下面主要说说需要注意的地方。

  Solr的安装非常简单,下载solr的zip包后解压缩将dist目录下的war文件改名为solr.war直接复制到tomcat5.5的webapps目录即可。注意一定要设置solr的主位置。有三种方法。我采用的是在tomcat里配置java:comp/env/solr/home的一个JNDI指向solr的主目录(example目录下),建立/tomcat55/conf/Catalina/localhost/solr.xml文件。

value="D:/solr/solr" override="true" />

  观察这个指定的solr主位置,里面存在两个文件夹:conf和data.其中conf里存放了对solr而言最为重要的两个配置文件schema.xml和solrconfig.xml.data则用于存放索引文件。

  schema.xml主要包括types、fields和其他的一些缺省设置。

  solrconfig.xml用来配置Solr的一些系统属性,例如与索引和查询处理有关的一些常见的配置选项,以及缓存、扩展等等。

  上面的文档对这两个文件有比较详细的说明,非常容易上手。注意到schema.xml里有一个

url

  的配置,这里将url字段作为索引文档的唯一标识符,非常重要。

  三、 加入中文分词

  对全文检索而言,中文分词非常的重要,这里采用了qieqie庖丁分词(非常不错:))。集成非常的容易,我下载的是2.0.4-alpha2版本,其中它支持最多切分和按最大切分。创建自己的一个中文TokenizerFactory继承自solr的BaseTokenizerFactory.

/**

* Created by IntelliJ IDEA.

* User: ronghao

* Date: 2007-11-3

* Time: 14:40:59

* 中文切词 对庖丁切词的封装

*/

public class ChineseTokenizerFactory extends BaseTokenizerFactory {

/**

* 最多切分 默认模式

*/

public static final String MOST_WORDS_MODE = "most-words".

/**

* 按最大切分

*/

public static final String MAX_WORD_LENGTH_MODE = "max-word-length".

private String mode = null.

public void setMode(String mode) {

if (mode==null||MOST_WORDS_MODE.equalsIgnoreCase(mode)

|| "default".equalsIgnoreCase(mode)) {

this.mode=MOST_WORDS_MODE.

} else if (MAX_WORD_LENGTH_MODE.equalsIgnoreCase(mode)) {

this.mode=MAX_WORD_LENGTH_MODE.

}

else {

throw new IllegalArgumentException("不合法的分析器Mode
参数设置:" mode).

}

}

@Override

public void init(Map args) {

super.init(args).

setMode(args.get("mode")).

}

public TokenStream create(Reader input) {

return new PaodingTokenizer(input, PaodingMaker.make(),

createTokenCollector()).

}

private TokenCollector createTokenCollector() {

if( MOST_WORDS_MODE.equals(mode))

return new MostWordsTokenCollector().

if( MAX_WORD_LENGTH_MODE.equals(mode))

return new MaxWordLengthTokenCollector().

throw new Error("never happened").

}

}

Apache Solr

导言
说起Apache Lucene,可以说无人不知,无人不晓,但是说道Apache Solr,恐怕知道的不多。看看Apache Solr的说明:

Solr是一个基于Lucene java库的企业级搜索服务器,包含XML/HTTP,JSON API, 高亮查询结果,faceted
search(不知道该如何翻译,片段式搜索),缓存,复制还有一个WEB管理界面。Solr运行在Servlet容器中。所以Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括Solr:
Solr是Lucene面向企业搜索应用的扩展。

在本篇文章中,我们先看看Solr向我们承诺了什么,或者说Solr宣称的特性们。

无废话Solr
Solr是一个拥有象WebService一样接口的独立运行的搜索服务器。你将能够通过HTTP协议以XML格式将文档放入搜索服务器(这个过程叫做索引),你能够通过HTTP协议的GET来查询搜索服务器并且得到XML格式的结果。Solr的特性包括:

高级的全文搜索功能
专为高通量的网络流量进行的优化
基于开放接口(XML和HTTP)的标准
综合的HTML管理界面
可伸缩性-能够有效地复制到另外一个Solr搜索服务器
使用XML配置达到灵活性和适配性
可扩展的插件体系

Solr使用Lucene并且扩展了它!
一个真正的拥有动态域(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema)
对Lucene查询语言的强大扩展!
支持对结果进行动态的分组和过滤
高级的,可配置的文本分析
高度可配置和可扩展的缓存机制
性能优化
支持通过XML进行外部配置
拥有一个管理界面
可监控的日志
支持高速增量式更新(Fast incremental Updates)和快照发布(Snapshot Distribution)
Schema(模式)
定义域类型和文档的域
能够驱动智能处理
声明式的Lucene分析器规范
动态域能够随时增加域
拷贝域功能允许对一个域进行多种方式的索引,或者将多个域联合成一个可搜索的域
显式类型能够减少对域类型的猜测
能够使用外部的基于文件的终止词列表,同义词列表和保护词列表的配置
查询
拥有可配置响应格式(XML/XSLT,JSON,Python,Ruby)的HTTP接口
高亮的上下文搜索结果
基于域值和显式查询的片段式搜索(Faceted Search)
对查询语言增加了排序规范
常量的打分范围(Constant scoring range)和前缀式查询-没有idf,coord,或者lengthNorm因子,对查询匹配的词没有数量限制
函数查询(Function Query)-通过关于一个域的数值或顺序的函数对打分进行影响
性能优化
核心
可插拔的查询句柄(Query Handler)和可扩展的XML数据格式
使用唯一键的域能够增强文档唯一性
能够高效地进行批量更新和删除
用户可配置的文档索引变化触发器(命令)
并发控制的搜索器
能够正确处理数字类型,从而能够进行排序和范围搜索
能够控制缺失排序域的文档
支持搜索结果的动态分组
缓存
可配置的查询结果,过滤器,和文档缓存实例
可插拔的缓存实现
后台缓存热启:当一个新的搜索器被打开时,可配置的搜索将它热启,避免第一个结果慢下来,当热启时,当前搜索器处理目前的请求(???)。
后台自动热启:当前搜索器缓存中最常访问的项目在新的搜索器中再次生成,能够在索引器和搜索器变化的时候高速缓存常查询的结果
快速和小的过滤器实现
支持自动热启的用户级别的缓存
复制
能够将使用rsync传输时改变的索引部分有效的发布
使用拉策略(Pull Strategy)来简化增加搜索器
可配置的发布间隔能够允许对时间线和缓存使用进行权衡选择
管理接口
能够对缓存使用,更新和查询进行综合统计
文本分析调试器,能够显示每个分析器每个阶段的结果
基于WEB的查询和调试输出:解析查询输出,Lucene的explain方法细节,能够解释为何某个文档打分低,被排除在结果中等等

2008年4月28日星期一

非洲为什么这么穷

非洲为什么这么穷? 标签: 非洲 奴隶 贫穷
15世纪末,在哥伦布刚刚到达美洲不久,全世界人口4亿左右,亚洲占一半以上,其余非洲有7000万人,欧洲有6000万人,美洲约4000万。到了18世纪初,美洲印第安人只剩下不到780万。经200年后,美洲印第安人目前人口约3600万。关于美洲印第安人口数量的变化,本人在其他文章里已有介绍,这里不多叙述。
20世纪初,欧洲人口达到4.5亿,亚洲10亿,非洲1亿多。亚非欧三个大洲,在500年间的人口变化,说明了什么?500年间,欧洲人口如果加上往美洲、澳洲的移民,增长8、9倍。亚洲增长5倍,非洲却增长有限,1倍都不到。又过了100年,到了21世纪初,非洲人口猛增到9亿以上,欧洲却增长缓慢,只达到7亿多。但是,非洲有三分之一的人口,处于每天收入一美元以下的绝对贫困。非洲的这个局面是如何造成的?
欧洲人到达美洲以后,首先造成美洲印第安人口的大量减少。为了获得廉价劳动力,欧洲人开始从非洲向美洲贩卖奴隶。这一行为,是造成非洲现在贫困的一个重要原因。据统计,欧洲人从非洲贩买的奴隶总数约2000万人,但是,这个数字是到达美洲奴隶主手中的数字,也就是成交的数字。在这个数字背后,非洲人口损失的数字要大得多。一般认为,在捕猎、集中、运输、贩卖的过程中,到达美洲奴隶主手中的一个奴隶背后,有4个奴隶的死亡。也就是说,400年的奴隶贸易,到达美洲2000万黑奴,共造成非洲的直接人口损失约1亿。
这样一个人口损失对非洲会造成什么影响?首先是生产力大大降低。基本上最好的劳动力都被欧洲人抓去作了奴隶,黑人为自己创造财富的能力消失殆尽;其次,人口繁殖能力下降。繁殖能力最旺盛的年龄段人口,大多被抓走或杀害,所以才会造成500年间非洲人口只增加了1倍不到;第三,文化传承断绝。非洲曾经也有灿烂的历史文化,但是,青壮年的消失,造成年龄断层,文化的延续被迫中断。而且,绝大多数人都在为逃避抓捕而躲藏,文化延续的工作根本无法继续;第四,部落冲突加剧。虽然欧洲人有先进的武器,但是,抓奴隶并非要打死人,欧洲人自己人手又不够,便鼓动各个黑人部落去抓其他部落的黑人,由此造成延续至今的部落血仇冲突。上述几个原因,使得非洲被迫远离世界各地文化、科学发展的重要阶段,人类一切最新的文明成果,几乎都与非洲无关。非洲除了供应奴隶,仿佛已经被世界遗忘。
欧洲废奴运动后,欧洲人追求财富的手段,并没有使得非洲摆脱灾难。废奴运动从理论上说,是因为启蒙思想传播的结果,其实并不完全如此。废奴运动得以实现的根本原因是,奴隶贸易的利润大大降低。原先运往美洲的奴隶,成本已经太高,于是,废奴运动后,欧洲人便开始把奴隶经济转移到非洲本土。加上非洲发现大量的金矿、钻石矿等,让黑人在非洲本土做奴隶,比贩卖到美洲要合算。由此,我们也就能够理解,当今非洲最富裕的国家南非,是全世界范围最后一个废除种族隔离制度的国家。
欧洲国家瓜分世界的野心,在非洲得到最充分的体现。最高峰的时候,非洲只剩下埃塞俄比亚这个唯一独立的国家。即便如此,墨索里尼还是短暂地占领了这块最后属于非洲人自己的土地。而且,墨索里尼的行为,得到了欧洲各国的认可。二次大战之后,伴随着殖民地独立运动,非洲国家也纷纷独立。但是,至今为止,非洲国家的边界,大多是欧洲殖民地当年留下的。欧洲人留下的边界,不顾非洲的历史,不顾非洲的民族,只顾相互之间的利益分配,造成很多民族的分裂,也给今天的非洲留下众多冲突的隐患。
把非洲瓜分完毕后,欧洲将非洲黑人变成各个宗主国自己的廉价劳动力。于是,贩卖奴隶造成的非洲人口数量低下,成为不利因素,欧洲便开始在非洲推动黑人人口增长。然而,人口的增长,目的只是就地变成奴役对象,非洲黑人基本上得不到受教育的机会,最终导致如今非洲人口猛增,教育水平低下,绝对贫困人口占三分之一的灾难性局面。
"钻石恒久远,一颗永流传",这个广告语在世界各地深入人心。很多年轻人结婚时,都要买一颗钻石。世界上最大的钻石产地在非洲,世界上最大的钻石生产、销售商却不属于非洲黑人。非洲钻石所获得的巨大利润,也不属于非洲人自己。因此,我反对购买非洲钻石。我们购买非洲钻石,等于是在帮助欧洲人,继续奴役非洲黑人。去年好莱坞的一部电影《血腥钻石》,则从另外一个角度,描述了钻石的罪恶。
随着殖民地时代的过去,亚洲、拉丁美洲独立国家,有一个鲜明的举动,就是将殖民地宗主国的财产收归国有,本国重要资源也由本国人民掌握。但是,这种情况在非洲却并不普遍,例如,非洲人口最多的国家尼日利亚,也是非洲石油拥有量最多的国家,尼日利亚经济在非洲排名第四,但同时也是非洲最穷的国家,三分之一绝对贫困的非洲人,集中在尼日利亚这一个国家。为什么?因为,尼日利亚的石油企业都属于西方石油公司。为什么?因为欧洲人野蛮殖民手段造成非洲文化的断裂,教育的贫乏,不像亚洲、拉丁美洲那样,至少还保留了一点自己的人才。非洲黑人普遍教育程度低下的状况,是欧洲殖民者直接造成的,至今还在危害着独立以后的非洲国家。
看看世界500年的历史,就会发现,欧洲人如今享受着舒适的生活,有多少是沾满血迹的财富,有多少是践踏别人生命的结果。当中国稍稍富裕一点,真心到非洲投资,帮助非洲人民共同富裕的时候,一些欧洲人居然说,中国人现在到非洲做的事情,同他们当年在非洲的殖民统治是一样的。亏他们说得出口,居然毫不脸红,毫不愧疚。欧洲人、美国人甚至胡说,中国企业在苏丹的投资,是造成达尔富尔地区人道主义灾难的原因,这也成为他们抵制北京奥运会的一个理由。斯皮尔伯格就是这样认为的。
只要我们了解一下非洲的历史,就会对欧美关于达尔富尔的言论感到愤慨。非洲最大的人道主义灾难,全部都是西方人直接或间接造成的,并且延续至今。中国历史上没有奴役过黑人,现在也没有欺负过黑人,而是真心和非洲黑人一起走上共同富裕的道路。欧美某些人针对中国在非洲的言论,正应了一句中国老话:天理何在。非洲大地上,该永远被钉上耻辱柱的,正是西方人自己。他们有过自我反省吗?

Lucene的简介

本文主要面向具体使用,适用于已熟悉java编程的lucene初学者。
1. Lucene的简介

1.1 Lucene 历史


org.apache.lucene包是纯java语言的全文索引检索工具包。
Lucene的作者是资深的全文索引/检索专家,最开始发布在他本人的主页上,2001年10月贡献给APACHE,成为APACHE基金jakarta的一个子项目。
目前,lucene广泛用于全文索引/检索的项目中。
lucene也被翻译成C#版本,目前发展为Lucene.Net(不过最近好象有流产的消息)。


1.2 Lucene 原理


lucene的检索算法属于索引检索,即用空间来换取时间,对需要检索的文件、字符流进行全文索引,在检索的时候对索引进行快速的检索,得到检索位置,这个位置记录检索词出现的文件路径或者某个关键词。
在使用数据库的项目中,不使用数据库进行检索的原因主要是:数据库在非精确查询的时候使用查询语言"like
%keyword%",对数据库进行查询是对所有记录遍历,并对字段进行"%keyword%"匹配,在数据库的数据庞大以及某个字段存储的数据量庞大的时候,这种遍历是致命的,它需要对所有的记录进行匹配查询。因此,lucene主要适用于文档集的全文检索,以及海量数据库的模糊检索,特别是对数据库的xml或者大数据的字符类型。


2.Lucene的下载和配置


2.1 Lucene的下载


lucene在jakarta项目中的发布主页:http://jakarta.apache.org/lucene/docs/index.html。以下主要针对windows用户,其它用户请在上面的地址中查找相关下载。


lucene的.jar包的下载(包括.jar和一个范例demo):
http://apache.oregonstate.edu/jakarta/lucene/binaries/lucene-1.4-final.zip


lucene的源代码下载:
http://www.signal42.com/mirrors/apache/jakarta/lucene/source/lucene-1.4-final-src.zip


lucene的api地址:http://jakarta.apache.org/lucene/docs/api/index.html


本文使用lucene版本:lucene-1.4-final.jar。


2.2 lucene的配置


首先请确定你的机子已经进行了java使用环境的基本配置,即确保在某个平台下能够运行java源代码,否则请查阅相关文档进行配置。
接下来进入lucene的配置:
普通使用者:在环境变量的CLASSPATH中添加lucene的位置。比如:"D:\java
\lucene-1.4-final\lucene-1.4-final.jar;"。
jbuilder使用者:在"Project"--"Project Properties"--"Required Libraries"进行添加。
Jsp使用者:也可以直接将lucene-1.4-final.jar文件放到\WEB-INF\classes下。


3. Lucene 的范例(Demo )


3.1 Demo说明


可以得到的Demo包括:lucene-demos-1.4-final、XMLIndexingDemo,lucene-demos-1.4-final中包括对普通文件和html文件的两种索引,XMLIndexingDemo针对xml文件的索引。他们的区别主要在于:对普通文件进行索引时只要对文件的全文进行索引,而针对html、xml文件时,对标签类型不能进行索引,在实现上:html、xml的索引需要额外的数据流分析器,以分析哪些内容有用哪些无用。因此,在后两者实现上,索引的时间额外开支,甚至超过索引本身时间,而检索时间没有区别。


以上Demo中,lucene-demos-1.4-final自带于lucene-1.4-final.zip中,XMLIndexingDemo的下载地址:
http://cvs.apache.org/viewcvs.cgi/jakarta-lucene-sandbox/contributions/XML-Indexing-Demo/


3.2 Demo的运行


首先将demo.jar的路径添加如环境变量的CLASSPATH中,例如:"D:\java\lucene-1.4-final\lucene-demos-1.4-final.jar;",同时确保已经添加lucene-1.4-final.jar。


然后进行文件的全文索引,在dos控制台中,输入命令"java
org.apache.lucene.demo.IndexFiles
{full-path-to-lucene}/src",后面的路径为所要进行索引的文件夹,例如:"java
org.apache.lucene.demo.IndexFiles c:\test"。


接着对索引进行检索,敲入"java
org.apache.lucene.demo.SearchFiles",在提示"Query:"后输入检索词,程序将进行检索列出检索得到的结果(检索词出现的文件路径)。

其他Demo的运行请参考\docs\demo.html。
在运行Demo后请阅读Demo的源代码以便深入学习。

Strassen矩阵乘法

Strassen矩阵乘法
矩阵乘法是线性代数中最常见的运算之一,它在数值计算中有广泛的应用。若A和B是2个n×n的矩阵,则它们的乘积C=AB同样是一个n×n的矩阵。A和B的乘积矩阵C中的元素C[i,j]定义为:

若依此定义来计算A和B的乘积矩阵C,则每计算C的一个元素C[i,j],需要做n个乘法和n-1次加法。因此,求出矩阵C的n2个元素所需的计算时间为0(n3)。

60年代末,Strassen采用了类似于在大整数乘法中用过的分治技术,将计算2个n阶矩阵乘积所需的计算时间改进到O(nlog7)=O(n2.18)。

首先,我们还是需要假设n是2的幂。将矩阵A,B和C中每一矩阵都分块成为4个大小相等的子矩阵,每个子矩阵都是n/2×n/2的方阵。由此可将方程C=AB重写为:

 (1)

由此可得:

C11=A11B11+A12B21 (2)

C12=A11B12+A12B22 (3)

C21=A21B11+A22B21 (4)

C22=A21B12+A22B22 (5)

如果n=2,则2个2阶方阵的乘积可以直接用(2)-(3)式计算出来,共需8次乘法和4次加法。当子矩阵的阶大于2时,为求2个子矩阵的积,可以继续将子矩阵分块,直到子矩阵的阶降为2。这样,就产生了一个分治降阶的递归算法。依此算法,计算2个n阶方阵的乘积转化为计算8个n/2阶方阵的乘积和4个n/2阶方阵的加法。2个n/2×n/2矩阵的加法显然可以在c*n2/4时间内完成,这里c是一个常数。因此,上述分治法的计算时间耗费T(n)应该满足:

这个递归方程的解仍然是T(n)=O(n3)。因此,该方法并不比用原始定义直接计算更有效。究其原因,乃是由于式(2)-(5)并没有减少矩阵的乘法次数。而矩阵乘法耗费的时间要比矩阵加减法耗费的时间多得多。要想改进矩阵乘法的计算时间复杂性,必须减少子矩阵乘法运算的次数。按照上述分治法的思想可以看出,要想减少乘法运算次数,关键在于计算2个2阶方阵的乘积时,能否用少于8次的乘法运算。Strassen提出了一种新的算法来计算2个2阶方阵的乘积。他的算法只用了7次乘法运算,但增加了加、减法的运算次数。这7次乘法是:

M1=A11(B12-B22)

M2=(A11+A12)B22

M3=(A21+A22)B11

M4=A22(B21-B11)

M5=(A11+A22)(B11+B22)

M6=(A12-A22)(B21+B22)

M7=(A11-A21)(B11+B12)

做了这7次乘法后,再做若干次加、减法就可以得到:

C11=M5+M4-M2+M6

C12=M1+M2

C21=M3+M4

C22=M5+M1-M3-M7

以上计算的正确性很容易验证。例如:

C22=M5+M1-M3-M7

=(A11+A22)(B11+B22)+A11(B12-B22)-(A21+A22)B11-(A11-A21)(B11+B12)

=A11B11+A11B22+A22B11+A22B22+A11B12

-A11B22-A21B11-A22B11-A11B11-A11B12+A21B11+A21B12

=A21B12+A22B22

由(2)式便知其正确性。

至此,我们可以得到完整的Strassen算法如下:

procedure STRASSEN(n,A,B,C);begin if n=2 then MATRIX-MULTIPLY(A,B,C)
else begin 将矩阵A和B依(1)式分块;
STRASSEN(n/2,A11,B12-B22,M1);
STRASSEN(n/2,A11+A12,B22,M2);
STRASSEN(n/2,A21+A22,B11,M3);
STRASSEN(n/2,A22,B21-B11,M4);
STRASSEN(n/2,A11+A22,B11+B22,M5);
STRASSEN(n/2,A12-A22,B21+B22,M6);
STRASSEN(n/2,A11-A21,B11+B12,M7);
;
end;
end;
其中MATRIX-MULTIPLY(A,B,C)是按通常的矩阵乘法计算C=AB的子算法。

Strassen矩阵乘积分治算法中,用了7次对于n/2阶矩阵乘积的递归调用和18次n/2阶矩阵的加减运算。由此可知,该算法的所需的计算时间T(n)满足如下的递归方程:

按照解递归方程的套用公式法,其解为T(n)=O(nlog7)≈O(n2.81)。由此可见,Strassen矩阵乘法的计算时间复杂性比普通矩阵乘法有阶的改进。

有人曾列举了计算2个2阶矩阵乘法的36种不同方法。但所有的方法都要做7次乘法。除非能找到一种计算2阶方阵乘积的算法,使乘法的计算次数少于7次,按上述思路才有可能进一步改进矩阵乘积的计算时间的上界。但是Hopcroft和Kerr(197l)已经证明,计算2个2×2矩阵的乘积,7次乘法是必要的。因此,要想进一步改进矩阵乘法的时间复杂性,就不能再寄希望于计算2×2矩阵的乘法次数的减少。或许应当研究3×3或5×5矩阵的更好算法。在Strassen之后又有许多算法改进了矩阵乘法的计算时间复杂性。目前最好的计算时间上界是O(n2.367)。而目前所知道的矩阵乘法的最好下界仍是它的平凡下界Ω(n2)。因此到目前为止还无法确切知道矩阵乘法的时间复杂性。关于这一研究课题还有许多工作可做。

广义表的定义

广义表

教学目的: 广义表的定义及存储结构

教学重点: 广义表的操作及意义

教学难点: 广义表存储结构

授课内容:

一、广义表的定义

广义表是线性表的推广,其表中的元素可以是另一个广义表,或其自身.

广义表的定义:

ADT GList{

数据对象:D={i=1,2,...,n>=0;ei(-AtomSet或ei(-GList,

AtomSet为某个数据对象}

数据关系:R1={<ei-1,ei>|ei-1,ei(-D,2=<i<=n}

基本操作:

InITGlist(&L);

操作结果:创建空的广义表L

CreateGList(&L,S);

初始条件:S是广义表的书写形式串

操作结果:由S创建广义表L

DestroyGlist(&L);

初始条件:广义表L存在

操作结果:销毁广义表L


CopyGlist(&T,L);

初始条件:广义表L存在

操作结果:由广义表L复制得到广义表T


GListLength(L);

初始条件:广义表L存在

操作结果:求广义表L的长度,即元素个数


GListDepth(L);

初始条件:广义表L存在

操作结果:求广义表L的深度


GlistEmpty(L);

初始条件:广义表L存在

操作结果:判断广义表L是否为空


GetHead(L);

初始条件:广义表L存在

操作结果:取广义表L的头


GetTail(L);

初始条件:广义表L存在

操作结果:取广义表L的尾


InsertFirst_GL(&L,e);

初始条件:广义表L存在

操作结果:插入元素e作为广义表L的第一元素


DeleteFirst_GL(&L,&e);

初始条件:广义表L存在

操作结果:删除广义表L的第一元素,并用e返回其值


Traverse_GL(L,VisIT());

初始条件:广义表L存在

操作结果:遍历广义表L,用函数VisIT处理每个元素


}ADT GList

广义表一般记作:LS=(a1,a2,...,an)

其中LS是广义表的名称,n是它的长度,ai可以是单个元素也可是广义表,分别称为原子和子表,当广义表非空时,称第一个元素a1为LS的表头称其余元素组成的广义表为表尾.

二、广义表的存储结构

广义表的头尾链表存储表示

typedef emnu{ATOM,LIST} ElemTag;

typedef struct GLNode{

ElemTag tag;

union{

AtomType atom;

struct{struct GLNode *hp,*tp;}ptr;

}

}

有A、B、C、D、E五个广义表的描述如下:

A=() A是一个空表,它的长度为零

B=(e) 列表B只有一个原子e,B的长度为1.

C=(a,(b,c,d)) 列表C的长度为2,两个元素分别为原子a和子表(b,c,d)

D=(A,B,C) 列表D的长度为3,三个元素都是列表,显然,将子表的值代入后,则有D=((),(e),(a,(b,c,d)))

E=(a,E) 这是一个递归的表,它的长度为2,E相当于一个无限的列表E=(a,(a,(a,...)))

上述五个广义表用以上的存储结构的存储映像如下:

欢迎转载,但请保留出处,本文章转自[华软网] 原文链接:http://www.hur.cn/program/C/c03/200511/5316.html

《数据结构》考试大纲

I 课程性质与设置目的:

  1. 本课程的性质和特点、在本专业中的地位、设置目的与作用

《数据结构》课程是网络教育考试的一门必修的专业基础课。这门课程的主要特点是实践性很强,不仅要学习基本理论知识,更要注重上机实践,通过上机实践验证算法的正确性,掌握和巩固所学理论知识。设立本门课程的目的是通过学习,使学生学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间分析和空间分析技术。另一方面,通过对本课程算法设计和上机实践的训练,还应培养学生的数据抽象能力和程序设计的能力,为后续课程,特别是软件课程打下坚实的知识基础。要求学生掌握各种常用数据结构的逻辑结构,存储结构及有关操作的算法。

二、本课程的基本要求

通过本课程的学习,学生应比较系统地从数据结构的逻辑结构、存储结构和运算三个方面去掌握线性表、栈、队列、串、数组、广义表、树、图和文件等常用的数据结构;并且掌握在各种常用的数据结构上实现得排序和查找算法,同时对算法的时间和空间复杂性有一定得分析能力;针对简单的应用问题,应能选择合适得数据结构及设计有效得算法解决之。这对于培养学生运用数据结构解决实际问题能力的培养有着重要的意义



II 课程内容与考核标准:

  1. 绪论

一、学习目的和要求

本章的目的是介绍数据结构中常用的基本概念和术语以及学习数据结构的意义。

本章要了解数据的抽象类型定义。理解算法在实际问题中的应用。重点掌握各种基本概念和术语、算法描述和分析的方法。

二、课程内容

      1. 什么是数据结构

      2. 基本概念和术语

      3. 抽象数据类型的表示与实现

      4. 算法和算法分析

三、考核知识点

              1. 合适的数据结构在解决实际应用问题中的关键性;以及学习《数据结构》的意义。

              2. 数据、数据元素、数据项、数据结构等基本概念。

              3. 数据结构的四种逻辑结构和两种存储结构表示方法。

              4. 抽象数据类型的表示和实现

              5. 算法的五个特点。

              6. 算法、算法的时间复杂度和空间复杂度、最坏的和平均的时间复杂度等概念。

              7. 算法描述和算法分析的方法,对于一般算法能分析出时间复杂度。

四、考核要求

                1. 识记

  1. 数据结构的基本概念和术语。

  2. 合适的数据结构在解决实际应用问题中的关键性,以及学习《数据结构》的意义。

  3. 数据结构的四种逻辑结构和两种存储结构表示方法。

                1. 领会

  1. 算法的描述和分析:算法的时间复杂度和空间复杂度、最坏的和平均的时间复杂度



  1. 线性表

一、学习目的和要求

本章的目的是介绍线性表的逻辑结构和各种存储表示方法,以及定义在逻辑结构上的各种基本运算及其在存储结构上如何实现这些基本运算。要求在熟悉这些内容的基础上,能够针对具体应用问题的要求和性质,选择合适的存储结构设计出相应的有效算法,解决与线性表相关的实际问题。

本章重点是熟练掌握顺序表和单链表上实现的各种基本运算及相关的时间性能分析,难点是在循环链表和双向链表存储结构中各种基本运算的实现。

二、课程内容

      1. 线性表的类型定义

      2. 线性表的顺序表示和实现

      3. 线性表的链式表示和实现

三、考核知识点

              1. 线性表的类型定义

              2. 顺序表的含义及特点,顺序表上的插入、删除操作及其平均时间性能分析

              3. 链式表示和实现,单链表、双链表、循环链表链接方式上的区别;

              4. 单链表上实现的建表、查找、插入和删除等基本算法及其时间复杂度。

              5. 双向链表的定义和相关算法。

              6. 顺序表和链表的比较,以及如何选择其一作为其存储结构才能取得较优的时空性能。

四、考核要求

                1. 识记

  1. 线性表的逻辑结构特征;

  2. 线性表上定义的基本运算,并利用基本运算构造出较复杂的运算。

                1. 领会

  1. 顺序表和链表的比较,各自的优缺点。

  2. 针对线性表上所需要执行的主要操作,知道选择顺序表还是链表作为其存储结构才能取得较优的时空性能。

                1. 综合应用

      1. 顺序表的含义及特点,顺序表上的插入、删除操作及其平均时间性能分析。

      2. 单链表、双链表、循环链表链接方式上的区别;

      3. 单链表上实现的建表、查找、插入和删除等基本算法及其时间复杂度。

      4. 双链表的定义和相关算法。



  1. 栈和队列

一、学习目的和要求

本章的目的是介绍栈和队列的逻辑结构定义及在两种存储结构上如何实现栈和队列的基本运算。要求在掌握栈和队列的特点的基础上,懂得在什么样的情况下使用栈或队列。

本章重点是掌握栈和队列在两种存储结构上实现的基本运算,难点是循环队列中对边界条件的处理

二、课程内容

      1. 栈的应用举例

第四节 队列

三、考核知识点

              1. 栈的抽象数据类型的定义

              2. 栈的表示和实现

              3. 栈的简单应用

              4. 抽象数据类型队列的定义

              5. 队列的链式表示和实现

              6. 队列的顺序表示和实现

四、考核要求

                1. 领会

  1. 栈和队列的特点,栈和队列各自的使用情况。

                1. 综合应用

                  1. 栈的逻辑结构特点,栈与线性表的异同。

                  2. 顺序栈和链栈上实现进栈、退栈等基本算法。

                  3. 利用栈解决简单的实际问题。

                  4. 队列逻辑结构特点,队列与线性表的异同。

                  5. 顺序队列(主要是循环队列)和链队列上实现的入队、出队等基本算法。

                  6. 顺序队列的“假溢出”现象及其采用循环队列进行解决的方法。



一、学习目的和要求

本章的目的是介绍串的逻辑结构、存储结构及其串上的基本运算。本章重点是掌握串的基本概念和三种表示方法,这也是难点。

二、课程内容

      1. 串类型的定义

      2. 串的表示和实现

三、考核知识点

              1. 串的定义、空串、空格串、子串、主串、串相等。

              2. 串的基本操作。

              3. 串的顺序存储结构及在顺序存储结构下基本操作的实现。

              4. 串的堆分配存储表示及其在堆分配存储结构下基本操作的实现。

              5. 串的链式存储表示

四、考核要求

                1. 领会

  1. 串的有关概念及其基本运算

                1. 简单应用

  1. 串的三种存储表示

  2. 使用串解决与串相关的简单的应用问题



  1. 数组和广义表

一、学习目的和要求

本章的目的是介绍多维数组的逻辑结构特征及其存储方式,特殊矩阵和稀疏矩阵的压缩存储方法及广义表的概念,要求熟悉这些内容。

本章重点是熟悉多维数组的存储方式、矩阵的压缩存储方式、广义表的定义及其表头表尾的运算,难点是稀疏矩阵的压缩存储表示下转置运算。

二、课程内容

      1. 数组的定义

      2. 数组的顺序表示和实现

      3. 矩阵的压缩存储

      4. 广义表的定义

      5. 广义表的存储结构

三、考核知识点

              1. 数组的顺序存储结构。

              2. 二维数组的按行存储及按列存储和计算数组元素的地址计算公式。

              3. 矩阵的压缩存储、特殊矩阵的表示。

              4. 广义表的定义和操作(HEADTAIL)

              5. 广义表的2种存储结构

四、考核要求

                1. 领会

  1. 多维数组的逻辑结构特征

  2. 多维数组的顺序存储结构及其地址计算方式

  3. 特殊矩阵和稀疏矩阵的概念

  4. 稀疏矩阵的压缩存储方式——三元组表

  5. 稀疏矩阵的两种转置运算算法

  6. 广义表的概念、广义表和线性表的联系

  7. 广义表表头和表尾的概念及广义表两个特殊的基本运算,取表头和取表尾。

  8. 广义表的两种存储结构



  1. 树和二叉树

一、学习目的和要求

本章的目的是介绍二叉树的定义、性质、存储结构、遍历、线索化,树的定义、存储结构、遍历、树和森林的转换及赫夫曼树及其赫夫曼编码等内容。本章重点是掌握二叉树及其二叉树的遍历。难点是掌握与树有关的简单应用。

二、课程内容

      1. 树的定义和基本术语

      2. 二叉树

      3. 遍历二叉树和线索二叉树

      4. 树和森林

第六节 赫夫曼树及其应用

三、考核知识点

              1. 树的定义和术语。

              2. 二叉树(完全二叉树、满二叉树)的定义和性质(结论)、二叉树的存储结构——顺序表示法和链表表示法。

              3. 二叉树的三种遍历方法及相应的递归算法。

              4. 二叉树线索化的目的及其实质。

              5. 树的存储表示法——孩子表示法、双亲表示法、孩子兄弟表示法。

              6. 树和森林及二叉树的转换方法。

              7. 树和森林的遍历

              8. 树的路径长度、树的带权路径长度、赫夫曼树(最优二叉树)的构造方法。

              9. 赫夫曼编码方法

四、考核要求

                1. 领会

  1. 树的逻辑结构特征

  2. 树的不同表示方法

  3. 树的常用术语及含义

  4. 二叉树线索化的目的及实质

  5. 在中序线索树中查找给定结点的中序前驱和中序后继的方法

  6. 树和森林与二叉树之间的转换方法

  7. 树的各种存储结构及其特点

  8. 树的遍历方法

                1. 简单应用

  1. 二叉树的定义及树与二叉树的差别

  2. 二叉树的性质,了解相应的证明方法

  3. 二叉树的两种存储结构、特点及适用范围

  4. 最优二叉树和前缀编码的概念及特点

  5. 赫夫曼算法的思想

  6. 根据给定的叶结点及其权值构造出相应的最优二叉树

  7. 根据最优二叉树构造对应的赫夫曼编码

                1. 综合应用

  1. 二叉树的三种遍历算法,理解其执行过程

  2. 根据不同的遍历方法,应能得出其相应的结点访问次序

  3. 以遍历算法为基础,设计有关算法解决简单的应用问题



III 有关说明与实施要求:

一、关于考核目标的说明

为了使考试内容和考试要求标准化,本大纲在列出考试内容的基础上,对各章节规定了考核目标。考核目标包含考核知识点和考核要求两项。辅导教师和学生可以通过对考核目标的阅读,进一步明确考试范围、内容和要求,从而可以更为系统地学习和把握教材。同时,考核目标还能够进一步明确考试命题范围,更正确地安排试题的知识能力层次和把握试题的难易程度。

本大纲在考核目标中,按照识记、领会、简单运用和综合运用等四个层次规定学生通过学习应该达到的能力层次要求。四个能力层次是递进等级关系。各能力层次的含义是:

1、识记:能够了解有关的名词、概念、知识的含义,并能正确认识和表述、选择和判断。

2、领会:在识记的基础上,能够比较全面地把握基本概念、基本事实、基本理论模型、基本方法,能把握有关概念、事实、理论模型、分析方法之间的区别和联系。并能根据考核的不同要求,做出正确的解释、说明和论述。

3、简单运用:在领会的基础上,能够运用本课程中规定的少量的知识点,分析和解释有关的一般的应用问题。例如,简单的算法设计和时间性能分析。

4、综合运用:指在简单运用的基础上,能够综合运用所学习过的多个知识点,分析和解决较复杂的应用问题,例如,设计较复杂的算法。


二、关于教材、参考教材和参考读物(根据课程的实际情况写内容)

1、教材:《数据结构》(C语言版)严蔚敏 吴伟民 编著,清华大学出版社1996年版。

2、参考教材

《数据结构》苑森淼等,吉林科学技术出版社。

《数据结构》黄刘生主编,全国高等教育自学考试指导委员会组编,经济科学出版社。

        1. 参考读物:《数据结构题集》严蔚敏 吴伟民著,清华大学出版社1999年版。


三、关于本门课程考试命题的若干规定

1、本门课程的命题考试,根据本大纲所规定的考试内容和考试目标来确定考试范围和考核要求。考试命题会覆盖各章,并适当突出重点章节,体现本课程的内容重点。

2、本课程在试题中对不同能力层次要求的分数比例一般为:识记占20%,领会占30%,简单应用占30%,综合运用占20%

3、试题合理安排难易度结构。试题难易度可分为:易、较易、较难和难四个等级。每份试卷中,不同难度试题的分数比例为:2332

4、本课程考试的题型,一般有填空、单项选择、简答、应用、算法设计等五种类型。