<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-667809582456321827</id><updated>2011-04-22T06:46:48.499+08:00</updated><category term='抽样'/><category term='Python'/><category term='排序'/><category term='自然'/><category term='ACM'/><category term='java'/><category term='科学'/><category term='趣事'/><category term='经历总结'/><category term='散记'/><category term='Windows'/><category term='酷图'/><category term='旅游'/><category term='C++'/><category term='firefox'/><category term='cool'/><category term='电影'/><category term='笑话'/><category term='面试'/><category term='Linux'/><category term='视频'/><category term='程序设计'/><category term='随机'/><category term='趣题'/><category term='交大'/><category term='小游戏'/><category term='算法'/><category term='新闻'/><title type='text'>madongfly的天空</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-1229038838774930612</id><published>2009-03-19T01:44:00.004+08:00</published><updated>2009-03-19T01:50:05.625+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><title type='text'>春夜散记</title><content type='html'>&lt;div id="blogContent" class="text-article"&gt;            &lt;p&gt;今天（准确的说应该是昨天吧）从实验室出来已经快12点了，回到青年公寓时，路上已经没有什么人了，和煦的春风吹在身上，感觉是如此的惬意，突然之间，心底的某种东西打断了自己那份匆忙，不自觉的漫步在深夜的“校园”……&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;头一次发现，青年公寓的夜色也可以如此美丽，躲藏在无数高楼中间的那一小块草坪，在今夜的春风里，散发着迷人的气息，让我有一瞬甚至产生了置身于交大芳花园的错觉，那温爽的风仿佛来自明湖，却又恰如其分的少了那股鱼腥味……&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;第 一次走到那一小片健身场，也让我想起了大一时，每晚上完自习都会到东区操场边的健身器材处做一下推举。不过这里的健身器材真可谓“男女分明”…… 一边全是单双杠等全靠臂力玩的东西，一边又全是脚踏，手转之类的主要供女生使用的器材。我是历来不会玩单双杠的，再加上现在这体重，估计上去手就折了……&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;路 边偶尔有人经过，都是行色匆匆的进入各自的宿舍楼，看着他们匆忙的脚步，我突然想，这么美丽的夜晚，难道他们就没想过停下来，享受一下几分钟的宁静。回过 头来，我为自己突然有了这样的想法感到吃惊，进而发现我已经很久很久没有过因为喜欢某个环境而静静的独处于其中了，而这种独处又显得那样的熟悉，细细想 来，年少时候的我似乎经常这样。而进入高中以后，我似乎被我国的教育“成功”的培养成了一名纯粹的理工科学生……之前的许多个夜晚，我也和那些路人一样， 匆匆忙忙的回到宿舍，课业，项目，论文，老板……种种压力下，我们变得很“专注”，专注地抄作业，专注地写代码，专注地编论文，专注得对身边的美视而不 见……&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;虽然已经过了12点，但几乎还有一半的宿舍亮着灯，我很好奇大家都在做些什么，是在写东西，看论文，还是像我往常一样进行一些临睡前的娱乐……&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;走 着走着，看到了路边的一只野猫，和交大校园里常见的野猫一样，长得很不起眼。它警惕的望着我，我站着没动，突然好想摸一摸它，我尽量让自己的动作看起来很 友好，慢慢地蹲了下去，可在我的手轻轻的伸出去时，它还是跑了。想起小时候的我是很喜欢小动物的，狗，猫，兔子，鸟，鸡，鹅，喂过的动物也不少，可自从高 中以后，就再也没有接触过这些小生命了……&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;虽然还没到四月，但这暖暖的春意还是让我想起了一代才女林徽因先生那首著名的诗 (据说清华建筑系的师生提起林徽因都尊称先生，我想，这应该是对一位女性最尊敬的称谓了)--《你是人间的四月天》。林徽因先生是建筑学出身，纯正的工科 血统，却也是一代才女，似乎那个年代各个学科的专家，都有很深的文化底蕴，至少都有着扎实的文学功底，不至于像我们现在，只会写点科技论文，还经常写得词 不达意，现在看来，我国的文理分科教育真的很失败！&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;就在我有些不舍的走进宿舍楼时，我还在想着原来北京的春夜也很迷人，但嘴里的异样感让我忍不住吐了一口唾沫，看着发黄的唾液，我砸了砸舌，感觉到了那该死的沙子。一想到刚才那么舒适的春风里竟然夹杂着这许多看不见的沙尘，好心情顿时低落了不少……&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;唉，北京……&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;附：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 24px; color: rgb(255, 0, 0);"&gt;你是人间的四月天&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;我说你是人间的四月天；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;笑响点亮了四面风；轻灵&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;在春的光艳中交舞着变。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;你是四月旱天里的云烟，&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;黄昏吹着风的软，星子在&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;无意中闪，细雨点洒在花前。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;那轻，那娉婷，你是，鲜妍。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;百花的冠冕你戴着，你是&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;天真，庄严，你是夜夜的月圆。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;雪化后那片鹅黄，你像；新鲜&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;初放芽的绿，你是；柔嫩喜悦&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;水光浮动着你梦期待中白莲。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;你是一树一树的花开，是燕&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;在梁间呢喃，你是爱，是暖，&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;是希望，你是人间的四月天！&lt;/span&gt;&lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-1229038838774930612?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/1229038838774930612/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/03/blog-post_19.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/1229038838774930612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/1229038838774930612'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/03/blog-post_19.html' title='春夜散记'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-6107361972370636438</id><published>2009-03-16T10:20:00.003+08:00</published><updated>2009-03-16T13:18:28.336+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='趣题'/><title type='text'>双信封悖论</title><content type='html'>自从沉迷于DOTA之后，好久没有更新blog了，先转一个很有趣的问题。&lt;br /&gt;&lt;br /&gt;以前在&lt;a style="color: rgb(51, 102, 255);" href="http://zhiqiang.org/blog/posts/to-active-the-brain-active.html"&gt;这里&lt;/a&gt;看到过一个小故事：&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;现在有两个人，"酷毙"与"帅呆"，正在花园里一边喝着酒，一边讨论关于精灵的神话。正好有个精灵从此经过，被他们的对话吸引，精灵认为在这个时代，还有人这样仰慕和了解他们值得鼓励，于是便决定给这两个人一点奖赏。于是，他把一笔钱放入两个信封，将信封分给"酷毙"与"帅呆"，出于喜欢恶作剧的个性，精灵透露，这两个信封里金额不同，其中一个是另一个的两倍，但他没有说哪个多哪个少。然后精灵随着一缕轻烟消失无踪。&lt;br /&gt;&lt;br /&gt;在精灵消失后，两个人拆开信封，偷看自己拿到的那笔钱，同时心里忖度着，自己到底拿到多的那份？还是少的？" 酷毙"心想：这是笔意外之财，我拿到的数额已经很不错了，如果这是多的那份，"帅呆"就只有我的一半；不过，他也可能很走运，拿到我的两倍。再回顾整个过程，精灵是先把钱装好，密封之后才随机发给我们，因此这是一个对等赌局，两人拿到大份的几率是一半一半。所以也许我应该跟"帅呆"谈个交易，互相交换。既然我赢得一倍金额和损失一半金额的几率都是50%，则仍有期待净利：我的交换期望收入将是现在所有的 1/2*2+1/2*1/2=5/4倍。根据决策原则，"酷毙"认为这对他相当有利，便决定和"帅呆"交换。即使"酷毙"没有拆开信封也可以作出相同决定，因为支票的面额并不影响整个思考逻辑。"帅呆"以同样的方式思考后，也认为与"酷毙"进行交易对自己较有利，于是当"酷毙"一提出交换的建议，"帅呆 "马上欣然允诺。&lt;br /&gt;&lt;br /&gt;两人的情况完全一样，都认为自己能遵从一定的逻辑推理规范。那么，有没有可能两人同时都是对的呢？毕竟这是个零和游戏，"酷毙"赢就等于 "帅呆"输，反之亦然，既然不能双赢，就一定有人是错的。但这两人不都是经过缜密逻辑思考了吗？&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;当时看完之后也只是觉得有趣，也没有再认真去想为什么，时间长了也就忘了，直到今天又在&lt;a style="color: rgb(51, 51, 255);" href="http://zhiqiang.org/blog/posts/two-envelopes-problem-and-siege-effect.html"&gt;这儿&lt;/a&gt;看到了解答。&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;问题：你有两个信封可以选择，每个信封里有一定数量的钱，已知其中一个信封里的钱是另外一个信封的两倍。你可以选择一个信封，打开之后你能看到其中的钱的数量。现在你可以选择是否更改你的选择。&lt;br /&gt;&lt;br /&gt;推断：你应该更改你的选择&lt;br /&gt;&lt;br /&gt;  1. 假设你打开信封后发现里面钱的数量为A。&lt;br /&gt;  2. A是较小的钱数的概率为1/2，为较大的钱数亦为1/2。&lt;br /&gt;  3. 如果A是较小的钱数，则另一个信封里钱数为2A；&lt;br /&gt;  4. 如果A是较大的钱数，则另一个信封里的钱数为为A/2。&lt;br /&gt;  5. 所以另一个信封里的钱数的期望为 E = 2A×1/2+A/2×1/2=5A/4，大于A。&lt;br /&gt;  6. 你应该更换你的选择。&lt;br /&gt;&lt;br /&gt;想想看，这个问题和推断是不是有点像围城效应？&lt;br /&gt;&lt;br /&gt;很显然，上面的推断结果是有问题的。关键在于第二条，如果上面推断中的第二条成立的话，我们假设P(A)为两个钱包里的钱数为（A/2，A）的概率，那么将有P(A)=P(2A)，从而有一个定义在一个无穷集上的均匀分布，这是不可能的。&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-6107361972370636438?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/6107361972370636438/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/03/blog-post.html#comment-form' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6107361972370636438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6107361972370636438'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/03/blog-post.html' title='双信封悖论'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-5457720345819679165</id><published>2009-01-27T15:11:00.003+08:00</published><updated>2009-01-27T15:28:00.967+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='视频'/><title type='text'>最可爱的“老男人”</title><content type='html'>没想到他们的节目竟然放到零点之后，幸亏没有错过，看到一位网友说的好，这几个“老男人”拯救了09春晚……&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://player.youku.com/player.php/sid/XNjgxNzAxNDQ=/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-5457720345819679165?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/5457720345819679165/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/01/09.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/5457720345819679165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/5457720345819679165'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/01/09.html' title='最可爱的“老男人”'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-9095149337613431754</id><published>2009-01-24T23:53:00.007+08:00</published><updated>2009-01-25T00:41:26.283+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='算法'/><category scheme='http://www.blogger.com/atom/ns#' term='抽样'/><category scheme='http://www.blogger.com/atom/ns#' term='随机'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>随机抽样算法</title><content type='html'>前段时间，做移动研究院的项目时，曾经遇到过这样的需求：需要从n条记录中，随机抽取m(n&gt;&gt;m)条数据，因为数据量很大，n可能上亿，所以要求每条记录只能读取一次，也就是说在读入一条数据后，就要马上等概率的判断要不要选择它。&lt;br /&gt;&lt;br /&gt;这个需求当时让我大伤脑筋，让我再次感叹，要是早点看到《Programming Pearls》就好了……&lt;br /&gt;&lt;br /&gt;我当时想当然的认为一个数被取中的概率是1/n，所以貌似可以直接rand()%n == 0就行了，但是这样的问题在于你无法保证最终取出的正好是m个数。这种做法最终正好取出m个数的概率本身就够小的……&lt;br /&gt;&lt;br /&gt;由于当时的需求只要求一个大概的数，不要求十分精确，比如从几千万条中随机取一万条&lt;span style="font-weight: bold;"&gt;左右&lt;/span&gt;，我也就那样糊弄过去了。&lt;br /&gt;&lt;br /&gt;其实，如果你够聪明的话，应该已经看出了我的错误，没错，从n个数中选m个数，对于某一个具体的数k，其概率不是1/n而是m/n，我们做一下简单的组合运算就知道了：这个概率等于C(n-1,m-1)/C(n,m)，化简之后就是m/n。&lt;br /&gt;&lt;br /&gt;如此一来，第一个数被选中的概率是m/n；第二个数的选取概率依赖于第一个数的选取情况，如果第一个数被选中后，意味着问题转化为从n-1个数中选m-1个数，否则转化为取m个数；一般地，对于某个数k，如果之前已经选择了s(s &lt; m)个数，那么k被选中的概率就应该是(m-s)/(n-s)。&lt;br /&gt;&lt;br /&gt;这样，我们就可以得到如下代码：&lt;br /&gt;&lt;div style="font-family: &amp;quot;[object HTMLOptionElement]&amp;quot;,&amp;quot;Lucida Console&amp;quot;,&amp;quot;Courier New&amp;quot;,&amp;quot;monospace&amp;quot;; background-color: rgb(249, 247, 237);" class="source"&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;void&lt;/span&gt; sample(&lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;int&lt;/span&gt; m,&lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;int&lt;/span&gt; n)&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; {&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;for&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;int&lt;/span&gt; i = &lt;span style="color: rgb(0, 0, 255);"&gt;0&lt;/span&gt;; i &amp;lt; n &amp;amp;&amp;amp; m; i++)&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;if&lt;/span&gt;((rand()%(n-i)) &amp;lt; m)&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; d[i] &amp;lt;&amp;lt; endl;&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m--;&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; }&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;接下来，我们可以看出，这段巧妙的代码正好取够m个数，不多也不少，不多是因为当取到m个数后,变量m变为0，循环结束；不少是因为每当n减小到与m相等时，必然会选择。&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-9095149337613431754?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/9095149337613431754/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post_24.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/9095149337613431754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/9095149337613431754'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post_24.html' title='随机抽样算法'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-675336770707915851</id><published>2009-01-24T16:08:00.006+08:00</published><updated>2009-01-25T00:33:20.973+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>我的第一个Python程序</title><content type='html'>看Python好几天了，一直都是看，还没有写过，今天想试着写写《简明Python教程》中第十章的题目，但是不知道Windows下如何调用WinRAR，看了网友andelf写的&lt;a style="color: rgb(51, 51, 255);" href="http://tieba.baidu.com/f?kz=70662074" target="_blank"&gt;这个程序&lt;/a&gt;之后，对其做了一下修改，写成函数的形式，让它看起来更像传统意义上的“程序”。其实也就是想多动手写写，理论联系实践嘛，呵呵。&lt;br /&gt;&lt;br /&gt;然后将待备份文件改为列表传入，更符合原题意：&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;[object HTMLOptionElement]&amp;quot;,&amp;quot;Lucida Console&amp;quot;,&amp;quot;Courier New&amp;quot;,&amp;quot;monospace&amp;quot;; background-color: rgb(249, 247, 237);" class="source"&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; import os&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; import time&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;def&lt;/span&gt; backup(srcfileList,terfile): &lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;for&lt;/span&gt; srcf &lt;span style="font-weight: bold;"&gt;in&lt;/span&gt; srcfileList:&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tername = terfile + &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;\\&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;quot;&lt;/span&gt; + time.strftime(&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;#39;%Y%m&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;%d&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;%H%M%S&amp;#39;&lt;/span&gt;) + &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;quot;.rar&amp;quot;&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order = &lt;span style="color: rgb(0, 0, 255);"&gt;r&amp;quot;C:\Progra~1\WinRAR\Rar.exe a &amp;quot;&lt;/span&gt;+&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;%s&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;%s&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;quot;&lt;/span&gt;%(tername,srcf)&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;if&lt;/span&gt; os.system(order) == &lt;span style="color: rgb(0, 0, 255);"&gt;0&lt;/span&gt;:&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;print&lt;/span&gt; srcf + &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;quot; has been backuped as &amp;quot;&lt;/span&gt; + tername&lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;else&lt;/span&gt;:&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;quot;Failed to backup &amp;quot;&lt;/span&gt; + srcf&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time.sleep(&lt;span style="color: rgb(0, 0, 255);"&gt;1&lt;/span&gt;)&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 128); font-weight: bold;"&gt;if&lt;/span&gt; __name__ == &lt;span style="color: rgb(0, 0, 255);"&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;:&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; srcfileList = [&lt;span style="color: rgb(0, 0, 255);"&gt;r&amp;quot;C:\test1&amp;quot;&lt;/span&gt;,&lt;span style="color: rgb(0, 0, 255);"&gt;r&amp;quot;C:\test2&amp;quot;&lt;/span&gt;]&lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; terfile = &lt;span style="color: rgb(0, 0, 255);"&gt;r&amp;quot;D:\test&amp;quot;&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; backup(srcfileList,terfile)&lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;br&gt;&lt;span style="color: rgb(0, 136, 0); font-style: italic;" class="lineno"&gt;&lt;/span&gt; os.system(&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;#39;PAUSE&amp;#39;&lt;/span&gt;);&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;其中，C:\Progra~1\…… 其实就是C:\Program Files\……，这种目录是在纯DOS下看到的,纯DOS使用8+3文件格式,也就是说文件名最多不超过8个字符,扩展名最多不超过3个字符,长文件名就采用第7个字符为~，第8个字符为前面字符相等的文件间的相对序号。WinRaR命令的更多内容可以在命令行下键入C:\Progra~1\WinRAR\Rar.exe --help查看。&lt;br /&gt;&lt;br /&gt;代码中，之所以要在一次备份之后，让程序sleep 1秒，是因为原题要求用系统时间作为备份文件名，但我没找到怎么取到毫秒级的时间，就只能采用这种折中方案了……&lt;br /&gt;&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-675336770707915851?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/675336770707915851/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/01/python.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/675336770707915851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/675336770707915851'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/01/python.html' title='我的第一个Python程序'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-2276746098751700845</id><published>2009-01-23T22:47:00.006+08:00</published><updated>2009-01-24T16:35:14.288+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='算法'/><category scheme='http://www.blogger.com/atom/ns#' term='排序'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>同样是排序，C++的sort咋就那么强大呢</title><content type='html'>今天看《Programming Pearls》看到快排那一章了，看着Jon Bentley从最基本的实现方式一步一步的优化出好几个巧妙的实现方法，还是很过瘾的。&lt;br /&gt;&lt;br /&gt;不过，最后他给出了一个表格，列出了他的四种实现方式以及C里的qsort，C++里的sort之间的对比，不出所料，qsort是最慢的，而出乎我意料的是，sort竟然是最快的！&lt;br /&gt;&lt;br /&gt;在Jon的几种方法的递进过程中，还涉及到了如何处理已经有序的数据，记得10月份的时候，我用MapReduce做实验室的项目，还遇到过这个问题，就是因为map之后的key值都是有序的，所以排序时超栈了，我在&lt;a href="http://madongfly.blogspot.com/2008/10/blog-post_24.html" target="_blank"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;这篇日志&lt;/span&gt;&lt;/a&gt;中有详细描述。&lt;br /&gt;&lt;br /&gt;其实这个问题解决起来也不难，Jon采用的办法是每次随机的选取枢值。我就很疑惑，这么简单的解决办法，为什么MapReduce里的排序就不采用呢？&lt;br /&gt;&lt;br /&gt;后来想看看sort有没有解决这个问题，又写了个小程序测试了一下，对一个1000000的整型数组进行排序：&lt;br /&gt;&lt;br /&gt;当数据为随机生成的整数时，大概需要900ms左右。&lt;br /&gt;当数据为严格升序的整数时，大概需要150ms左右。&lt;br /&gt;当数据为严格降序的整数时，大概需要200ms左右。&lt;br /&gt;&lt;br /&gt;看来，sort也很完美的解决了这个问题。&lt;br /&gt;&lt;br /&gt;既然sort这么强大，我忍不住进其内部想一探究竟，但是面对一大堆的模板，最终还是望而却步了……&lt;br /&gt;&lt;br /&gt;总之，sort很强大，要善加利用……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-2276746098751700845?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/2276746098751700845/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/01/csort.html#comment-form' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2276746098751700845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2276746098751700845'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/01/csort.html' title='同样是排序，C++的sort咋就那么强大呢'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-3861490129455681350</id><published>2009-01-21T15:27:00.007+08:00</published><updated>2009-01-25T00:37:44.805+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='算法'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>原来二分还可以这样写</title><content type='html'>今天在《Programming Pearls》上看到这样的问题，有一个非降序数组d[]，包含1000个数，可能有重复的数，求数K在数组中最靠前的下标。如果找不到的话，结果为-1。&lt;br /&gt;&lt;br /&gt;这种类型的二分之前已经写过不下数十次了，于是我信手敲下如下代码：&lt;br /&gt;&lt;div style="font-family: &amp;quot;Lucida Console&amp;quot;,&amp;quot;Courier New&amp;quot;,&amp;quot;monospace&amp;quot;; background-color: rgb(249, 247, 237);" class="source"&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; l = &lt;span style="color: rgb(0, 153, 153);"&gt;0&lt;/span&gt;; r = &lt;span style="color: rgb(0, 153, 153);"&gt;999&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; ans = -&lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 170);"&gt;while&lt;/span&gt;(l &amp;lt;= r) &lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; mid = (l+r)/&lt;span style="color: rgb(0, 153, 153);"&gt;2&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 170);"&gt;if&lt;/span&gt;(d[mid] &amp;gt;= k)&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ans = mid;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = mid-&lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt;;&lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 170);"&gt;else&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l = mid+&lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; }&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;上面这段代码是我写了很多次的二分之后总结出来的，因为二分的很多其他写法在不同的条件下稍不注意就会出现错误。这里说的不同的条件包括：求满足条件的最小的值； 求满足条件最大的值等等。&lt;br /&gt;&lt;br /&gt;而上面的代码可以通用我到目前为止遇到的所有情况(仅仅是改变一下ans = mid; 的位置即可)，所以一直这么写二分。&lt;br /&gt;&lt;br /&gt;但是看了书上给的代码，觉得不但也能适合所有情况，而且很好验证其正确性：&lt;br /&gt;&lt;div style="font-family: &amp;quot;Lucida Console&amp;quot;,&amp;quot;Courier New&amp;quot;,&amp;quot;monospace&amp;quot;; background-color: rgb(249, 247, 237);" class="source"&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; l = -&lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; r = &lt;span style="color: rgb(0, 153, 153);"&gt;1000&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 170);"&gt;while&lt;/span&gt;(l+&lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt; &amp;lt; r)&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; {&lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; mid = (l + r)/&lt;span style="color: rgb(0, 153, 153);"&gt;2&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 170);"&gt;if&lt;/span&gt;(d[mid] &amp;gt;= k)&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = mid;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 170);"&gt;else&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l = mid;&lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; }&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 170);"&gt;if&lt;/span&gt;(r == n || d[r] != k)&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp; ans = -&lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 170);"&gt;else&lt;/span&gt; &lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp; ans = r;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;这段代码中，l取值为下限减一，而r取值是上限加1，在本例中，l = -1, r = 1000。&lt;br /&gt;不过可以放心，仔细研究代码就会发现，d[-1]和d[1000]是不会被访问到的，他们在这里只是起一个边界的作用，使得二分可以搜索到0到999的范围。&lt;br /&gt;&lt;br /&gt;这段代码的正确性是很好判断的，我们可以“令”d[-1] &lt; k, 而 d[1000] &gt; k。&lt;br /&gt;&lt;br /&gt;这样，就可以保证每次循环之后，都有d[r] &gt;= k 并且 d[l] &lt; k。&lt;br /&gt;而while语句结束时，l+1 = r。即，d[r-1] &lt; k 并且 d[r] &gt;= k。&lt;br /&gt;所以如果k存在的话，r就是所求最靠前的下标。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;当然，上面这段代码虽然很巧妙，但也不是很少见，下面的代码就是我第一次见到的了：&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Lucida Console&amp;quot;,&amp;quot;Courier New&amp;quot;,&amp;quot;monospace&amp;quot;; background-color: rgb(249, 247, 237);" class="source"&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; i = &lt;span style="color: rgb(0, 153, 153);"&gt;512&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; l = -&lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 170);"&gt;if&lt;/span&gt;(d[&lt;span style="color: rgb(0, 153, 153);"&gt;511&lt;/span&gt;] &amp;lt; k)&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp; l = &lt;span style="color: rgb(0, 153, 153);"&gt;1000&lt;/span&gt; - &lt;span style="color: rgb(0, 153, 153);"&gt;512&lt;/span&gt;;&lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 170);"&gt;while&lt;/span&gt;(i != &lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt;)&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; {&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; i /= &lt;span style="color: rgb(0, 153, 153);"&gt;2&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 170);"&gt;if&lt;/span&gt;(d[l+i] &amp;lt; k)&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l = l+i;&lt;br&gt;&lt;span class="lineno special"&gt;&lt;/span&gt; }&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; ans = l+&lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt;;&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 170);"&gt;if&lt;/span&gt;(ans &amp;gt; &lt;span style="color: rgb(0, 153, 153);"&gt;1000&lt;/span&gt; || d[ans] != k)&lt;br&gt;&lt;span style="color: rgb(170, 170, 170); font-style: italic;" class="lineno"&gt;&lt;/span&gt; &amp;nbsp;&amp;nbsp; ans = -&lt;span style="color: rgb(0, 153, 153);"&gt;1&lt;/span&gt;;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;这段代码的效率不一定比前面的实现方法高，但是它的实现方式，却及其深刻的揭示了“二分”的精髓。&lt;br /&gt;&lt;br /&gt;代码首先要确定一个二分枚举的范围，这个范围必须是2的幂，对于1000来说，只能是512了，所以先判断第一个出现的k是在前512个数中，还是后512个数中。&lt;br /&gt;&lt;br /&gt;之后，每次循环结束时，都保证了 d[l] &lt; k 并且 d[l+i] &gt;= k, 当循环结束时，又有i == 1，所以最后有d[l] &lt; k 并且 d[l+1] &gt;= k。因而如果k存在的话，其最靠前的下标就是l+1。&lt;br /&gt;&lt;br /&gt;从某种意义上来说，这段代码才是“真正”的二分，因为其每一次分裂，都正好分为完全相等的两部分，直到最后只剩下一个元素。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-3861490129455681350?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/3861490129455681350/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post_21.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3861490129455681350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3861490129455681350'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post_21.html' title='原来二分还可以这样写'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-4186631357067750126</id><published>2009-01-07T00:22:00.007+08:00</published><updated>2009-01-24T16:34:49.991+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ACM'/><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><title type='text'>这是我说的吗？</title><content type='html'>前些天有同学跟我说在网上看到有篇登报的文章里提到过我，我一直以为他说的是以前的校报，今天突然想起来，google了一下，竟然搜索出这么一篇文章……&lt;br /&gt;&lt;br /&gt;&lt;a href="http://press.idoican.com.cn/detail/articles/20081126019153/" target="_blank"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;http://press.idoican.com.cn/detail/articles/20081126019153/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;其中有这么一段：&lt;br /&gt;&lt;br /&gt;参加亚洲赛的每个队员，都参加过各院级到校级的比赛。如今被保送到中科院读研的北京交通大学04级学生马旭东说：“上大二时，我和同学报名参加ACM培 训，天天做题，能坚持到最后的就剩下10多个人了。有一天夜里两点多，我合上笔记本，问同学做了多少题了，他说10个，我说我做了11个。对于ACMer 来说，每次的破题都是一个挑战，从WA（Wrong Answer 回答错误）到AC（Accept Answer 回答正确）的过程，是一种对思维的锻炼和精神的享受。”&lt;br /&gt;&lt;br /&gt;看得我那个汗啊，怎么感觉“我”说话有点前言不搭后语呢……&lt;br /&gt;文中“我”说了三句话，前两句貌似确实是我曾经在总结里写过的，不过是从不同的段落里挑出来再删减一下凑上去的，第三句我可是一点印象都没有了……&lt;br /&gt;&lt;br /&gt;呵呵，看了一下全文，大概明白是怎么回事了，肯定是交大办北京赛的时候找相好的媒体发的吧……&lt;br /&gt;&lt;br /&gt;虽然“说”了几句不太着调的话，好歹咱的名字也上回报了，得好好庆祝一下，明早多睡半小时吧……&lt;br /&gt;.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-4186631357067750126?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/4186631357067750126/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post_07.html#comment-form' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4186631357067750126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4186631357067750126'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post_07.html' title='这是我说的吗？'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-1064225376864775084</id><published>2009-01-04T00:34:00.003+08:00</published><updated>2009-01-04T00:38:49.052+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='电影'/><title type='text'>叶问</title><content type='html'>一句话影评：比《霍元甲》拍的好……&lt;br /&gt;越来越喜欢甄子丹了。&lt;br /&gt;&lt;br /&gt;PS：这个擂台的场景好熟悉呀，让人想起了霍元甲、陈真……&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_n_vVcoJMer0/SV-UZPyICTI/AAAAAAAAB3c/Z3r6XKt4jf0/s1600-h/081216_edu_jz_04.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 265px;" src="http://2.bp.blogspot.com/_n_vVcoJMer0/SV-UZPyICTI/AAAAAAAAB3c/Z3r6XKt4jf0/s400/081216_edu_jz_04.jpg" alt="" id="BLOGGER_PHOTO_ID_5287107649010665778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-1064225376864775084?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/1064225376864775084/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post_04.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/1064225376864775084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/1064225376864775084'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post_04.html' title='叶问'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_n_vVcoJMer0/SV-UZPyICTI/AAAAAAAAB3c/Z3r6XKt4jf0/s72-c/081216_edu_jz_04.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-2959124760985802528</id><published>2009-01-03T15:22:00.001+08:00</published><updated>2009-01-03T15:24:21.844+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='酷图'/><title type='text'>酷图</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n_vVcoJMer0/SV8SmHInzCI/AAAAAAAAB3U/2IgpA22WAXw/s1600-h/27790540.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 362px; height: 400px;" src="http://1.bp.blogspot.com/_n_vVcoJMer0/SV8SmHInzCI/AAAAAAAAB3U/2IgpA22WAXw/s400/27790540.jpg" alt="" id="BLOGGER_PHOTO_ID_5286964933515791394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-2959124760985802528?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/2959124760985802528/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2959124760985802528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2959124760985802528'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2009/01/blog-post.html' title='酷图'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_n_vVcoJMer0/SV8SmHInzCI/AAAAAAAAB3U/2IgpA22WAXw/s72-c/27790540.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-1167278389776477222</id><published>2008-12-31T20:08:00.011+08:00</published><updated>2008-12-31T20:45:48.881+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><category scheme='http://www.blogger.com/atom/ns#' term='经历总结'/><title type='text'>08岁末总结</title><content type='html'>08年最后一天了，原本打算继续在15层复习备考的，结果下午还人满为患的读书长廊，晚上却没有了一个人，搞得我也看不下去了……&lt;br /&gt;&lt;br /&gt;回到工位，发现实验室的师兄们大都也去1层看元旦晚会去了，我对这类晚会历来没什么兴趣，干脆就利用08年的最后这几个小时，总结一下过去的这一年吧……&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;1月份，在IBM的CSDL实习，有些枯燥，那些经历我在 &lt;a style="color: rgb(0, 0, 153);" href="http://madongfly.blogspot.com/2008/12/ibm-javamsnvendorcpu.html"&gt;这篇日志&lt;/a&gt; 里讲到过一些。&lt;br /&gt;&lt;br /&gt;2月份，寒假在家呆了20多天，中国遇上罕见的雪灾，家里虽然没受灾，但那雪也是近十几年来下得最大的了。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n_vVcoJMer0/SVti5djy4nI/AAAAAAAAB2M/DnLgs4cRQR4/s1600-h/DSC01379.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 150px; height: 200px;" src="http://1.bp.blogspot.com/_n_vVcoJMer0/SVti5djy4nI/AAAAAAAAB2M/DnLgs4cRQR4/s200/DSC01379.JPG" alt="" id="BLOGGER_PHOTO_ID_5285927326976238194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3月份，一直在九教三层的机房里准备ACM比赛，每天都在做题。期间，因为考虑到准备比赛需要大量时间，于是辞掉了IBM的实习，到现在我都一直觉得很愧对扈晓伟老师，因为之前本来说好我在公司做毕设，而扈老师也非常认真的帮助我，立项、规划，给我制定了非常详细的计划，甚至比学校里的老师还要负责。我在IBM前后加起来，只实习了一个月，这一个月里也学了很多东西，不过刚把Lotus的API弄明白，还没开始做东西呢，就离开了，真的很惭愧……不过扈老师真的是一个很好的人，我一直都很感谢他！&lt;br /&gt;&lt;br /&gt;4月份，到加拿大参加ACM世界总决赛，度过了难忘而快乐的一周。这次经历我在&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;a style="color: rgb(0, 0, 153);" href="http://madongfly.blogspot.com/2008/10/08.html"&gt;这篇日志&lt;/a&gt; 里详细的写过，详细的如流水账一般……&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_n_vVcoJMer0/SVtkDI8cYVI/AAAAAAAAB2U/Xx9HxZDvciI/s1600-h/IMG_2094.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_n_vVcoJMer0/SVtkDI8cYVI/AAAAAAAAB2U/Xx9HxZDvciI/s200/IMG_2094.JPG" alt="" id="BLOGGER_PHOTO_ID_5285928592752795986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5月份，陪飞一起去了一趟秦皇岛，此生第一次如此近距离的接触到大海(虽然在温哥华湾见过一次海，但是由于在港口里看的，视线受限，看起来跟湖差不多)。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_n_vVcoJMer0/SVtks6ANgRI/AAAAAAAAB2c/TXL_Ue7ea0M/s1600-h/DSC02240.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_n_vVcoJMer0/SVtks6ANgRI/AAAAAAAAB2c/TXL_Ue7ea0M/s200/DSC02240.JPG" alt="" id="BLOGGER_PHOTO_ID_5285929310296572178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6月份，欧洲杯……毕业……聚餐……啤酒……眼泪……离别……永远的计科0407……毕业晚会好歹上了一回天佑的舞台……&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n_vVcoJMer0/SVtlKYpSmtI/AAAAAAAAB2k/sa3601Nv2IM/s1600-h/DSC_0040.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 133px;" src="http://1.bp.blogspot.com/_n_vVcoJMer0/SVtlKYpSmtI/AAAAAAAAB2k/sa3601Nv2IM/s200/DSC_0040.JPG" alt="" id="BLOGGER_PHOTO_ID_5285929816738142930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n_vVcoJMer0/SVtluYBSS3I/AAAAAAAAB2s/iqiLbmWMLJo/s1600-h/PICT0063.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_n_vVcoJMer0/SVtluYBSS3I/AAAAAAAAB2s/iqiLbmWMLJo/s200/PICT0063.JPG" alt="" id="BLOGGER_PHOTO_ID_5285930435045641074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7月、8月，堕落的暑假，玩疯了，把导师提前交代的任务都扔到了脑后。参与了家乡大学生文艺演出；和朋友们一起出去烤羊；组织了初中同学毕业后的第一次像样的聚会，见到了很多7年没见的老同学；驾驶技术得到了质的提到，驾驶历程达到2000公里以上；令人骄傲的奥运会，曾经连续好几天从早看到晚……&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n_vVcoJMer0/SVtmVZTu6JI/AAAAAAAAB20/yeP4Tj_pm88/s1600-h/IMG_0730.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_n_vVcoJMer0/SVtmVZTu6JI/AAAAAAAAB20/yeP4Tj_pm88/s200/IMG_0730.jpg" alt="" id="BLOGGER_PHOTO_ID_5285931105406347410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9月份，住进青年公寓，开始对新生活很不适应，经常在早上醒来以为自己还在嘉园。周末经常出去蹭饭。&lt;br /&gt;&lt;br /&gt;10月份至今，进入实验室，参与到实验室的项目中，加上繁重的课业，很累，不过也很充实。遗憾的是导师似乎对我寄予厚望，但是到目前为止，我的表现让他失望了……&lt;br /&gt;&lt;br /&gt;再过几个小时就是09年了，希望新的一年，能够找到新的自己，尽快融入到“研究”生的角色中……&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-1167278389776477222?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/1167278389776477222/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/12/08.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/1167278389776477222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/1167278389776477222'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/12/08.html' title='08岁末总结'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_n_vVcoJMer0/SVti5djy4nI/AAAAAAAAB2M/DnLgs4cRQR4/s72-c/DSC01379.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-6370205094395060609</id><published>2008-12-30T11:24:00.005+08:00</published><updated>2008-12-30T12:52:48.639+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='笑话'/><category scheme='http://www.blogger.com/atom/ns#' term='趣事'/><title type='text'>一个笑话的分析</title><content type='html'>在&lt;a style="color: rgb(0, 0, 153);" href="http://zhiqiang.org/blog/posts/analysis-of-a-old-joke.html"&gt;这里&lt;/a&gt;看到的，有点意思，呵呵。&lt;br /&gt;&lt;br /&gt;发信人： kelpie (kelp)， 信区： Joke&lt;br /&gt;标  题： 分析一个旧笑话&lt;br /&gt;发信站： 水木社区 (Wed Nov 26 23：24：37 2008)， 站内&lt;br /&gt;&lt;br /&gt;&lt;code&gt;   一个小伙子到理发店理发，他问：“理发得等多长时间？”理发师看了一下店里的顾客说：“大约两个小时。”小伙子走了。&lt;br /&gt;&lt;br /&gt; 几天后还是这个小伙子来理发，他一进门便问：“理发得等多长时间？”理发师看了一眼店里排队的顾客说：“大约三个小时。”小伙子走了。&lt;br /&gt;&lt;br /&gt; 一个星期后这个小伙子又来了，问：“理发得等多长时间？”理发师看到店里已经满是顾客说：“大约四个半小时。”小伙子走了。&lt;br /&gt;&lt;br /&gt; 理发师望着店里的一个朋友说：“喂，比尔，跟着这家伙，看他去哪儿。他总是来问他理发得等多长时间，可是却从来没有回来过。”&lt;br /&gt;&lt;br /&gt; 不大一会儿，比尔回到店里，歇斯底里地笑着。理发师问：“他离开这儿去了哪儿？”比尔扬起头，笑出眼泪还挂在眼角：“去了你家！”&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;最初我以为这是个荤笑话，后来觉得自己很惭愧，那小伙子是小偷，应该是偷东西去了，所以是个正经笑话。但是再看了一遍，还是x笑话，因为偷东西的话，可能前两次就被人发觉了。这样粗看是合理的，但是文中有一个关键的人物－－比尔，，他为什么会笑得歇斯底里，眼泪都出来了呢，不管他的立场是站在理发师一边还是站在小伙子一边，他笑的都不是很合理，作为一个优秀的笑话，不应该出现这种纰漏，这说明我对此笑话的理解存在偏差。需要继续分析，重新理解，现在我们的重点就在比尔身上，为什么整篇文章中只有他一个人有名字？小伙子三次去理发店，比尔他是否一直在场？比尔到底代表了什么呢？理发师和小伙子代表了什么呢？&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;马克思说过：“#$%^%%#$%#%%%^＃◎◎◎￥％…………※※￥＃”，所以，首先，我们先来分析一下这个故事发生的背景，是在一个什么样的社会条件下发生。文中中有两处涉及到故事的发生背景，一明一暗。明处为理发师的朋友名字为比尔，是一个明显西方人的名字。暗处为理发需要排很长时间的队，理发服务出于供不应求的状态。如果但从明处线索来看，故事一般是发生在西方国家，但是，毛主席教导我们“◎￥＃＃◎◎￥￥％￥％％……￥43”，所以我们还不能草率的下结论，还应该综合分析，看哪个结果的合理性，现实性更强一些。让我们继续来看。从暗处来看我们似乎得不到什么确切的结论，但是从该笑话的来源传播过程来看，特别是考虑到故事警世育人的作用，我认为这个故事发生是依托中国的背景发生的，相信大家都有等理发排队的经历吧。可为什么作者会让一个西方人的名字出现呢？他到底是谁呢？为了回答这个问题，我们就要重新分析一下理发师和小伙子两个角色，&lt;br /&gt;&lt;br /&gt;小伙子的活动很简单，每次都是去理发店，问有没有位置，然后去理发师家，再去理发店，再回理发师家，如是者三，（不知道还会不会继续下去）在这里我认为，理发店作为一个人数众多，不受限制的场所，它隐喻着整个社会，而理发师则是社会的掌权者，而理发师的家，对小伙子则代表着可以暂时脱离社会，但又是一个不能长期居住停留的地方。小伙子，显然代表着一类人，关键点就在这个小上，代表着年轻。我们想象一下，一个年轻人，跑到社会上问，有位置吗？掌权者说，没有，还要等多长时间，小伙子只好暂时离开这里，去了一个临时的地方，过了段时间，又跑来问，，这个场景，难道不觉的熟悉吗？这是干什么呢？&lt;br /&gt;&lt;br /&gt;对了，你答对了，小伙子正是代表着找工作的学生，理发店里的位置代表着工作机会，而理发师的家，正是我们可爱的学校。&lt;br /&gt;&lt;br /&gt;这样，整个笑话就可以翻译成下面这样：&lt;br /&gt;&lt;br /&gt;本科毕业了，问有工作吗？没有，等两年吧，唉，那只好上硕士了；硕士毕业了，问有工作吗？没有，等三四年吧，唉，那只好上博士了；博士毕业了，问有工作吗？没有，再等吧，唉，，那只好上壮士了，，&lt;br /&gt;&lt;br /&gt;现在回到我们最初的问题，比尔是谁？再想想，现在哪个比尔最牛？&lt;br /&gt;&lt;br /&gt;恭喜你，又答对了，他就是比尔。盖茨&lt;br /&gt;&lt;br /&gt;这样你也就能明白比尔为什么笑得这么歇斯底里了，因为比尔大学没毕业就去工作了，所以他看到小伙子为了工作还回去读壮士，觉得实在是太搞笑了。&lt;br /&gt;&lt;br /&gt;综上，这个笑话其实是在讲上学和就业的问题。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-6370205094395060609?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/6370205094395060609/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/12/blog-post_30.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6370205094395060609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6370205094395060609'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/12/blog-post_30.html' title='一个笑话的分析'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-3054049200135092195</id><published>2008-12-29T10:39:00.000+08:00</published><updated>2008-12-29T10:40:41.549+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='算法'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>高效产生一组不重复的随机数</title><content type='html'>这个需求应该是很常见的吧，需要从 0 到 n 之间选 k 个不重复的数组成一个序列。&lt;br /&gt;&lt;br /&gt;    我最早遇到这个问题是在给校ACM比赛出题时，需要随机产生一些测试数据，当时我想的是用一个辅助数组记录之前已经产生的随机数，如果当前产生的随机数已经出现过就再重新随机。&lt;br /&gt;&lt;br /&gt;      显然这样的实现效率是很低的，设想从10000个数中随机产生10000个数的序列，当前面9999个数已经确定了时，最后一个数被随机到的概率是 0.0001，也就是说大概需要调用随机函数10000次才会产生。类似的，第9999个数被随机到的概率是0.0002……&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;我后来采用了一个改进的办法是，如果当前产生的随机数a已经在之前产生过了，就顺序去找比a小的数，直到找到一个之前没有产生过的数，如果找不到就找比a大的数。&lt;br /&gt;&lt;br /&gt;      可以看到这样的改进节省了大量的时间，但是这样产生的已经不是随机数序列了！&lt;br /&gt;     &lt;br /&gt;      试想从1，2，3，4中随机挑选2个数，假如第一次选出来的是3，那么第二次再选的话，选中2的概率就变成了1/2，因为当随机出来的数为2或3时，我们都选择2。&lt;br /&gt;&lt;br /&gt;      在我遇到的应用中，因为对随机数序列的“随机性”要求不是很高，所以凑合着用了上述办法。&lt;br /&gt;&lt;br /&gt;      直到今天在《Programming pearls》里看到这个很完美的办法：&lt;br /&gt;for(i = 0; i &lt; n; i++)&lt;br /&gt;{&lt;br /&gt;        x[i] = i;&lt;br /&gt;}&lt;br /&gt;for(i = 0; i &lt; k; i++)&lt;br /&gt;{&lt;br /&gt;        t = rand(i,n-1);&lt;br /&gt;        swap(x[i], x[t]);&lt;br /&gt;        out(x[i]);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;其中，rand(a,b)产生一个 a 到 b 之间的随机数，swap(a,b)交换a和b的值，out(a)把a输出作为结果。&lt;br /&gt;       我们来看看这个算法的完美之处吧！&lt;br /&gt;&lt;br /&gt;       首先，x数组里把0到n-1的所有数都存储了，而最后输出的都是x数组里的值，所以满足输出的数是k个0到n-1的数。&lt;br /&gt;&lt;br /&gt;       然后，我们对于第 i 次随机，产生一个 i 到 n-1 的下标 t ，并把x[t] 和x[i]交换，将其输出，这样每次产生的数都是之前没有出现过的数，因为之前出现过的数都在x[0] 到 x[i-1]里呢！这样就保证了输出数据的不重复性。&lt;br /&gt;&lt;br /&gt;       最后，我们考察输出数据的“随机性”，显然，因为交换操作，使得所有没有出现过的数都在x[i] 到 x[n-1]中存着呢，所以被选中的概率相等。&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;       写完上面这些文字之后，我在想，这样经典的算法，应该是早就已经出现了，但是我竟然还不知道，这样看来，我百度实习面试遭鄙视也就是很自然的了，这也算是我之前的一个毛病，喜欢遇到问题才去想怎么解决，没问题就很少看相关的书或资料，而对于自己能解决的问题(比如上面说的这个凑合着能用的问题)，我又懒得去找更好的甚或是标准的解决方法，所以才造成了我现在的知识局限，以后要多看书，多想问题，尽量多的积累知识吧……&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-3054049200135092195?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/3054049200135092195/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/12/blog-post.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3054049200135092195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3054049200135092195'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/12/blog-post.html' title='高效产生一组不重复的随机数'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-3263496512465064519</id><published>2008-12-29T10:32:00.001+08:00</published><updated>2008-12-29T10:35:35.901+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='科学'/><category scheme='http://www.blogger.com/atom/ns#' term='自然'/><title type='text'>为什么超光速会导致违反因果律——一个非常好的例子</title><content type='html'>在TopLanguage的讨论里看到的，很强大……&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;有一种飞行的哺乳动物叫做蝙蝠，夜晚出来觅食的时候，&lt;br /&gt;靠的是嘴中发出的超声波反射的回波，来判断周围的情形。&lt;br /&gt;假设有一个人在这只蝙蝠出来觅食的时候捣乱，于是用步枪朝着蝙蝠的身前开了一枪；&lt;br /&gt;子弹是超音速的，那么，在蝙蝠的听查判断中，这颗子弹是从哪里来的呢？&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;捣蛋的人 **A********B*******C*****D*****E******F***G***H***I***J***K**L********************************************************************* &gt;&gt;子弹方向&lt;br /&gt;&lt;br /&gt;                                            蝙蝠&lt;br /&gt;&lt;br /&gt;在捣蛋的人的眼里，子弹的轨迹很明显，A-B-C-D-E-F-G-H-I-J-K-L；&lt;br /&gt;可是在蝙蝠的耳朵里，却是一颗子弹在D处出现，然后分成两个，一颗(a)的轨迹是D-C-B-A然后没入步枪的枪口中，另外一颗(b)是D-E-F-G- H-I-J-K-L&lt;br /&gt;这是蝙蝠的超音速体验，如果这蝙蝠要建立一套物理学的话，必然会有这样的一条类似的定理：&lt;br /&gt;定理N：能量从虚空中产生，然后分裂为两个动量相反的子弹飞开－－可以类比 在人的眼中正反粒子的湮灭放出两个光子的过程，或者霍金的那一套理论（虚空中不断产生正负粒子对，不断湮灭，如果在黑洞附近，可能有负粒子进入黑洞的，引 起黑洞质量蒸发）&lt;br /&gt;蝙蝠们已经根据自己的观察，建立了一套蝙蝠种族的特有的物理学，类似于定理N这样的东西无处不在。如果突然有一个人类物理学家，带着人类的记忆转生在蝙蝠 世界，&lt;br /&gt;他开始纠正：定理N是不对的，超声速运动是存在的，这个子弹的轨迹是A-B-C-D-E-F-G-H-I-J-K-L －－旁边的实证主义者却会嘲笑他：搞笑吧，我们的的耳朵&lt;br /&gt;都是亲耳听到两个子弹从D产生，然后一个飞到A，另一个飞到L的；即使我们的耳朵被迷惑了，我们的实验仪器（蝙蝠科学家的实验仪器采用了一套奇异的构造， 他们把声音编码，用声音作为信息传递的方式(可类比人类的光电编码)）数据也明显证明了这一点：明显在D点发生的事情是原因，别的点观测到的现象都是D的 结果。你所谓的超声速如果成立，将会导致A-B-C-D-E-F-G-H-I-J-K-L轨迹的存在，这显然是否认了因果律阿。&lt;br /&gt;&lt;br /&gt;举例完成，将上边例子中的蝙蝠换成人类，将超声速换成超光速，即可理解为什么超光速会导致违反因果律。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-3263496512465064519?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/3263496512465064519/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/12/toplanguage.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3263496512465064519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3263496512465064519'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/12/toplanguage.html' title='为什么超光速会导致违反因果律——一个非常好的例子'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-6968606483517843336</id><published>2008-12-04T21:55:00.001+08:00</published><updated>2008-12-04T21:57:07.508+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><title type='text'>累了，身心俱疲……</title><content type='html'>傍晚的时候在楼道里晾衣服，看到窗外的城铁驶过，突然想到了去年这个时候，每天晚上坐城铁从公司回交大的情景。&lt;br /&gt;&lt;br /&gt;     不自觉地，一丝怀念涌了上来，仿佛又感受到了城铁车厢里那种特有的温暖……竟也开始怀念起在IBM实习的那段日子了……&lt;br /&gt;&lt;br /&gt;     突然想起，那段日子曾被我认为是最无聊，最枯燥的日子，整天在公司里看英文文档，码Java代码。同组的同事都是正式员工，在独立办公区，而我自己身处拥挤的机房，只能靠MSN交流，周围的“同事”都是Vendor，互相之间几乎都不认识，似乎也都不想认识，因而工作环境中只闻CPU风扇声及键盘敲击声，鲜闻人语……&lt;br /&gt;&lt;br /&gt;     记得当时曾和朋友们开玩笑说，我在公司一天，只说两句话，就是中午吃饭的时候对服务员说“来碗……”，结账时问一句“多少钱”……&lt;br /&gt;&lt;br /&gt;     这样的日子，今天竟然能被我忆起，而且还是怀念，让我自己也有些不解。&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;     后来去所里的路上我一直在思索为什么那段日子会让我怀念，等走到所里的时候，我也找到答案了……&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;那时候与现在最大的不同就是每天都有盼头，早上到公司之后，开始盼着吃午饭，趴着睡完午觉后开始盼着下班。每天下班后坐在地铁里，都有一种如释重负的感觉，想着一个美好的晚上在等着自己，可以和飞一起吃晚饭，回宿舍后可以看电影，打游戏，心情都会变得愉快起来。而周五下班后的地铁上，更是愉快的想唱歌了……&lt;br /&gt;&lt;br /&gt;     反观现在，每天早上花费极大的努力才能起来，起来之后不是去上课就是去实验室。而现在上的课，已经有好几门跟不上了，坐在教室里忍受着听天书的煎熬。下课之后又直奔实验室……&lt;br /&gt;&lt;br /&gt;     在实验室也倒不是全在做老板交代的活，还得顾及一下那些又多又烦，怎么写也写不完的作业。已经记不清从什么时候开始，一些课的作业已经沦落到抄的地步了……&lt;br /&gt;&lt;br /&gt;     实验室和移动研究院的项目也很烦人，当初签合同时漏掉的一些细节害的我们现在被牵着鼻子走，似乎有干不完的活……&lt;br /&gt;&lt;br /&gt;     到了第二天的凌晨，才从实验室出来，冒着寒风回到宿舍，洗漱完毕已经1点多了，再想想问题，经常到2点才能入睡。记得上周天特意12点就回宿舍，想睡个好觉迎接新的一周，结果却悲哀的发现，不到2点竟然难以入睡了……&lt;br /&gt;&lt;br /&gt;     现在唯一的盼头就是周末了，不过也只能拿出一天甚至半天的时间，打打球，和飞见见面，然后再次投入无穷无尽的作业和任务中……&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;     今天下午上自然辩证法的时候，带着笔记本赶模式识别的作业，一道编程题，按以往的效率，半个小时足矣，今天却足足调了两个小时。程序调出来了，巨大的失落却也跟着袭来，本科时候我一直引以为傲的学习效率，编程效率，一切的效率似乎都已经不见了，不知不觉间，我已经成了时间的奴隶，似乎整天都在赶着原本应该昨天做完的事情……&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;      想想马上就要到来的各门考试，想想欠着的作业、试验报告、文献阅读报告、编程大作业，想想老板交代下来的任务，想想20号的六级考试。突然觉得好累，好累……&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-6968606483517843336?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/6968606483517843336/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/12/ibm-javamsnvendorcpu.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6968606483517843336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6968606483517843336'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/12/ibm-javamsnvendorcpu.html' title='累了，身心俱疲……'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-660890376495651016</id><published>2008-11-13T23:23:00.000+08:00</published><updated>2008-11-13T23:25:20.276+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='算法'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>循环移位问题--巧妙的解答和证明</title><content type='html'>前几天订的《Programming Pearls》今天送到了，拿到书之后忍不住放下正在复习的英语书(下周有英语考试)，开始翻看起来，哪知道只是随便一看就看了20多页，因为是原版书，开着金山词霸边看变查，所以看得比较慢。不过书真的写的很好，看了前两卷的四个小问题，每个小问题的解决都很巧妙，尤其是下面这个问题：&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;考虑一个字符串abcdefgh，我们让它循环左移三位，那么就得到defghabc，问题就是给定一个长度为n的字符串，让其循环左移k次，求移位后的字符串。&lt;br /&gt;&lt;br /&gt;       显然，这是一个非常简单的问题，我想任何一个学过编程的人都能解决，现在我们给它加点限制条件，不能借助其它的存储空间，也就是说字符只能在这个字符串上移动，进行 “就地” 移位。&lt;br /&gt;&lt;br /&gt;       分析该问题，可以发现其本质就是将一个字符串分成两个字串ab，其中a包含前k个字符，而b包含其余字符，然后将字符串变为ba。&lt;br /&gt;&lt;br /&gt;       下面给出解决方法：&lt;br /&gt;       首先，我们可以很容易的实现字符串的就地逆转操作，比如abcd逆转为dcba只要依次将第一个和最后一个交换，第二个和倒数第二个交换……&lt;br /&gt;&lt;br /&gt;       有了逆串操作后，我们可以先将a逆转，得到a' 再将b 逆转得到 b'，然后将整个串a'b' 逆转，得到(a'b')' ，可以证明，这个串就是ba。&lt;br /&gt;       这个式子是不是很有趣，有点像矩阵转置规则吧。&lt;br /&gt;&lt;br /&gt;       其实这个方法已经在网上流传好久了，不过我之前费了很大的劲去想为什么这样就可以了呢，今天在书上看到了简洁而强大的证明：&lt;br /&gt;       这个证明只有一幅图，伸出你的左右手，按下图中所示去做，你会发现，原来这么简单！ &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n_vVcoJMer0/SRxGv7X3NJI/AAAAAAAAB1s/Y6g6Sis9Gk0/s1600-h/t1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 60px;" src="http://1.bp.blogspot.com/_n_vVcoJMer0/SRxGv7X3NJI/AAAAAAAAB1s/Y6g6Sis9Gk0/s200/t1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5268163453322212498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-660890376495651016?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/660890376495651016/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/11/blog-post_13.html#comment-form' title='4 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/660890376495651016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/660890376495651016'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/11/blog-post_13.html' title='循环移位问题--巧妙的解答和证明'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_n_vVcoJMer0/SRxGv7X3NJI/AAAAAAAAB1s/Y6g6Sis9Gk0/s72-c/t1.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-2799201420736564304</id><published>2008-11-12T18:00:00.002+08:00</published><updated>2008-11-12T18:03:28.381+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><category scheme='http://www.blogger.com/atom/ns#' term='趣事'/><title type='text'>交大与中科院的区别</title><content type='html'>交大红果园BBS鹊桥版截图(注：红线框住的部分为征女友的帖子)：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://fmn020.xnimg.cn/fmn020/blog/20081111/11/36/A461485379738LIU.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 280px;" src="http://fmn020.xnimg.cn/fmn020/blog/20081111/11/36/A461485379738LIU.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;中科院科苑星空BBS缘分天空版截图(注：红线框住的部分为征男友的帖子)：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://fmn016.xnimg.cn/fmn016/blog/20081111/11/36/A456798882452LIU.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 278px;" src="http://fmn016.xnimg.cn/fmn016/blog/20081111/11/36/A456798882452LIU.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-2799201420736564304?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/2799201420736564304/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/11/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2799201420736564304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2799201420736564304'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/11/blog-post.html' title='交大与中科院的区别'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-4465296230535760765</id><published>2008-11-12T17:52:00.001+08:00</published><updated>2008-11-12T17:58:41.808+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><title type='text'>莫非现在能上blogger了？</title><content type='html'>虽然连接仍然很不稳定，但貌似比之前好了很多，至少可以发帖了。&lt;br /&gt;希望就此解禁吧……&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-4465296230535760765?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/4465296230535760765/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/11/blogger.html#comment-form' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4465296230535760765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4465296230535760765'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/11/blogger.html' title='莫非现在能上blogger了？'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-9155282754906262322</id><published>2008-10-27T21:46:00.008+08:00</published><updated>2008-10-28T09:50:27.685+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cool'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>好酷的cooliris!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_n_vVcoJMer0/SQXHVqgE_oI/AAAAAAAAB00/esZKZI5qCMc/s1600-h/3D1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5261830914652307074" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; WIDTH: 320px; CURSOR: pointer; HEIGHT: 240px" alt="" src="http://2.bp.blogspot.com/_n_vVcoJMer0/SQXHVqgE_oI/AAAAAAAAB00/esZKZI5qCMc/s320/3D1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;今天无意中发现这个firefox插件，装上之后效果太酷了！&lt;br /&gt;可以在我实验室这么慢的机器上跑出那么专业的3D效果，而且更爽的是picasa网络相册可以完美支持，以后看照片就有眼福了…… :)&lt;br /&gt;下载地址&lt;a style="COLOR: rgb(51,102,255)" href="http://www.cooliris.com/" target="_blank"&gt;http://www.cooliris.com/&lt;/a&gt;&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n_vVcoJMer0/SQXHdrbniKI/AAAAAAAAB1E/33cTVIw40cA/s1600-h/3D3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5261831052340988066" style="FLOAT: middle; MARGIN: 0pt 10px 10px 0pt; WIDTH: 320px; CURSOR: pointer; HEIGHT: 240px" alt="" src="http://1.bp.blogspot.com/_n_vVcoJMer0/SQXHdrbniKI/AAAAAAAAB1E/33cTVIw40cA/s320/3D3.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_n_vVcoJMer0/SQXHZlAKwsI/AAAAAAAAB08/0Uxq6ZZUu9o/s1600-h/3D2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5261830981895766722" style="FLOAT: middle; MARGIN: 0pt 0pt 10px 10px; WIDTH: 320px; CURSOR: pointer; HEIGHT: 240px" alt="" src="http://4.bp.blogspot.com/_n_vVcoJMer0/SQXHZlAKwsI/AAAAAAAAB08/0Uxq6ZZUu9o/s320/3D2.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_n_vVcoJMer0/SQXHg7jQgXI/AAAAAAAAB1M/RLHcZj88eMI/s1600-h/3D4.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5261831108207608178" style="FLOAT: middle; MARGIN: 0pt 0pt 10px 10px; WIDTH: 320px; CURSOR: pointer; HEIGHT: 240px" alt="" src="http://3.bp.blogspot.com/_n_vVcoJMer0/SQXHg7jQgXI/AAAAAAAAB1M/RLHcZj88eMI/s320/3D4.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-9155282754906262322?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/9155282754906262322/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/cooliris.html#comment-form' title='4 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/9155282754906262322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/9155282754906262322'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/cooliris.html' title='好酷的cooliris!'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_n_vVcoJMer0/SQXHVqgE_oI/AAAAAAAAB00/esZKZI5qCMc/s72-c/3D1.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-7936476896847674429</id><published>2008-10-27T13:39:00.002+08:00</published><updated>2008-10-27T13:48:44.517+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ACM'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>Eratosthenes素数筛选法的最佳实现方法</title><content type='html'>这个素数筛选法应该是搞ACM竞赛非常常用的算法之一了，不过我之前写的几种实现都还不是最高效的，直到今天为了验证一个结论又写了一遍，才总结出目前我写的最高效的写法：&lt;br /&gt;&lt;code&gt;&lt;br /&gt;memset(isprime,true,sizeof(isprime));&lt;br /&gt; for(i = 2; i*i &lt; size; i++)&lt;br /&gt; {&lt;br /&gt;  if(isprime[i])&lt;br /&gt;  {&lt;br /&gt;   for(j = i*i; j &lt; size; j += i)&lt;br /&gt;    isprime[j] = false;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-7936476896847674429?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/7936476896847674429/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/eratosthenes.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/7936476896847674429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/7936476896847674429'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/eratosthenes.html' title='Eratosthenes素数筛选法的最佳实现方法'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-4674212769883726486</id><published>2008-10-24T01:29:00.003+08:00</published><updated>2008-10-24T02:24:00.826+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='算法'/><category scheme='http://www.blogger.com/atom/ns#' term='排序'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>数据顺序对快速排序的影响</title><content type='html'>几乎每一个学过数据结构的人都知道当数据越有序时，快速排序的性能越差，极端情况下，当数据已经是有序的时候，通常实现的快排算法(指选取第一个值或最后一个值做枢值的实现方法)就会退化到O(n^2)。&lt;br /&gt;&lt;br /&gt;但是理论归理论，之前只是知道这么一个东西，今天终于碰上了……&lt;br /&gt;&lt;br /&gt;在做实验室项目的ETL模块的时候，需要在每行数据前加一个id,以之作为hadoop的map操作中的key值(关于hadoop和map,reduce的一些介绍和简单的使用方法，我会在项目结束的时候再写一个总结)。&lt;br /&gt;&lt;br /&gt;而在reduce操作之前，每一个reduce的task会以key值为关键字对记录进行排序，这个排序用的就是快速排序。&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;之前我曾经写过一个3千万行的大数据测试过ETL操作，没有问题，但今天赵哥用同样规模的数据测试算法模块时，却出现排序过程中的内存溢出问题。&lt;br /&gt;&lt;br /&gt;为了搞清出错原因，我们和力哥一起作了一些试验，发现我的数据和赵哥的数据区别就在于，我的id是随机生成的，而赵哥的id是用的行号，于是我又生成一个3千万行的数据，以行号为id，跑ETL操作，结果也出现了同样的问题。&lt;br /&gt;&lt;br /&gt;后来还是力哥最先想到了数据有序对快排的影响，因为以行号作为id，那么id就有以升序排列的了，因而影响了快排……力哥不愧是力哥，我虽然早就知道这一知识，但如果不是他提醒，估计很难想到这一点，惭愧啊……&lt;br /&gt;&lt;br /&gt;后来我做了一点简单计算，来说明这个问题：&lt;br /&gt;在map,reduce中，一个part最大是64M，我造的数据一行大概是30个字节左右，就取做32个字节，那么一个part大概有2000000条记录，如果是有序的话，那么对一个长为n的序列调用一个快排，会将其分为一个长为n-1的序列和一个长为0(即没有)的序列，所以需要调用2000000次快排函数，而快排里的函数调用是递归形式的，也就是说递归深度达到了2百万，这么深的递归，不超栈才怪……&lt;br /&gt;&lt;br /&gt;而在完美情况下，即每一次快排操作都将原序列分成两个长度相等的序列，这样的话递归深度为log(2000000)，注意这里的log是以2为低的，计算一下，我们会知道这个数量只有21。&lt;br /&gt;&lt;br /&gt;而在数据完全无序的情况下，只要有一次快排操作将一个长为n的序列分为大致等长的序列，就将减少大约n/2的递归深度，而和快排过程中会产生的大量序列比较，出现这样的情况是不会少的，所以和有序情况相比，两者仍然不是一个量级上的。&lt;br /&gt;&lt;br /&gt;经过今天的实际经历，对快排的理解又加深了一些，正好刚才又看到刘未鹏大牛讲快排的一篇文章，写得非常好，看完之后有一种恍然大悟的感觉，下面给出链接：&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.csdn.net/pongba/archive/2008/06/13/2544933.aspx"&gt;&lt;span style="color:#3333ff;"&gt;数学之美番外篇：快排为什么那样快&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-4674212769883726486?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/4674212769883726486/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_24.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4674212769883726486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4674212769883726486'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_24.html' title='数据顺序对快速排序的影响'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-398732297769992509</id><published>2008-10-21T11:08:00.004+08:00</published><updated>2008-10-30T23:04:55.184+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='新闻'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>今天你黑屏了吗?</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_n_vVcoJMer0/SP1H79PEzOI/AAAAAAAAB0I/TGGpf9eZd24/s1600-h/W020081020400925085345.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5259439035214253282" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_n_vVcoJMer0/SP1H79PEzOI/AAAAAAAAB0I/TGGpf9eZd24/s400/W020081020400925085345.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;无意中在网上看到这幅强图……&lt;br /&gt;最近很多关于MS黑屏反盗版的新闻，不过对于我这种装上XP就直接关闭自动更新的人来说，暂时是没有什么影响的。&lt;br /&gt;个人觉得这次MS反盗版的主要目的还是舆论宣传，因为作为全球最大的软件公司，真要反盗版的话，应该是不会使用这么没有技术含量的手段的……&lt;br /&gt;现在反倒还有点期待MS能使用什么NB的技术，在用户删除自动更新模块、修改注册表等一系列措施下，仍然能够检测出用户在使用盗版XP，然后黑屏之，好让我们开开眼界……&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-398732297769992509?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/398732297769992509/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_21.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/398732297769992509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/398732297769992509'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_21.html' title='今天你黑屏了吗?'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_n_vVcoJMer0/SP1H79PEzOI/AAAAAAAAB0I/TGGpf9eZd24/s72-c/W020081020400925085345.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-7374740051429700573</id><published>2008-10-20T21:48:00.003+08:00</published><updated>2008-10-23T13:53:09.101+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='视频'/><category scheme='http://www.blogger.com/atom/ns#' term='交大'/><title type='text'>北京交通大学2009宣传片</title><content type='html'>在飞的校内上看到的，看到那些熟悉的场景，还是很怀念的……&lt;br /&gt;&lt;embed src="http://player.youku.com/player.php/sid/XNDQ5ODI1MTY=/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-7374740051429700573?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/7374740051429700573/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/2009.html#comment-form' title='4 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/7374740051429700573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/7374740051429700573'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/2009.html' title='北京交通大学2009宣传片'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-894366345942202725</id><published>2008-10-09T23:31:00.007+08:00</published><updated>2008-10-23T21:32:55.304+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>Java的Zip压缩与解压</title><content type='html'>这是去年在IBM实习的时候写的了，没想到今天又用到一次，既然会用到，就还是从老Blog上转过来吧。&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;为了处理文件夹，压缩和解压缩都使用递归实现。&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;DIV class=source style="FONT-FAMILY: '[object]','Lucida Console','Courier New','monospace'; BACKGROUND-COLOR: #f9f7ed" jQuery1224768290584="2"&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;//压缩：&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;class&lt;/SPAN&gt; Zip {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;static&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;final&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;int&lt;/SPAN&gt; BUFFER = &lt;SPAN style="COLOR: #0000ff"&gt;2048&lt;/SPAN&gt;; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;public&lt;/SPAN&gt; Zip(){}&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;static&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;void&lt;/SPAN&gt; zip(String destfile,String surfile) {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;try&lt;/SPAN&gt; {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; FileOutputStream dest = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; FileOutputStream(destfile); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; ZipOutputStream out = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; ZipOutputStream(&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; BufferedOutputStream(&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; dest)); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; File f = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; File(surfile); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; File files[] = f.&lt;SPAN style="COLOR: #ff0000"&gt;listFiles&lt;/SPAN&gt;();&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;for&lt;/SPAN&gt;(&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;int&lt;/SPAN&gt; i = &lt;SPAN style="COLOR: #0000ff"&gt;0&lt;/SPAN&gt;; i &amp;lt; files.&lt;SPAN style="COLOR: #ff0000"&gt;length&lt;/SPAN&gt;; i )&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; zipit(out,files[i],files[i].&lt;SPAN style="COLOR: #ff0000"&gt;getName&lt;/SPAN&gt;());&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;//注意，这里如果用zipit(out,f,surfile)且被压缩的是一个文件夹的话，压缩出来的zip文件里第一层是该文件夹。而这里这样做的话，压缩出来的zip文件里第一层就是该文件夹下的内容。&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; out.&lt;SPAN style="COLOR: #ff0000"&gt;close&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp; } &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;catch&lt;/SPAN&gt; (Exception e) {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; e.&lt;SPAN style="COLOR: #ff0000"&gt;printStackTrace&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp; }&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;}&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;private&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;static&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;void&lt;/SPAN&gt; zipit(ZipOutputStream out, File f, String base) &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;throws&lt;/SPAN&gt; Exception {&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferedInputStream reader = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;null&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.&lt;SPAN style="COLOR: #ff0000"&gt;out&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #ff0000"&gt;println&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #0000ff"&gt;&amp;quot;Zipping&amp;nbsp;&amp;nbsp; &amp;quot;&lt;/SPAN&gt; f.&lt;SPAN style="COLOR: #ff0000"&gt;getName&lt;/SPAN&gt;()); &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;//记录日志，开始压缩&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;if&lt;/SPAN&gt; (f.&lt;SPAN style="COLOR: #ff0000"&gt;isDirectory&lt;/SPAN&gt;()) {&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;// 如果是文件夹，则获取下面的所有文件&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File[] fl = f.&lt;SPAN style="COLOR: #ff0000"&gt;listFiles&lt;/SPAN&gt;();&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.&lt;SPAN style="COLOR: #ff0000"&gt;putNextEntry&lt;/SPAN&gt;(&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; ZipEntry(base &lt;SPAN style="COLOR: #0000ff"&gt;&amp;quot;/&amp;quot;&lt;/SPAN&gt;));&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base = &lt;SPAN style="COLOR: #0000ff"&gt;&amp;quot;/&amp;quot;&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;for&lt;/SPAN&gt; (&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;int&lt;/SPAN&gt; i = &lt;SPAN style="COLOR: #0000ff"&gt;0&lt;/SPAN&gt;; i &amp;lt; fl.&lt;SPAN style="COLOR: #ff0000"&gt;length&lt;/SPAN&gt;; i ) {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zipit(out, fl[i], base fl[i].&lt;SPAN style="COLOR: #ff0000"&gt;getName&lt;/SPAN&gt;());&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;else&lt;/SPAN&gt; {&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;// 如果是文件，则压缩&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.&lt;SPAN style="COLOR: #ff0000"&gt;putNextEntry&lt;/SPAN&gt;(&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; ZipEntry(base)); &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;// 生成下一个压缩节点&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileInputStream in = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; FileInputStream(f);&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;// 读取文件内容&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reader = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; BufferedInputStream(in, BUFFER);&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;int&lt;/SPAN&gt; count; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;byte&lt;/SPAN&gt; data[] = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;byte&lt;/SPAN&gt;[BUFFER];&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;while&lt;/SPAN&gt; ((count = reader.&lt;SPAN style="COLOR: #ff0000"&gt;read&lt;/SPAN&gt;(data, &lt;SPAN style="COLOR: #0000ff"&gt;0&lt;/SPAN&gt;, BUFFER)) != -&lt;SPAN style="COLOR: #0000ff"&gt;1&lt;/SPAN&gt;)&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.&lt;SPAN style="COLOR: #ff0000"&gt;write&lt;/SPAN&gt;(data, &lt;SPAN style="COLOR: #0000ff"&gt;0&lt;/SPAN&gt;, count); &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;// 写入到压缩包&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reader.&lt;SPAN style="COLOR: #ff0000"&gt;close&lt;/SPAN&gt;();&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in.&lt;SPAN style="COLOR: #ff0000"&gt;close&lt;/SPAN&gt;();&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;}&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;}&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;//解压缩：&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;class&lt;/SPAN&gt; Unzip {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;static&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;final&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;int&lt;/SPAN&gt; BUFFER = &lt;SPAN style="COLOR: #0000ff"&gt;2048&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;static&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;void&lt;/SPAN&gt; unzip(String destfile,String surfile) {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;try&lt;/SPAN&gt; {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; String filePath = destfile &lt;SPAN style="COLOR: #0000ff"&gt;&amp;quot;\\&amp;quot;&lt;/SPAN&gt;; &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; System.&lt;SPAN style="COLOR: #ff0000"&gt;out&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #ff0000"&gt;println&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #0000ff"&gt;&amp;quot;unzip &amp;quot;&lt;/SPAN&gt; surfile &lt;SPAN style="COLOR: #0000ff"&gt;&amp;quot; to &amp;quot;&lt;/SPAN&gt; destfile);&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; ZipFile zipFile = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; ZipFile(surfile); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; Enumeration emu = zipFile.&lt;SPAN style="COLOR: #ff0000"&gt;entries&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;while&lt;/SPAN&gt;(emu.&lt;SPAN style="COLOR: #ff0000"&gt;hasMoreElements&lt;/SPAN&gt;()){&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZipEntry entry = (ZipEntry)emu.&lt;SPAN style="COLOR: #ff0000"&gt;nextElement&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;//会把目录作为一个file读出一次，所以只建立目录就可以，之下的文件还会被迭代到。&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;if&lt;/SPAN&gt; (entry.&lt;SPAN style="COLOR: #ff0000"&gt;isDirectory&lt;/SPAN&gt;())&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; File(filePath entry.&lt;SPAN style="COLOR: #ff0000"&gt;getName&lt;/SPAN&gt;()).&lt;SPAN style="COLOR: #ff0000"&gt;mkdirs&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;continue&lt;/SPAN&gt;; &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferedInputStream bis = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; BufferedInputStream(zipFile.&lt;SPAN style="COLOR: #ff0000"&gt;getInputStream&lt;/SPAN&gt;(entry)); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; File file = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; File(filePath entry.&lt;SPAN style="COLOR: #ff0000"&gt;getName&lt;/SPAN&gt;()); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;//加入这个的原因是zipfile读取文件是随机读取的，这就造成可能先读取一个文件&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #008800; FONT-STYLE: italic"&gt;//而这个文件所在的目录还没有出现过，所以要建出目录来。&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; File parent = file.&lt;SPAN style="COLOR: #ff0000"&gt;getParentFile&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;if&lt;/SPAN&gt;(parent != &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;null&lt;/SPAN&gt; &amp;amp;&amp;amp; (!parent.&lt;SPAN style="COLOR: #ff0000"&gt;exists&lt;/SPAN&gt;())){&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; parent.&lt;SPAN style="COLOR: #ff0000"&gt;mkdirs&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; FileOutputStream fos = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; FileOutputStream(file); &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; BufferedOutputStream bos = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; BufferedOutputStream(fos,BUFFER); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;int&lt;/SPAN&gt; count; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;byte&lt;/SPAN&gt; data[] = &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;new&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;byte&lt;/SPAN&gt;[BUFFER]; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;while&lt;/SPAN&gt; ((count = bis.&lt;SPAN style="COLOR: #ff0000"&gt;read&lt;/SPAN&gt;(data, &lt;SPAN style="COLOR: #0000ff"&gt;0&lt;/SPAN&gt;, BUFFER)) != -&lt;SPAN style="COLOR: #0000ff"&gt;1&lt;/SPAN&gt;)&lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bos.&lt;SPAN style="COLOR: #ff0000"&gt;write&lt;/SPAN&gt;(data, &lt;SPAN style="COLOR: #0000ff"&gt;0&lt;/SPAN&gt;, count); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; bos.&lt;SPAN style="COLOR: #ff0000"&gt;flush&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; bos.&lt;SPAN style="COLOR: #ff0000"&gt;close&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; bis.&lt;SPAN style="COLOR: #ff0000"&gt;close&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; zipFile.&lt;SPAN style="COLOR: #ff0000"&gt;close&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp; } &lt;SPAN style="FONT-WEIGHT: bold; COLOR: #000080"&gt;catch&lt;/SPAN&gt; (Exception e) {&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; e.&lt;SPAN style="COLOR: #ff0000"&gt;printStackTrace&lt;/SPAN&gt;(); &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp; }&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;}&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008800; FONT-STYLE: italic"&gt;&lt;/SPAN&gt;}&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-894366345942202725?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/894366345942202725/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/javazip.html#comment-form' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/894366345942202725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/894366345942202725'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/javazip.html' title='Java的Zip压缩与解压'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-4195975836784658750</id><published>2008-10-07T13:38:00.013+08:00</published><updated>2008-10-24T03:17:04.515+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ACM'/><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><category scheme='http://www.blogger.com/atom/ns#' term='旅游'/><title type='text'>Stockholm VS Banff</title><content type='html'>看了这个标题，估计很多人会以为我去过这两个地方，现在写一篇比较两个著名游览胜地的文章，其实不是……&lt;br /&gt;&lt;br /&gt;时间过得好快，今天为了测试是否连上国际网，打开了ICPC的主页，看到了这张图片：&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_n_vVcoJMer0/SOr2nTpuP-I/AAAAAAAAAF0/f2CjTar4wn8/s1600-h/stockholm.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5254283070431707106" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_n_vVcoJMer0/SOr2nTpuP-I/AAAAAAAAAF0/f2CjTar4wn8/s400/stockholm.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;09年World Final的举办地Stockholm(斯德哥尔摩)，该城是瑞典第一大城市,面积186平方公里,人口76万。斯德哥尔摩大区包括周围4个市区,人口共186万。位于辽阔的波罗的海西岸，座落在梅拉伦湖入海处，市区分布在14座岛屿和一个半岛上，70余座大小桥梁把它们联为一体，素有“北方威尼斯”的美誉。&lt;br /&gt;&lt;br /&gt;看的我好想去呀，虽然今年的Banff之旅也很梦幻，但是两者的美是截然不同的，毕竟我生长在云贵高原，见惯了大山大河，虽然对Banff国家公园的静谧，梦幻之美深有感触，但还是更愿意游览一下我从来没有见过的水城……&lt;br /&gt;&lt;br /&gt;祝愿Louty和gasa和小亮今年能好好发挥，能到Stockholm去，给我带回几张照片就好了，呵呵……&lt;br /&gt;&lt;br /&gt;最后贴几张对比照片吧：&lt;br /&gt;先来Stockholm的:&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_n_vVcoJMer0/SOr5SuWw5rI/AAAAAAAAAF8/NJAplOH-R6E/s1600-h/ruidian15_23898.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5254286015357576882" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_n_vVcoJMer0/SOr5SuWw5rI/AAAAAAAAAF8/NJAplOH-R6E/s400/ruidian15_23898.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_n_vVcoJMer0/SOr5arfIyrI/AAAAAAAAAGE/LQN_BwUJNgE/s1600-h/ruidian14_26069.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5254286152026344114" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_n_vVcoJMer0/SOr5arfIyrI/AAAAAAAAAGE/LQN_BwUJNgE/s400/ruidian14_26069.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;然后是Banff的：&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_n_vVcoJMer0/SOr6Mf_kXvI/AAAAAAAAAGM/n-i1QIhJEGg/s1600-h/3471750.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5254287007934602994" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_n_vVcoJMer0/SOr6Mf_kXvI/AAAAAAAAAGM/n-i1QIhJEGg/s400/3471750.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_n_vVcoJMer0/SOr6V9Ks4-I/AAAAAAAAAGc/kUh2uhp7jOY/s1600-h/3471775.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5254287170384749538" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_n_vVcoJMer0/SOr6V9Ks4-I/AAAAAAAAAGc/kUh2uhp7jOY/s400/3471775.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;最后来一张我自己在Banff的WS照(大家不要拍啊……)：&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_n_vVcoJMer0/SOr6qJos2DI/AAAAAAAAAGk/oq0gCBUcYuE/s1600-h/IMG_2079.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5254287517329184818" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_n_vVcoJMer0/SOr6qJos2DI/AAAAAAAAAGk/oq0gCBUcYuE/s400/IMG_2079.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;.....&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-4195975836784658750?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/4195975836784658750/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/stockholm-vs-banff.html#comment-form' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4195975836784658750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4195975836784658750'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/stockholm-vs-banff.html' title='Stockholm VS Banff'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_n_vVcoJMer0/SOr2nTpuP-I/AAAAAAAAAF0/f2CjTar4wn8/s72-c/stockholm.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-5303144109990870384</id><published>2008-10-04T11:41:00.003+08:00</published><updated>2008-10-04T14:46:07.963+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='面试'/><category scheme='http://www.blogger.com/atom/ns#' term='趣题'/><title type='text'>[转]经典的面试题</title><content type='html'>自从上次百度面试被拒之后，再也不敢小看这种很考思维的面试题了，正好在M牛的Blog上看到一些，好东西转来大家一起分享(答案颜色设置成白色了，选中即可看到)：&lt;br /&gt;原文出处：&lt;br /&gt;&lt;a href="http://www.matrix67.com/blog/archives/501" target="_blank"&gt;&lt;span style="color:#3366ff;"&gt;http://www.matrix67.com/blog/archives/501&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;1. 考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币，每次必需且只能放置一枚硬币，要求硬币完全置于桌面内（不能有一部分悬在桌子外面），并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币，谁就输了。游戏的先行者还是后行者有必胜策略？这种策略是什么？&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;先行者在桌子中心放置一枚硬币，以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样，只要后行者能放，先行者一定也有地方放。先行者必胜。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. 用线性时间和常数附加空间将一篇文章的单词（不是字符）倒序。&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;先将整篇文章的所有字符逆序（从两头起不断交换位置相对称的字符）；然后用同样的办法将每个单词内部的字符逆序。这样，整篇文章的单词顺序颠倒了，但单词本身又被转回来了。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. 用线性时间和常数附加空间将一个长度为n的字符串向左循环移动m位（例如，"abcdefg"移动3位就变成了"defgabc"）。&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;把字符串切成长为m和n-m的两半。将这两个部分分别逆序，再对整个字符串逆序。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. 一个矩形蛋糕，蛋糕内部有一块矩形的空洞。只用一刀，如何将蛋糕切成大小相等的两块？&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;注意到平分矩形面积的线都经过矩形的中心。过大矩形和空心矩形各自的中心画一条线，这条线显然把两个矩形都分成了一半，它们的差当然也是相等的。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. 一块矩形的巧克力，初始时由N x M个小块组成。每一次你只能把一块巧克力掰成两个小矩形。最少需要几次才能把它们掰成N x M块1x1的小巧克力？&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;N x M - 1次显然足够了。这个数目也是必需的，因为每掰一次后当前巧克力的块数只能增加一，把巧克力分成N x M块当然需要至少掰N x M - 1次。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6. 如何快速找出一个32位整数的二进制表达里有多少个"1"？用关于"1"的个数的线性时间？&lt;br /&gt;答案1（关于数字位数线性）：&lt;span style="color:#ffffff;"&gt;for(n=0; b; b &gt;&gt;= 1) if (b &amp;amp; 1) n++;&lt;br /&gt;&lt;/span&gt;答案2（关于"1"的个数线性）：&lt;span style="color:#ffffff;"&gt;for(n=0; b; n++) b &amp;amp;= b-1;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;7. 一个大小为N的数组，所有数都是不超过N-1的正整数。用O(N)的时间找出重复的那个数（假设只有一个）。一个大小为N的数组，所有数都是不超过N+1的正整数。用O(N)的时间找出没有出现过的那个数（假设只有一个）。&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;计算数组中的所有数的和，再计算出从1到N-1的所有数的和，两者之差即为重复的那个数。计算数组中的所有数的和，再计算出从1到N+1的所有数的和，两者之差即为缺少的那个数。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;8. 给出一行C语言表达式，判断给定的整数是否是一个2的幂。&lt;br /&gt;答案&lt;span style="color:#ffffff;"&gt;：(b &amp;amp; (b-1)) == 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;9. 地球上有多少个点，使得从该点出发向南走一英里，向东走一英里，再向北走一英里之后恰好回到了起点？&lt;br /&gt;答案&lt;span style="color:#ffffff;"&gt;：“北极点”是一个传统的答案，其实这个问题还有其它的答案。事实上，满足要求的点有无穷多个。所有距离南极点1 + 1/(2π)英里的地方都是满足要求的，向南走一英里后到达距离南极点1/(2π)的地方，向东走一英里后正好绕行纬度圈一周，再向北走原路返回到起点。事实上，这仍然不是满足要求的全部点。距离南极点1 + 1/(2kπ)的地方都是可以的，其中k可以是任意一个正整数。&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;10. A、B两人分别在两座岛上。B生病了，A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西，但东西只能放在箱子里。只要箱子没被上锁，C都会偷走箱子里的东西，不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙，A应该如何把东西安全递交给B？&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;A把药放进箱子，用自己的锁把箱子锁上。B拿到箱子后，再在箱子上加一把自己的锁。箱子运回A后，A取下自己的锁。箱子再运到B手中时，B取下自己的锁，获得药物。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;11. 一对夫妇邀请N-1对夫妇参加聚会（因此聚会上总共有2N人）。每个人都和所有自己不认识的人握了一次手。然后，男主人问其余所有人（共2N-1个人）各自都握了几次手，得到的答案全部都不一样。假设每个人都认识自己的配偶，那么女主人握了几次手？&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;握手次数只可能是从0到2N-2这2N-1个数。除去男主人外，一共有2N-1个人，因此每个数恰好出现了一次。其中有一个人(0)没有握手，有一个人(2N-2)和所有其它的夫妇都握了手。这两个人肯定是一对夫妻，否则后者将和前者握手（从而前者的握手次数不再是0）。除去这对夫妻外，有一个人(1)只与(2N-2)握过手，有一个人(2N-3)和除了(0)以外的其它夫妇都握了手。这两个人肯定是一对夫妻，否则后者将和前者握手（从而前者的握手次数不再是1）。以此类推，直到握过N-2次手的人和握过N次手的人配成一对。此时，除了男主人及其配偶以外，其余所有人都已经配对。根据排除法，最后剩下来的那个握手次数为N-1的人就是女主人了。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;12. 两个机器人，初始时位于数轴上的不同位置。给这两个机器人输入一段相同的程序，使得这两个机器人保证可以相遇。程序只能包含“左移n个单位”、“右移n个单位”，条件判断语句If，循环语句while，以及两个返回Boolean值的函数“在自己的起点处”和“在对方的起点处”。你不能使用其它的变量和计数器。&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;两个机器人同时开始以单位速度右移，直到一个机器人走到另外一个机器人的起点处。然后，该机器人以双倍速度追赶对方。程序如下。&lt;br /&gt;while(!at_other_robots_start) {&lt;br /&gt;move_right 1&lt;br /&gt;}&lt;br /&gt;while(true) {&lt;br /&gt;move_right 2&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;13. 如果叫你从下面两种游戏中选择一种，你选择哪一种？为什么？&lt;br /&gt;a. 写下一句话。如果这句话为真，你将获得10美元；如果这句话为假，你获得的金钱将少于10美元或多于10美元（但不能恰好为10美元）。&lt;br /&gt;b. 写下一句话。不管这句话的真假，你都会得到多于10美元的钱。&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;选择第一种游戏，并写下“我既不会得到10美元，也不会得到10000000美元”。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;14. 你在一幢100层大楼下，有21根电线线头标有数字1..21。这些电线一直延伸到大楼楼顶，楼顶的线头处标有字母A..U。你不知道下面的数字和上面的字母的对应关系。你有一个电池，一个灯泡，和许多很短的电线。如何只上下楼一次就能确定电线线头的对应关系？&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;在下面把2,3连在一起，把4到6全连在一起，把7到10全连在一起，等等，这样你就把电线分成了6个“等价类”，大小分别为1, 2, 3, 4, 5, 6。然后到楼顶，测出哪根线和其它所有电线都不相连，哪些线和另外一根相连，哪些线和另外两根相连，等等，从而确定出字母A..U各属于哪个等价类。现在，把每个等价类中的第一个字母连在一起，形成一个大小为6的新等价类；再把后5个等价类中的第二个字母连在一起，形成一个大小为5的新等价类；以此类推。回到楼下，把新的等价类区别出来。这样，你就知道了每个数字对应了哪一个原等价类的第几个字母，从而解决问题。&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;15. 某种药方要求非常严格，你每天需要同时服用A、B两种药片各一颗，不能多也不能少。这种药非常贵，你不希望有任何一点的浪费。一天，你打开装药片A的药瓶，倒出一粒药片放在手心；然后打开另一个药瓶，但不小心倒出了两粒药片。现在，你手心上有一颗药片A，两颗药片B，并且你无法区别哪个是A，哪个是B。你如何才能严格遵循药方服用药片，并且不能有任何的浪费？&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;把手上的三片药各自切成两半，分成两堆摆放。再取出一粒药片A，也把它切成两半，然后在每一堆里加上半片的A。现在，每一堆药片恰好包含两个半片的A和两个半片的B。一天服用其中一堆即可。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;16. 你在一个飞船上，飞船上的计算机有n个处理器。突然，飞船受到外星激光武器的攻击，一些处理器被损坏了。你知道有超过一半的处理器仍然是好的。你可以向一个处理器询问另一个处理器是好的还是坏的。一个好的处理器总是说真话，一个坏的处理器总是说假话。用n-2次询问找出一个好的处理器。&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;给处理器从1到n标号。用符号a-&gt;b表示向标号为a的处理器询问处理器b是不是好的。首先问1-&gt;2，如果1说不是，就把他们俩都去掉（去掉了一个好的和一个坏的，则剩下的处理器中好的仍然过半），然后从3-&gt;4开始继续发问。如果1说2是好的，就继续问2-&gt;3，3-&gt;4，……直到某一次j说j+1是坏的，把j和j+1去掉，然后问j-1 -&gt; j+2；或者从j+2 -&gt; j+3开始发问，如果前面已经没有j-1了（之前已经被去掉过了）。注意到你始终维护着这样一个“链”，前面的每一个处理器都说后面那个是好的。这条链里的所有处理器要么都是好的，要么都是坏的。当这条链越来越长，剩下的处理器越来越少时，总有一个时候这条链超过了剩下的处理器的一半，此时可以肯定这条链里的所有处理器都是好的。或者，越来越多的处理器都被去掉了，链的长度依旧为0，而最后只剩下一个或两个处理器没被问过，那他们一定就是好的了。另外注意到，第一个处理器的好坏从来没被问过，仔细想想你会发现最后一个处理器的好坏也不可能被问到（一旦链长超过剩余处理器的一半，或者最后没被去掉的就只剩这一个了时，你就不问了），因此询问次数不会超过n-2。&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;17. 一个圆盘被涂上了黑白二色，两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向？&lt;br /&gt;&lt;br /&gt;答案：&lt;span style="color:#ffffff;"&gt;你可以把两个相机放在圆盘上相近的两点，然后观察哪个点先变色。事实上，只需要一个相机就够了。控制相机绕圆盘中心顺时针移动，观察颜色多久变一次；然后让相机以相同的速度逆时针绕着圆盘中心移动，再次观察变色的频率。可以断定，变色频率较慢的那一次，相机的转动方向是和圆盘相同的。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-5303144109990870384?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/5303144109990870384/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_04.html#comment-form' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/5303144109990870384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/5303144109990870384'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_04.html' title='[转]经典的面试题'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-5758347063432213434</id><published>2008-10-04T10:21:00.005+08:00</published><updated>2008-10-04T15:32:39.627+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='趣题'/><title type='text'>趣题：2n+1个点中任n个都与同一点相连，则存在一个连接所有点的点</title><content type='html'>这又是在Matrix67大牛的Blog上看到的趣题，其实很早前xiaox就给我介绍过M牛的Blog，不过一直没仔细看，这几天在实验室写作业累了就上他的Blog看看，真的有不少收获。&lt;br /&gt;在这里给个链接吧：&lt;br /&gt;&lt;a href="http://www.matrix67.com/" target="_blank"&gt;http://www.matrix67.com/&lt;/a&gt;&lt;br /&gt;好了，言归正传，下面给出原题目的描述：&lt;br /&gt;.....&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;有2n+1个人，他们的朋友关系满足这样一种奇特的性质：任选n个人，则在剩下的人中总能找到一个人，他和这n个人都是朋友。求证，存在这样一个人，他和所有人都是朋友。我们假设朋友关系是双向的，也就是说如果A是B的朋友，那么B一定是A的朋友。&lt;br /&gt;&lt;br /&gt;接下来是我的证明：&lt;br /&gt;&lt;code&gt;&lt;br /&gt;当n等于1的时候，画个图就知道肯定成立，所以我们考虑n&gt;=2的情况，我们先取出2个互为朋友的人来，组成一个集合A，我们想让集合A中的人两两互为朋友，用图论的术语说就是让集合A是一个完全图。&lt;br /&gt;&lt;br /&gt;接下来，我们任意取出n-2个人，和A中的人构成了n个人的集合B，那么由题意，我们知道剩下的人中有一个和B中的n个人都是朋友，这样我们就可以把这个人加入到集合A中，集合A的人数变为3。&lt;br /&gt;&lt;br /&gt;重复以上操作，我们可以把集合A扩展到n+1个人，这时候，在集合A以外有n个人，于是根据题设，集合A中一定有一个人和A以外的n个人是朋友，而集合A中的人两两互为朋友，因而这个人和其余所有人都是朋友。&lt;br /&gt;&lt;br /&gt;命题得证。&lt;/code&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-5758347063432213434?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/5758347063432213434/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/2n1n.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/5758347063432213434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/5758347063432213434'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/2n1n.html' title='趣题：2n+1个点中任n个都与同一点相连，则存在一个连接所有点的点'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-3230548224301773544</id><published>2008-10-03T23:58:00.012+08:00</published><updated>2008-10-04T09:56:50.910+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='小游戏'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>一个有趣的编程启蒙游戏</title><content type='html'>&lt;object data="http://armorgames.com/files/games/light-bot-2205.swf" type="application/x-shockwave-flash" width="550" height="375"&gt;&lt;br /&gt;&lt;param name="movie" value="http://armorgames.com/files/games/light-bot-2205.swf"/&gt;&lt;br /&gt;&lt;param name="wmode" value="transparent"/&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;在Matrix67大牛的Blog上看到的，适合给没有学过编程的人了解一下什么是“程序设计”。&lt;br /&gt;&lt;br /&gt;我自己玩了一下，还是很有趣的，总共有12关，花了一个多小时才打通，主要是被第10关卡住了，花了近半个小时……&lt;br /&gt;外部链接是&lt;a href="http://armorgames.com/play/2205/light-bot"&gt;http://armorgames.com/play/2205/light-bot&lt;/a&gt;&lt;br /&gt;看来不搞ACM之后，这种小程序结构设计方面的能力还是有所下降了……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-3230548224301773544?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/3230548224301773544/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/flashtest.html#comment-form' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3230548224301773544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3230548224301773544'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/flashtest.html' title='一个有趣的编程启蒙游戏'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-6505216769805032574</id><published>2008-10-03T18:28:00.020+08:00</published><updated>2008-10-20T21:48:31.235+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><title type='text'>天空之城(唤起美好的回忆)</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_n_vVcoJMer0/SOX08Kg2NyI/AAAAAAAAAEI/LXKA-IZY7Hs/s1600-h/%E5%A4%A9%E7%A9%BA%E4%B9%8B%E5%9F%8E2.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5252873854849005346" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_n_vVcoJMer0/SOX08Kg2NyI/AAAAAAAAAEI/LXKA-IZY7Hs/s320/%E5%A4%A9%E7%A9%BA%E4%B9%8B%E5%9F%8E2.bmp" border="0" title="月光下的云海"/&gt;&lt;/a&gt;&lt;br /&gt;今天在给博客找背景音乐的时候，看到有人推荐久石让的天空之城，试听了一下，结果让我震撼不已……&lt;br /&gt;&lt;br /&gt;思绪一下子又回到了高一的一个深夜，那时候刚刚上高中，第一次离开父母，离开家乡小县城，离开多年的好友……那天夜里，躺在床上静静的听着广播，就在我快要入睡的时候，耳机里传来一阵优美的令人窒息的钢琴声，我睡意全消，用心聆听着那天籁的声音，眼前浮现出童年的一幕幕场景：家门口的河；每天上学必走的河埂；桃源老家门口的核桃树；老家田埂上被风吹散的蒲公英；小寨家门前石台阶上的青苔；党校院内自己家种的蚕豆，向日葵；父亲带着我们两兄弟在文屏山上摆的石头阵……不知道过了多久，我才从回忆中回到现实，耳机里已经只剩下杂音，而我自己，已经泪流满面……&lt;br /&gt;&lt;br /&gt;第二天，我赶紧询问了几个喜欢音乐的朋友，那首曲子叫什么，但因为自己记得的旋律太少，没有人能够听出来……&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;高考前几周的一个夜晚，我一边写着数学题，一边打开收音机，无意中竟然又听到了这首曲子，放下笔，静静的听完，却不得不把思绪强行拉回，高考的压力让我不得不压制一切杂念……&lt;br /&gt;&lt;br /&gt;之后，这首曲子也如同我生命中很多个让人感动却又微不足道的场景一样，深深埋入了记忆深处，直到今天……&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_n_vVcoJMer0/SOX1Nq3N6QI/AAAAAAAAAEQ/soj0kU7KE5k/s1600-h/%E5%A4%A9%E7%A9%BA%E4%B9%8B%E5%9F%8E3.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5252874155590543618" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_n_vVcoJMer0/SOX1Nq3N6QI/AAAAAAAAAEQ/soj0kU7KE5k/s320/%E5%A4%A9%E7%A9%BA%E4%B9%8B%E5%9F%8E3.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;再次听到这首曲子，还是会让我想到过往很多美好的场景，和高一那个深夜一样，这些场景仿佛幻灯片一样，静止的一幕幕的出现。所不同的是，这些场景中又多了一些刚刚逝去的本科四年中的美好回忆……听完曲子，我没有再像曾经那样流泪，22岁，饱受理工科“折磨”的我已经不可能再拥有少年时的丰富情感，但也没法抑制心里那种淡淡的忧伤……&lt;br /&gt;&lt;br /&gt;于是在网上查询了一下这首曲子的来历，得知是久石让先生为宫崎骏的同名动画电影做的配乐，而这部电影正好和我同岁……&lt;br /&gt;&lt;br /&gt;以前就听说过《天空之城》这部动画，不过因为我对动画不是很感兴趣，一直没有看过，今天因为音乐的缘故，把片子下了下来，看了两分钟，实验室的一位师兄从旁边经过，惊奇的说“呀，看动画片呢”……&lt;br /&gt;&lt;br /&gt;环顾一下四周，再看看书架上摆着的C++，Linux，电脑旁摊开的英语作业，意识到自己早已经过了看动画片的年代，于是苦笑着关闭了播放器，但因为这首音乐在心灵深处激起的涟漪久久消散不去，遂打开博客，写下这篇日志……&lt;br /&gt;&lt;br /&gt;后来从月雷那知道，原来这首曲子的真实名字叫《月光下的云海》……&lt;br /&gt;&lt;br /&gt;附介绍：&lt;br /&gt;久石让，1950生于日本的长野，是日本最多产，同时也是最具影响力的现代音乐艺人之一。在长达二十年的傲人音乐生涯中，他担任作曲、制作、编曲和演奏等多项工作。久石曾为超过二十部电影担任配乐工作，并曾四度赢得日本电影金像奖最佳电影配乐奖。他还从1992年起连续三年获得日本最高电影音乐大赏，1999年又第四次获得此奖。他还为许多电视连续剧以及数不清的电视广告制作配乐。这位以独特的极简风格着称的钢琴兼键盘手曾出版超过20张以上的畅销个人专辑，每张都是数一数二的佳作，可谓硕果累累！&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_n_vVcoJMer0/SOX2of8mA4I/AAAAAAAAAEY/_fcXZFk7atI/s1600-h/%E5%A4%A9%E7%A9%BA%E4%B9%8B%E5%9F%8E1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5252875716028400514" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_n_vVcoJMer0/SOX2of8mA4I/AAAAAAAAAEY/_fcXZFk7atI/s320/%E5%A4%A9%E7%A9%BA%E4%B9%8B%E5%9F%8E1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;　　久石让早年曾就读于日本国立音乐学院，修习作曲。1982年，久石让在毕业的同时推出了他的第一张个人音乐作品专辑&lt;information&gt;。1983年，经人介绍，久石让结识了宫崎骏，此时宫崎骏正致力于《风之谷》的创作。听过久石让创作的[风之谷]的印象音乐后，宫崎骏被深深打动了。此后影片公映后更证实了宫崎骏的眼光，久石让为该片创作的配乐深深地打动了无数的观众以及评论人。因此次年宫崎骏的"GHIBLI(吉卜力)"工作室后，久石让便一直担当宫崎骏动画的音乐监督至今。&lt;br /&gt;&lt;br /&gt;　　久石让是一个非常活跃的音乐创作人。如今，久石让不但是宫崎骏的音乐代言人，更与北野武渐成黄金组合，创作了《宁静的海》、《Kids Return～坏孩子的天空》、《花火》、《菊次郎的夏天》等佳作。 此外的配乐大作还包括：动画电影《阿里安》、《机器人嘉年华》，《仔鹿物语》、《水之旅人》、《寄生前夜》等等。在日本，久石让早已是闻名遐迩的资深音乐人。1998年，久石让 更获邀担任日本冬季长野残疾人奥运会的音乐制作总监，如此重要的任务可说是对他在音乐界大师级地位的莫大肯定。&lt;br /&gt;&lt;br /&gt;《天空之城》的音乐以电声，合成器为主，加上圆号，童声合唱，钢琴小品等等配合，主题曲&lt;君をのせこ(载着你走)&gt;由井上杏美小姐演唱。其中由杉并儿童合唱团唱出的版本简直可说是天使之声，将《天空之城》的漂渺与悲哀表现得丝丝入扣；&lt;シ一夕の决意&gt;是一首钢琴小品，描述了两位主角初到达Laputa后所见到的情景，非常美妙，也是流传极广的一首。举个例子：某大学的年度艺术节汇演，有学系用了这首音乐来作表演得背景音乐，才刚弹出几个音符，台下有80%的人“哗”了起来，说：是《天空之城》啊！其实不看动画的人，一听也会被其所迷住，许多年前广州一电台的一个介绍散文的文化节目用这首音乐作版头。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;embed width="300" src="http://www.dmcoo.com/Files/ComicMusic/skycity_OST/Moonlit_Sea_of_Clouds.mp3" loop="true" autostart="false" height="45" type="audio/mpeg"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-6505216769805032574?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/6505216769805032574/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_6602.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6505216769805032574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6505216769805032574'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_6602.html' title='天空之城(唤起美好的回忆)'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_n_vVcoJMer0/SOX08Kg2NyI/AAAAAAAAAEI/LXKA-IZY7Hs/s72-c/%E5%A4%A9%E7%A9%BA%E4%B9%8B%E5%9F%8E2.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-8951865019035907062</id><published>2008-10-03T02:16:00.005+08:00</published><updated>2008-10-03T02:28:52.390+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><title type='text'>十一后海游</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_n_vVcoJMer0/SOUQF29frzI/AAAAAAAAAEA/2B0Io095fyw/s1600-h/20081002249.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5252622233236385586" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_n_vVcoJMer0/SOUQF29frzI/AAAAAAAAAEA/2B0Io095fyw/s320/20081002249.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;今天是今年国庆我唯一出去游玩的一天，其实之前已经去过一次后海了，不过那次只是随便逛了半个小时，今天打算和飞一起好好游一游。&lt;br /&gt;&lt;br /&gt;本来昨晚已经用百度地图查好了公交路线，结果今天出去一看，保福寺桥南根本就没有47路，往桥北走了好长一段也没有，只好回头往西走，好不容易才找到，可恨的是昨天百度地图上明明显示的是从桥南出发，然后右转上四环……&lt;br /&gt;&lt;br /&gt;到了目的地德内甘水桥，下车一问才知还要往前坐两站到鼓楼，一时对百度地图那个恨呀……&lt;br /&gt;&lt;br /&gt;顺着后海游了一圈，也进到大名鼎鼎的“北京胡同”里逛了逛，不过我和飞都没觉得有太大意思，就是一些小巷嘛，对中国人来说还是没多少吸引力，不过看那些foreigner倒是逛得很起劲……&lt;br /&gt;&lt;br /&gt;其间问了一下坐人力三轮车游胡同的价格，一个人80，让我再次肯定了这些个胡同是让foreigner来游的……&lt;br /&gt;&lt;span class="fullpost"&gt;……&lt;br /&gt;下午本来打算去牛街吃饭的，结果上车之后一站地走了20分钟，北京糟糕的交通再一次让我们改变了计划，就地解决吧，结果下车走回来只用了3分钟……好在鼓楼附近的清真餐厅很多，我们还是吃了一顿比较丰富的午饭…… &lt;br /&gt;&lt;br /&gt;饭后飞和我一起回到计算所，在所里看了一下新版的《绿巨人》，我觉得比李安版的要好看一些。 &lt;br /&gt;&lt;br /&gt;去的路上还有一个小插曲，在公交上一个穿着低胸装浓妆艳抹的女子，突然骂了她旁边的一个小伙一句“看什么看，臭流氓”，结果那位大哥直接回敬一句“*的，敢穿还不敢让看呀”，惹得好几个人愣是笑出声来……&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-8951865019035907062?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/8951865019035907062/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_03.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/8951865019035907062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/8951865019035907062'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_03.html' title='十一后海游'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_n_vVcoJMer0/SOUQF29frzI/AAAAAAAAAEA/2B0Io095fyw/s72-c/20081002249.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-6390459506029478611</id><published>2008-10-02T00:25:00.005+08:00</published><updated>2008-10-03T02:29:10.798+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='散记'/><title type='text'>我的博客搬过来了</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_n_vVcoJMer0/SOOmc7IzBjI/AAAAAAAAAD4/cLlosfUk7pQ/s1600-h/temp.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_n_vVcoJMer0/SOOmc7IzBjI/AAAAAAAAAD4/cLlosfUk7pQ/s320/temp.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5252224606285268530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;    本来想找一个博客搬家工具搬家的，但是没找到合适的，再又想到以前的Blog上大部分的日志都是和ACM竞赛有关的，而我以后又不搞竞赛了，没有转过来的必要，所以今天就只是把几篇总结回忆性的文章手工转过来。&lt;br /&gt;&lt;br /&gt;    现在对Blogger的很多功能，尤其是代码修改还不熟悉，所以功能还比较简单，慢慢的添加吧，正好顺便看看CSS的知识。&lt;br /&gt;    &lt;br /&gt;    最后发一张以前博客的截图吧，权作纪念……&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-6390459506029478611?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/6390459506029478611/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_02.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6390459506029478611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6390459506029478611'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_02.html' title='我的博客搬过来了'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_n_vVcoJMer0/SOOmc7IzBjI/AAAAAAAAAD4/cLlosfUk7pQ/s72-c/temp.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-697139506946549739</id><published>2008-10-01T11:10:00.007+08:00</published><updated>2008-10-24T03:17:19.525+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ACM'/><category scheme='http://www.blogger.com/atom/ns#' term='经历总结'/><title type='text'>我的ACM生涯</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_n_vVcoJMer0/SOLqvsrUSyI/AAAAAAAAAAk/nEr3loLZHQY/s1600-h/20080422161.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5252018220635015970" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_n_vVcoJMer0/SOLqvsrUSyI/AAAAAAAAAAk/nEr3loLZHQY/s320/20080422161.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;今天在电梯里碰见几个朋友，他们问我：“你还在弄那个比赛吗？”&lt;br /&gt;&lt;br /&gt;我答：“没有了，已经退役了。”&lt;br /&gt;&lt;br /&gt;他们就都笑了，我知道他们为什么笑，因为他们觉得“退役”这两个字很新鲜，似乎除了运动员，这个词是不会用在大学生身上的。你见过有参加别的竞赛的学生说不搞了是说“退役”吗？&lt;br /&gt;&lt;br /&gt;但是ACM竞赛就是这样，每年POJ上都会有大量的“退役”感言，而且大都比较伤感。可能是因为，参加别的学科竞赛，付出的汗水是以天来计算的，但是参加ACM所付出的，必须用年来度量，没有一年以上的努力，只能算是刚入门的小菜鸟。(我认认真真的投入了两年，所以还算得上个有资格写“退役感言”的老菜鸟吧)。&lt;br /&gt;……&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;本来不打算写退役感言的，因为我平时就爱瞎写，每次比赛的总结也还算写的比较详细，似乎没有什么可写的了，但深夜里的人就是爱回忆，不知不觉间，又回忆起了一年多前的深夜……&lt;br /&gt;&lt;br /&gt;那是2006年8月份吧，是我们大二结束的暑假，我和xiaox报名参加ACM培训已经3个月了，也被“选拔”为暑期集训的队员。说是“选拔”，其实能坚持到暑期集训的，也就剩下10多个人了。&lt;br /&gt;&lt;br /&gt;那时也是夜里两点多，我合上笔记本，问xiaox做了多少题了，xiaox说10个。我说我做了11个，困了，该睡觉了。Xiaox说我做完这个再睡。&lt;br /&gt;&lt;br /&gt;呵呵，这本来是我们俩ACM生涯中最平常不过的一个场景，但是不知道为什么，两年之后的深夜，我就是对这个场景记忆犹新。&lt;br /&gt;&lt;br /&gt;经过一个暑假，我俩大概都做了400多道题，各赛区的网络预赛也逐渐开始了，那是交大正式参加ACM比赛的第二年，我们还处于削尖了脑袋就只为争得一个区域现场赛资格的境况，每次预赛都是所有人一起做，这也是强校与弱校的一个显著区别吧，强校参加网络预赛的时候，通常都是以队为单位，而弱校，为了现场赛资格只能所有人一起上。&lt;br /&gt;&lt;br /&gt;队内唯一的大牛fuwutu却在关键时刻没了状态，幸好老队员leileilei发挥稳定，才拿到了上海和北京的资格，而fuwutu和leileilei他们2005年在成都拿的第九名也使我们直接获得了西安赛区的资格。&lt;br /&gt;&lt;br /&gt;那时候，我们是没有固定队伍的，谁和谁去哪个赛区都是去之前教练直接指定。&lt;br /&gt;&lt;br /&gt;我和xiaox被派往上海，和fuwutu一队，这也是我俩曾经梦寐以求的机会。比赛中，fuwutu一人独过两题，靠罚时获得了一块铜牌。我们对这成绩都不满意，fuwutu只差一点就可以过3题，而我们俩，也被后来认为很简单的一道题搞晕了。&lt;br /&gt;&lt;br /&gt;上海回来之后，教练申请到了印度坎普尔赛区的资格，xiaox和fuwutu被派往印度，我主动申请去西安，因为西安比赛的那天是我20岁的生日。&lt;br /&gt;&lt;br /&gt;Fuwutu和xiaox在印度拿回了一个第五名，可以说圆满完成了06年的任务，我以为去西安就再没什么压力了，结果想错了……&lt;br /&gt;&lt;br /&gt;我和leileilei，Louty一队，Louty那时才大一，而leileilei已经研一了，西安的比赛就是他的告别赛。可能是教练和带队的于老师对我期望都比较大，让我产生了很大的压力，整个比赛过程中我大脑都比较混乱，有两道题没想清楚就开始写，写完才发现不对，浪费了大量的时间，最后时刻，和leileilei合写一题，我写输入及预处理，结果又没有把情况考虑全，害leileilei白写了后半部分。最后摘牌无望，只是由leileilei破得一个气球才不至于被剃光头。&lt;br /&gt;&lt;br /&gt;西安比赛的失利对我打击比较大，而对交大ACM打击最大的是fuwutu和leileilei的退役，尤其是fuwutu，事实证明，到当时为止，交大获得的每一块奖牌里都含有fuwutu的两道题。&lt;br /&gt;&lt;br /&gt;记得当时fuwutu喜欢把一些因为有一个牛人所以某一年成绩比较好的学校称为“一个人的学校”，当时我和xiaox还在想，我们不也是“一个人的学校”吗。&lt;br /&gt;&lt;br /&gt;记得在BBS上看了fuwutu的比赛回忆，我和xiaox都很惭愧，也很郁闷，其中有一段话是这样写的：我写了两道题后，把机子交给madongfly和xiaox，我在旁边，看着他们两人，心里想，如果他们是wangwei、lidu(高中时数学竞赛组的两个同学)多好，我可以做一个辅助型的队员，为他们构造数据，想特殊情况，查找代码的错误，以他们的思维加上我的逻辑即使是ACrush我们也不必惧怕。&lt;br /&gt;&lt;br /&gt;我们才知道，原来我们的能力还得不到fuwutu的认可，我们确实太菜了……&lt;br /&gt;&lt;br /&gt;那时候fuwutu可以说是交大ACM队的精神支柱，他的退役给我们的影响很大，有他在的时候我们经常想的是如何倚靠他，之后就只能靠自己了。&lt;br /&gt;&lt;br /&gt;07年开学之后，学院给我们换了教练，经过讨论，我们终于也要固定队伍了，但是为了带动新队员，教练要求每两个老队员带一个新队员。于是我和xiaox自然而然的组成了MagicFlyer的最初两人。&lt;br /&gt;&lt;br /&gt;为了选拔新队员，我们办了第一届校赛，从参赛人数上来说，和很多学校的校赛是不能比的，报名七、八十人，实际到了五十多人，我们出题也不敢出太难，全是最基础的入门题，xiaox出的一道稍微有点难度的题因为比赛时做的多过的少，不得不临时降低数据规模。&lt;br /&gt;&lt;br /&gt;经过校赛选拔，crackerwang成了我们的队友。&lt;br /&gt;07年暑假的集训，使crackerwang进步神速，集训结束的时候，我觉得他已经超过了我06年参赛时候的水平了，当然，我和xiaox这一年也没有闲着，有了06年的基础，我们07年的进步也是很大的，我们的队伍也从最开始的一场比赛(POJ上的热身赛)只能做3、4个题，过渡到能做5、6个了。&lt;br /&gt;&lt;br /&gt;07年虽然增加了一个赛区，但我们学校的参赛机会也不多，教练只让一支队伍参加两个赛区的比赛，在暑假的一系列积分赛中，我们队的成绩稍好于gasa和louty他们，但考虑到我和xiaox都已经大四了，就让gasa他们去两个赛区，以便有更多的锻炼机会。&lt;br /&gt;&lt;br /&gt;因为是我俩的告别赛，所以教练让我们自己挑选赛区，我们选择了长春。&lt;br /&gt;&lt;br /&gt;去长春前我们断定吉大会自己出题，所以特别留意了一下Skywind的出题风格，也发现了一些特点。&lt;br /&gt;&lt;br /&gt;在长春的比赛中xiaox表现神勇，全场第二个破题。后来，我们一直排在出2道题的队伍前列，直到Skywind开始倒计时的时候才破了第三题，也让我们从20多名升到了第六名。最后一场比赛，我们能够在最后一刻破题，获得金奖，我和xiaox都已经很满足了，不过更为惊喜的是，这还不是我们的告别赛，我们在长春出线了……&lt;br /&gt;08年4月初，去加拿大参加了World Final，最终破了3道题，并列47名，真实名次大概是五十三、四。&lt;br /&gt;07年的比赛，我感觉自己是很幸运的，能够参加WF，也是对这两年的付出最丰厚的回报了。&lt;br /&gt;&lt;br /&gt;前两天把校队群的群主身份转让给了louty，过两天也该把ACM版的版主辞了，“退役”，真的要退役了……&lt;br /&gt;&lt;br /&gt;这两年以来，我的生活基本上没有和ACM分开过，现在突然有点不适应了，有时候打开一道题想做做，却突然想到再也不用做题了，马上就会涌起一种伤感，便也真的不想做了。比赛之前曾想过，等退役之后，把POJ的队号和几个小号上散落的题交到大号上，似乎也能上1000题了，可是真到了退役的时候，突然发现根本没有心情去做这种事了……&lt;br /&gt;&lt;br /&gt;其实有时候想想，只要我还在学校，我真的会“退役”吗？只要我能为校队做的事，我还是会毫不犹豫的去做，为校赛出出题，给新人回答一些问题。就算在我离开交大之后，我也会默默的关注ACM比赛，关注我们学校的每一次表现，为北交大呐喊加油……甚至等到学校办北京赛区比赛的时候，我也会乐颠乐颠的跑回来插气球。&lt;br /&gt;&lt;br /&gt;可能有的人对于我这种心情无法理解，我自己有时候也会奇怪为什么会对这项比赛如此着迷。后来我想，除了ACM竞赛本身的魅力之外，可能还受到了一些学长的影响，fuwutu，leileilei，ys，他们都和我一样的着迷于这项比赛，尤其是leileilei。而我们学校能取得今天的成绩，也和老队员的这种热情传递有关，我们不能像强校那样靠大一大二的学生就能独挡一面，我们的主力只能是大三、大四甚至是研一的学生，只能靠老队员旺盛的热情来支撑，所以也必须要把这种热情传递下去……&lt;br /&gt;&lt;br /&gt;嗯，好像写的有点乱，毕竟深夜里思绪就是容易乱飞，干脆就这样吧。&lt;br /&gt;&lt;br /&gt;感谢fuwutu带我入门……&lt;br /&gt;感谢leileilei一直以来对我的帮助……&lt;br /&gt;感谢教练李老师对我的关心和支持……&lt;br /&gt;感谢crackerwang和我一起征战美好的07/08赛季……&lt;br /&gt;Xiaox就不说了，咱俩的关系，说感谢倒显得生疏了……&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-697139506946549739?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/697139506946549739/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/acm.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/697139506946549739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/697139506946549739'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/acm.html' title='我的ACM生涯'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_n_vVcoJMer0/SOLqvsrUSyI/AAAAAAAAAAk/nEr3loLZHQY/s72-c/20080422161.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-2754129959727467229</id><published>2008-10-01T11:07:00.005+08:00</published><updated>2008-10-24T03:17:33.656+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ACM'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>08总决赛回忆</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_n_vVcoJMer0/SOLqEjm9L8I/AAAAAAAAAAc/g3BszV6qsDs/s1600-h/IMG_2053.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5252017479466430402" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_n_vVcoJMer0/SOLqEjm9L8I/AAAAAAAAAAc/g3BszV6qsDs/s320/IMG_2053.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;World Final记忆&lt;br /&gt;这次world Final的比赛对我和xiaox来说，是名副其实的Final，最后的一次ACM比赛了。所以也抽时间记一下流水帐，做个怀念吧。&lt;br /&gt;&lt;br /&gt;4月5日&lt;br /&gt;我们是下午4点多的飞机，12点半的时候集合完毕，坐学校的车去到首都机场。我们一行有8个人，除了xiaox和crackerwang我们三个队员外，还有教练李老师，领队杨老师，观摩团的魏老师，唐老师和刘老师。&lt;br /&gt;在机场领登机牌的时候，我看到旁边有个货币兑换的窗口，还很高兴的去换加币，结果走到窗口前才看到每笔兑换要收50的手续费，只好作罢，看来机场的这些服务都是给有钱人准备的……&lt;br /&gt;出关的地方要从3号航站楼坐几分钟的轻轨，在车上我突然发现没有取下指甲刀托运，便问老师们能不能通过安检，旁边一个老者很干脆的插嘴说不行，于是下车后我狠狠心把指甲刀仍了。&lt;br /&gt;后来看到唐老师也带了，她取下来拿在手里，通过安检的时候问人家可不可以带，结果说可以，害得我一阵心疼，我的指甲刀可是GF送的啊……&lt;br /&gt;我们一共飞了近12个小时，在飞机上度过了我有生以来最短的一个晚上，天黑了三个多小时就亮了。到达温哥华的时候是当地时间4月5号下午1点左右，想想我们在北京是4月5号下午4点多出发的，也算是体验了一回“时间倒流”。&lt;br /&gt;……&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;入关的时候才发现有很多学校也是坐的同一班航班，有TJU，SDU和NUDT，还有哈工程的一个团，他们是因为要举办2010年的WF，特地组团去观摩的。&lt;br /&gt;我们从温哥华到卡尔加里的机票是晚上7点多的，于是便去了一趟温哥华湾，这也是我有生第一次见到海，那里有一个巨大的建筑建成一条船的样子横在水里，我们顺着“甲板”走了一圈，途中还见到了好几架水上飞机。&lt;br /&gt;我们到达卡尔加里的时候是当地时间9点多，之所以再说一次“当地时间”，是因为温哥华和卡尔加里之间还有一个小时的时差，这让我们有点不理解，同一个国家，弄不同的时间，乘飞机，看电视预报之类的时候还得特地注意一下是哪的时间，多不方便。&lt;br /&gt;之前联系好的导游陈先生到机场接我们，等着取行李的时候得知NUDT的队伍没有在卡尔加里联系酒店，他们本来想直接去Banff的，但是已经没有车了，于是和陈先生商谈之后和我们住进了同一个酒店。去酒店的路上NUDT的zzningxp从我们的谈话中一下就推断出了我是回族，看来搞ACM的人推理能力都是很强的。:)&lt;br /&gt;在酒店里又见到一个第一次见到的玩意，壁炉，呵呵，以前经常在国外电影里见过。&lt;br /&gt;到房间之后已经累得不行了，直接趟床上就睡着了，这才终于过完了37个小时的4月5号。&lt;br /&gt;&lt;br /&gt;4月6日&lt;br /&gt;因为时差的原因，我早上5点多就醒了，教练也没睡好，一大早就起来洗澡，上网，不过他忘了带插座的转换器（加拿大的三口电源口都是垂直的，国内的插座不能直接插上去），把电池都差不多用完了。&lt;br /&gt;吃完早餐后，陈先生来接了我们出去逛市区，卡尔加里的城区很小，估计和昆明差不多，不过最高的那几座楼还是比昆明的楼高多了。&lt;br /&gt;市区里很少有人居住，有的话也是不太富裕的人家，稍微有钱点的都住市区周围的house，买块地之后，自己建房。&lt;br /&gt;午饭是去一个中餐馆吃的，我便不能吃了，不过因为感冒的原因也不想吃东西，而且杨老师心细，早上从酒店打包了一些面包带着，我就有恃无恐的没吃午饭了。&lt;br /&gt;之后去了卡尔加里最大的一个购物中心，忘了叫什么名字了，老师们进去购物，我们三个找了几个沙发坐了一个多小时，其间还碰到了TJU的队员。&lt;br /&gt;接着就出发去Banff了，路上陈先生带着我们逛了一下UC(University of Calegray)，他们的大学和国内最大的区别就是没有明显的校园界限，或者说没有围墙，几条公路直接贯穿校园，我们坐着车逛了好久之后杨老师才反应过来我们在大学“校园”里。&lt;br /&gt;路上又顺路去了一趟奥林匹克国家公园，是卡尔加里以前举办冬季奥运会的地方，杨老师和教练兴致很高的爬上了滑雪的雪坡，我因为感冒难受，一直很萎靡的坐在室内看他们玩。&lt;br /&gt;接下来去Banff的路上景色也很漂亮，但因为时差的原因，我们都睡着了，可能也就剩刘老师拿着他那专业的相机不停的拍照了。&lt;br /&gt;一路上陈先生就在给我们介绍Springs Hotel有多好，他说他这么多年来，带了很多客人到Banff，但还没有一个住进Springs Hotel，因为太贵，说是要300 dollar一晚上，我们不禁狂赞IBM赞助的真好，同时也让我们对这传说中300 dollar一晚的酒店充满遐想。&lt;br /&gt;从外观上看，Springs Hotel气势还是很宏伟的，很像一座巨大的城堡，一层（或者按西方人的习惯应该说L层）和M层布置的也很像城堡，头上的吊灯都做成古时候那种吊着很多蜡烛的形状，接待处也摆着一具古代欧洲的骑士盔甲。&lt;br /&gt;因为参赛人数太多，酒店做了一些调整，给我们的双人间加了床，让住三个人，于是我们三个正好就住了一间，单看房间里的布置其实也不怎么样，床的大小还不如在卡尔加里的酒店呢，不过窗外的雪山景色还是很讨人喜欢的。&lt;br /&gt;晚餐可以让我选择的东西就多了，各种各样的面包，水果，沙拉，意外的是竟然还有烤土豆，这可是我在北京都吃不到的、家乡的特有吃法，虽然烤的远远不如家里烤的，但我还是很知足了。&lt;br /&gt;因为很累，晚上我们很早就睡了。&lt;br /&gt;&lt;br /&gt;4月7日&lt;br /&gt;因为时差的原因，夜里大家都没睡好，早早的就醒了。 吃完早餐去参加IBM的技术讲座，听了10多分钟，实在是听不懂(英语太差，汗……)，就干脆回房间了。&lt;br /&gt;期间又去领了一下IBM发的书包，里面有一件外套，一个吉祥物，帽子，围巾，手套，笔等东西，记得在国内我穿的外套都是XXXL的，当时还特地考虑到国外的衣服可能偏大，所以网上登记的时候填的XXL，结果穿上跟睡衣似的，又跑去换了一件L号的才正好和国内的XXXL的差不多，看来西方人体型真是巨大……&lt;br /&gt;下午是主办方组织的出游，有两个选择，一个是圣路易斯湖，还有一个是哥伦比亚冰川，我们选择去冰川。&lt;br /&gt;坐了一个多小时的车才到达冰川所在地，下来换乘一种轮子巨大的车，粗略估计，那轮子可能有1米6左右高吧，据说那种车全世界只有20多辆。大车缓慢的爬行到一个稍微开阔点的平台处停下，让大家下去玩。&lt;br /&gt;那儿的景色真的很美，远处一个巨大的冰床，迎面吹来的风夹杂着细碎的雪花，从我们所在的地方到冰床是一片茫茫的雪地覆盖，看不出来有多深，冰床上有很多巨大的蓝色冰块，周围的雪山和湛蓝的天空，小片小片的云彩形成了一幅特别美丽的风景。&lt;br /&gt;不过很冷，我们三个都没带帽子和围巾，我更是连手套都没带，冻得缩手缩脚的……&lt;br /&gt;我试着走到面前的雪地上，但刚一下脚，就没到了膝盖，正要赶紧出来，xiaox上来一把把我推翻，我赶紧跳出来，但是只这么一瞬间的功夫，我的裤子上，鞋带上已经带上了很多细碎的冰块，手也冻僵了。&lt;br /&gt;把手捂热后，我和xiaox把魔爪伸向了crackerwang，可怜的小亮，已经看出我们的意图了，但是人小体重轻，被我和xiaox抬起来直接扔雪堆里了。&lt;br /&gt;整完crackerwang之后，我手已经冻得不行了，赶紧回到车上，清理身上的碎冰，crackerwang上来之后我看到他皮带上都结了好多冰。&lt;br /&gt;还是因为时差的原因，回去的路上我们都是一阵狂睡，醒了就到酒店了。&lt;br /&gt;晚饭之后我们去了主办方搞的cybercafe，就是一个很大的房间里，摆了几十台电脑可以上网，十几张桌子可以打桥牌，还有一个跳舞机，两个游戏机。我们上了会网，又看人家玩了会游戏，那是一个网球游戏，玩家拿着一个类似网球拍手柄的感应器，挥动着手臂，就可以“打”网球了。&lt;br /&gt;呆了一会觉得无聊就回房间了，打开电视看到CNN正在播奥运火炬在巴黎传递中遭遇藏独阻挠的新闻，虽然没听懂主持人在说什么，但可以看到他一脸幸灾乐祸的表情，回国之后才知道，莫非就是那段“辱华”言论。&lt;br /&gt;晚上依旧睡的很早。&lt;br /&gt;&lt;br /&gt;4月8日&lt;br /&gt;早上在正常时间起床了，看来时差总算是倒过来了。&lt;br /&gt;上午是开幕式和热身赛，因为学校打头字母是“B”，所以我们的座位挺靠前，5号，正好面对墙壁，估计比赛的时候能少很多干扰。&lt;br /&gt;开幕式上很多人发言，大概能听懂一半，不过听得挺累的，后来我就干脆拿出手机看小说了。&lt;br /&gt;热身赛开始之后，很多队提交题目，可是我们连题目在哪都不知道，问了工作人员才知道题目在要求我们做Team Notebook时附上的Handout里面，其实那个Handout我们三个之前都没看，这点算是准备不太充分。看了一下题目，我赶紧坐到电脑前，想抢先感受一下在Final的比赛场地上A题的快感，匆匆忙忙写了个程序一交，返回Wrong Answer，xiaox告诉我还要考虑负数，我不禁感叹Final就是Final，这么个练习用的小题还要设个小陷阱，不过自己也考虑的太不周详了，正式比赛的时候可不能这样着急了。改了一下之后拿了个Yes。&lt;br /&gt;之后他们也轮着上去写自己的程序拿Yes，然后想了各种各样的情况，故意写了很多个错误的程序去测试判题系统。后来发现原来所有的题号都是这个题目，于是一阵狂交，ABCDEF都交了几遍。&lt;br /&gt;因为比赛时的数据会通过四周的大屏幕传递给观众，所以热身赛结束之后魏老师上来就说，你们很猛啊，这么短的时间就过了6个题，排十几名呢，我们一阵惭愧，赶紧解释。&lt;br /&gt;中午吃完饭后再次回到赛场，裁判解答了一些上午提出的问题，请大家继续测试，我们上午已经测得差不多了，便提前离场。&lt;br /&gt;杨老师她们去镇上逛了，教练便带着我们在酒店周围走走，结果发现了一条好美的河，河两边还都是近1米厚的冰，只中间一段有水流过，听着水流的声音，有点心旷神怡的感觉。&lt;br /&gt;回到房间之后大家都睡了一下，我不敢多睡，怕睡多了晚上睡不着，后来去吃饭的时候死活叫不起crackerwang，于是我和xiaox自己去吃了，晚上crackerwang醒了，还好之前教练给过我一包饼干，让他填了一下肚子，便都睡下了。&lt;br /&gt;&lt;br /&gt;4月9日—比赛日&lt;br /&gt;这一夜我睡得还比较好，crackerwang虽然醒的很早，但他前一天下午就睡了，所以睡眠时间是够的，只是xiaox没睡好。&lt;br /&gt;吃早餐的时候，教练掏出了几瓶红牛，没想到在国外也能买到这东西，不过比国内的量多，我喝了一半就喝饱了，味道也很不一样，没有国内的好喝。&lt;br /&gt;等待入场的时候，我突然肚子疼，于是跑去WC一下，回来的时候他们已经都进场了，赶紧跑进去坐下，结果他们两个又要去WC了。xiaox回来之后，比赛已经快开始了，周围好几个工作人员过来问我们还有一个队友哪去了，主持人也大声说让我们看一下谁是最后一个从厕所回来的人，之后每一个人回来，大家都送给他一阵呼声和掌声。到最后只剩下crackerwang还没回来了，所有人都又等了一会，我正想着等他回来估计排场得大了去了，结果裁判等不及了，开始宣读比赛规则，这时候crackerwang终于回来了，不过大家都在认真听比赛规则，他也就错失了一场“欢迎仪式”。&lt;br /&gt;比赛开始之后，我们还是按老办法，我看前几题，xiaox看中间几题，crackerwang看后几题。&lt;br /&gt;我匆匆看完A题，没有思路，便看B题，看完想了一会，也没什么想法，又看C题，C题一看就有想法，但是属于那种编程复杂度很高的题。这时候crackerwang看了J题有想法，正在和xiaox讨论，我看了一下borad，发现北邮交了一次F题，虽然没过，但是他们那么早就交，有可能是水题呢，于是赶紧翻开F，不过马上想到xiaox可能已经看过了，就问他F题怎么样，他说可能是个数学题，没有太好的想法，我便又回去研究C题了。&lt;br /&gt;我仔细的在纸上枚举了一下C题的很多种情况，觉得这道题如果我写的话代码量怎么也得在4K以上了，这种编程复杂度，在现在这种压力下，我估计连写带调试，没有2个小时把握不大。这时候他们俩把J题讨论的差不多了，xiaox上去写，他写的时候很有自信的说这个题算法肯定没有问题了，你们赶紧看下别的题吧。听了这话，我心里稳定多了。&lt;br /&gt;把crackerwang叫过来说了我C题的思路后，他也觉得太复杂了，不值得冒险，这时候看到有队过了F题，我们便都去研究F了。&lt;br /&gt;看明白F题的题意后，我在纸上随便画着，突然发现其实所有的合法图形都是通过原始的正方形凹进一个角去形成的，接着就由此得出了公式，赶紧把crackerwang叫过来讨论，他也认为没有问题。这时候xiaox已经写完J题的代码了，只是样例还没调出来，于是把代码打印出来检查，把机器让给我。&lt;br /&gt;因为要计算C(1000,498)的组合数，我便用高精度写了。写了一点的时候，xiaox查出代码的错误，要过机器改了一下，运行通过样例后提交了，半分钟后返回Yes！直接1Y，我回头看了一下，我们周围除了bina那个学校之外，我们是第二个破题的，于是信心大增。&lt;br /&gt;写完F题代码后一运行，发现答案不会超过64位整数，因为热身赛的教训，我当时很谨慎，又把高精度注释了，写了一个普通的，运行之后一比较，两个结果一样，于是提交，返回Wrong Answer，我查了一遍代码，没找到错误，便让crackerwang帮我检查代码，我跟xiaox讲我的算法，看会不会有问题，讲着讲着我突然发现忘了考虑一个特殊情况了，赶紧返回电脑修改，修改完后提交，Yes！看了一下board，这时候我们排在20多名。&lt;br /&gt;这时候xiaox上去写K题，我问他什么思路，他说广搜，看他样子信心还是很足的，而且广搜又是我们平时经常做的题目类型，我心想这次我们3道题应该没问题了，应该能拿到排名了，现在就争取能破4道。&lt;br /&gt;看了一下board之后，我和crackerwang决定主攻B题，我们在草稿纸上写写画画，想了好久，我曾想过能不能降冥，但是当时只想到求导降冥，想了半天，也没发现求导和原题意会有联系。crackerwang想用随机搞，我也觉得如果最后没时间就只能随机了。&lt;br /&gt;期间我也看了一下I题，除了硬搜之外没想到什么好的办法，但是硬搜的话如果题目时限在5秒以上还有点希望，不然肯定超时，当时时间也不是很多了，不敢做这个尝试。&lt;br /&gt;Xiaox的K题写出来之后一直在调，我和crackerwang商量后决定用随机搞B题，于是xiaox打印出代码，我上去开写。&lt;br /&gt;期间机器在我和xiaox之间换了很多次，经过两次WA之后，K题也终于Yes了！&lt;br /&gt;这时候离比赛结束只剩下40多分钟了，于是我们3个人一起围过来看B题，因为B题的输入涉及到比较繁琐的字符串处理，所以样例还没调出来，我们一起检查代码，修改程序，调出样例后提交，返回超时，因为我之前是随机生成10万个数测试，便改小一点提交，结果又WA了，这时候时间已经不多了，xiaox上来改了一下，随机生成素数去测试，还是WA。&lt;br /&gt;于是最后10分钟基本上就是修改测试数据的个数，提交了十几次，在WA和TLE之间交替，我们都期盼着长春赛区最后时刻破题的场景再次上演，但是比赛还是比较遗憾的结束了。&lt;br /&gt;我看了看周围的队伍，好像只有赫尔辛基大学成绩比我们好，估计排名应该是有的了。&lt;br /&gt;出来问了一下UESTC的队伍，得知B题果然是降冥做的，不过是将n-1和n带进去之后相减来降冥的，好巧妙，可惜我们没想到。&lt;br /&gt;比赛结束后去Banff镇上逛了逛，我给GF寄了张明信片，大家也都买了点东西。&lt;br /&gt;下午的颁奖仪式进行的很隆重，因为最后一个小时borad是被封掉的，所以还是有很大的悬念的，大屏幕上显示出封board前的数据，从最后一名开始动态的向上走，有的学校最后一小时又破题的，便马上飞到前面去了。&lt;br /&gt;我们最后定格在47名，刚好挨着SDU，冠军是俄罗斯的圣彼得堡信息技术及光学大学，这次东欧相当猛，除了MIT、斯坦福，清华和滑铁卢大学外，其他拿奖牌的学校都是东欧的，清华排在第6名，获得亚洲冠军。&lt;br /&gt;今年中国的成绩明显不如去年，不过我们作为第一次参赛的学校，能够获得排名还是比较欣慰的了。&lt;br /&gt;晚上，xiaox和crackerwang回房间之后倒头就睡，我一个人又跑去看了一下IBM办的庆祝晚会，又打了几个越洋电话才回房睡觉。&lt;br /&gt;&lt;br /&gt;4月10日—11日&lt;br /&gt;之后就是归程了，本来没有什么好说的，但谁料到我们的回家之路还是比较坎坷的，也就随便写写吧。&lt;br /&gt;坐10号早上6点的班车离开Banff去往卡尔加里，结果路上就开始下雪了，很大的雪，我们的航班也被取消了，只好改签到下午，结果又延迟了1个小时，上飞机之后大家都倒头就睡，只有我没有睡意，他们可能都不知道，飞机在机场磨磨蹭蹭的爬了1个多小时之后才起飞。&lt;br /&gt;到温哥华之后，杨老师的旅行箱被人错拿走了，我，教练，crackerwang托运的书包也找不到了，又去和机场交涉。&lt;br /&gt;因为延误了当天的航班，我们不得不在温哥华住一晚。第二天杨老师总算找回了她的旅行箱，但是我们的书包还是找不到，这让我相当郁闷。&lt;br /&gt;11号下午总算是坐上了回北京的飞机，可飞机已经在跑道上高速前进，眼看就要起飞的时候又停下来了，说是发现故障，又开回去检修。我们几个开玩笑说还好起飞前发现故障了，要不然掉太平洋里的话，中国的计算机教育界得受多少损失啊，还有TJU、SDU、PKU等好几个学校的老师学生也在这趟飞机上呢。&lt;br /&gt;飞机上我什么也没吃了，吃了一个星期的面包，肠胃都快要起义了，饿着肚子等回学校吃盖饭呢。&lt;br /&gt;北京时间4月12日下午7点，我们抵达首都机场，这次Final之行也告结束了……&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-2754129959727467229?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/2754129959727467229/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/08.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2754129959727467229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2754129959727467229'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/08.html' title='08总决赛回忆'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_n_vVcoJMer0/SOLqEjm9L8I/AAAAAAAAAAc/g3BszV6qsDs/s72-c/IMG_2053.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-3047300098938442591</id><published>2008-10-01T11:06:00.001+08:00</published><updated>2008-10-01T12:47:12.686+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='经历总结'/><title type='text'>我的本科学习生活</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_n_vVcoJMer0/SOMAmtyC6MI/AAAAAAAAAAs/Ph27aUSNboM/s1600-h/IMG_2596.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5252042255568660674" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_n_vVcoJMer0/SOMAmtyC6MI/AAAAAAAAAAs/Ph27aUSNboM/s320/IMG_2596.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;转眼之间，已经大四了，成功保研之后，也想过写写自己这三年来的一些经历，正好于书记让我写一下学习经验，便认真想了想，觉得如果写成总结的形式，把“经验”一条条列出来的话，一是枯燥，可能没有几个师弟师妹能耐着性子看完；二是我自己都难以总结出“经验”来，毕竟学习不是我们大学生活的全部，我是这么走过来了，做得还不错，但我却不知道我的方法中哪些对师弟师妹们有用，也就无从提取“经验”了。&lt;br /&gt;思考再三，决定以回忆录的形式写一下我大学三年中跟学习有关的一些事情，如果有师弟师妹能从中找到一两条适合自身的“经验”，也就达到写这篇文章的目地了。&lt;br /&gt;&lt;br /&gt;总的来说，我三年的成绩是呈上升趋势的，大一是29名，大二是15名，大三是第一名，总结了一下，这三年的学习可以用三个词来代表，分别是态度，兴趣和目标。&lt;br /&gt;&lt;br /&gt;态度&lt;br /&gt;大一刚进入校园时，我的高考分数是全班最低的，虽然说这不具有可比性，因为各省分数差距很大，而我又是来自高考分数历来都比较低的云南，但每次同学们聊到高考时，我心里还是有那么一点不舒服的，因为我的分数不仅比他们低，也是计科专业在云南录取的最低分。&lt;br /&gt;……&lt;span class="fullpost"&gt;&lt;br /&gt;可能是我不服输的性格使然吧，我暗下决心一定要赶上他们，超过他们。&lt;br /&gt;于是整个大一期间，是我大学三年中学习态度最端正的一年，也是学得最刻苦的一年。&lt;br /&gt;当时，只要没课的时候，我基本上都在自习室，做完平时作业，就做微积分的黄皮习题集，把两本黄皮书上所有的题都做了个遍。每天早上读英语，背单词，还从网上把英语课本的朗读带下了下来，随时戴着耳机听英语。现在想起来，当时还真有点疯狂。&lt;br /&gt;大一上学期结束后，我自己找同学问分数，算出了我在班上排在第5名，心里还是挺欣慰的。&lt;br /&gt;大一结束后，我排在了年级29名，竟然还成了最后一个获得二等奖学金的人，心里也倍受鼓舞。&lt;br /&gt;总的来说，大一是我学得最认真的一年，虽说也是三年中成绩最低的一年，但却是最关键的，因为努力，我在交大站住了脚，也因为努力，我良好的从被老师家长逼着学习的高中时代过渡到了完全得靠自己学习的大学时代。&lt;br /&gt;&lt;br /&gt;兴趣&lt;br /&gt;进入大二之后，我和大多数人一样，学习上开始松懈了，又加上宿舍里有了电脑，可以玩我喜欢的电脑游戏了，不过我玩的很有度，一切都以不影响成绩为主。&lt;br /&gt;如果说大一的时候，还是高中的学习方法，只要是课就认真学的话，那大二我才真正适应了大学的学习方法。我开始挑课上了，喜欢的课我一节不落，不喜欢的课也开始逃了。但我逃课有一个原则，不能因为逃课影响这门课最后的成绩，因为我比较喜欢也比较擅长自学，所以通常是逃了一两节课后，去一次，然后用这一节课的时间把落下的知识过一遍。记得当时有一门课叫《通信技术基础》，我逃了几次之后，发现自己看不懂了，于是后来的课再也没敢逃。所以这一年虽然有一些我不太感兴趣的课程，但总的成绩也并没有拉我后腿。&lt;br /&gt;而对于我比较喜欢的课，就学得比较带劲了，像C++，Java，汇编，图论等，这些课程都是我很感兴趣的，所以学得也很轻松。&lt;br /&gt;大二下学期，我和同宿舍的谢月雷一起参加了ACM竞赛的集训，虽说只是一个竞赛，但这对于我的学习也有着很大的影响，在这一期间，我的自学能力被最大程度的激发了，因为我们当时没有学过算法，没有学过数据结构，所以只好自己学，而且学得比后来的课程深多了。我们当时自学某一算法或某一数据结构的目地，是最终将其实现成程序，去做一些题，因而不像我之前提到的自学，我之前的自学都是囫囵吞枣的过一遍，应付考试足矣，谈不上掌握，而这一时期我自学到的知识几乎可以说是大学期间掌握得最好的知识了。&lt;br /&gt;大二结束后，我的排名是15名，并且对本专业越来越感兴趣了。&lt;br /&gt;&lt;br /&gt;目标&lt;br /&gt;进入大三之后，我学习的目的性更强了，这源于大二结束的那个暑假，我和一个计科02级的老乡一起吃饭时，他叫我好好学，最后争取报送到中科院去，我说我的成绩不够好，他说还有一年的时间，这一年争取每一科都考第一就行了。&lt;br /&gt;说实话，当时我挺不以为然的，科科考第一，如果做起来有说起来那么简单就好了。但不管怎么说，我心里已经种下了这个念头，想报送中科院读研，大三的成绩就一定要好。&lt;br /&gt;其实大三也是我最忙碌的一年，因为准备了半年多的ACM竞赛正好是在大三上学期开始，那时候也是我对ACM竞赛热情最高的时候。记得当时有一门课怕老师点名，就直接把笔记本带到教室，坐在最后一排做ACM题，给老师留下了很差的印象，结果那门课给了我大学期间最低的一个分数。不过好在那时候有两门课帮我往上拉了不少分，就是数据结构和算法，算法课是ACM教练上的，我申请了免听，数据结构我之前就已经自学的很深了，所以虽然没怎么上课，最后成绩却很好。&lt;br /&gt;因为搞竞赛，大三上半学期是我大学三年里花在学习上的时间最少的一个学期，但也可以算得上是学习效率最高的一个学期，因为时间少了，所以我在自习室的时候，就不敢再浪费时间，学得很认真，也很有针对性，就是为了提高考试成绩，所以也很有效果。&lt;br /&gt;大三下学期，学的课程我都很感兴趣，也正好可以借机提升一下自己的总成绩。记得考试前最后一个月的时候，我复习花的功夫比当年高考有过之无不及，因为当时只想着这是最后一次提升成绩的机会了，多一分就有一分的好处，所以玩了命的复习。&lt;br /&gt;最后成绩出来的时候，我也很意外，虽然我敢肯定大三成绩会比以往好，但也没想到真的考了个第一，看来付出的努力得到了很好的回报。&lt;br /&gt;&lt;br /&gt;考试&lt;br /&gt;谈学习，就不能不谈到考试，毕竟考试成绩是学习成果最直观的一个反映，尽管有时候并不是最准确的反映。&lt;br /&gt;我对待考试的态度是很认真的，通常会提前做好复习计划，根据这门课我平时掌握的程度，估算我大约需要几天的复习时间，每一天都复习哪些部分。复习的时候就按计划来，似乎还没有出现过完不成预订计划的情况，反倒是经常提前完成一天的复习计划，这时候我一般不会往下复习第二天的东西，只是回头再巩固一下，实在没事了也会回宿舍打打游戏，因为这时候已经完成我的既定任务了，所以玩起来也比较轻松。我之所以不肯提前完成复习，是因为我学习的一个特点是学得快，忘得也快，我自己都说不清楚这到底该算我的优点还是缺点。可能我可以花比别人少的时间复习完一些内容，但如果这些内容不常用的话，我会比别人更早忘记，所以为了保证考试时我对知识点的熟悉程度，我的复习计划一般是先看自己最熟悉的知识点，越不熟悉的就越晚看，通常是我刚好复习完就考试，现蒸热卖，效果还是不错的。不过这样做也有一定风险，因为不熟悉的放到后面复习，万一要是时间不够，弄不懂，就得不偿失了，我这样做的时候通常是靠老师最后的答疑来把关，所以我特别希望老师的答疑在考试前一天，太早了我反而不会去了，因为都没复习完。&lt;br /&gt;现在大家复习考试的时候基本上都会有往年的试卷，确实，往年的试卷对我们复习是很有用的，但我使用这些试卷的方法和别的同学不太一样。我周围的很多同学是边复习边做试卷，甚至有先做试卷后复习的，而我一般是没复习好就不看试卷一眼。我这样做的目地是强迫自己把老师讲过的所有知识点都当做重点来复习，力求全面掌握。等我复习完之后，才开始做试卷，每做一份试卷都当作是一次模拟考试，看看我哪些部分复习的还不够好，又继续加强。我通常会将最近的试卷放在最后做，检验自己的复习成果，如果做不到90分以上，就继续复习。&lt;br /&gt;另外需要强调的是，我复习考试从来不熬夜，我不知道考试前通宵看书对别的同学有没有效果，但至少对我肯定只会有副作用，不过平时的学习准则也使得我根本没有这个必要。&lt;br /&gt;&lt;br /&gt;竞赛与科研&lt;br /&gt;大学里学习固然重要，但如果只会学习，成绩再好，也是虚的。这是我去中科院计算所面试后的一个感受，当时和我同组的有一个女生，是大连理工的年级第一，结果第一轮就被刷了。&lt;br /&gt;大学期间，我们学了那么多知识，如果学了用不上的话，似乎是一件很可怕的事情，刻苦努力的学了四年，如果只是为了应付考试的话，和高中教育又有什么区别。&lt;br /&gt;所幸我大学期间参加了很多竞赛，除了ACM，还有数学建模，从校赛、全国赛、到国际赛都参加了；还有挑战杯；还有学院自己的前方杯；甚至还有外面公司举办的一些比赛，像微软的Imagine Cup，百度的“百度之星”等等。&lt;br /&gt;应该说参赛之初，我还有些功利，确实想拿几个奖之后增加自己保研的筹码，但现在回过头来看，参加这些竞赛让我获得的远远超出了我之前想要得到的。&lt;br /&gt;可能很多同学想参赛，但觉得自己什么也不懂，这是很正常的，我参加这些竞赛的时候也是什么都不懂，不懂就正好学，学习的过程就是一个能力提升的过程，记得曾经有师弟跟我说“我想参加前方杯，但我现在什么都不会，请你告诉我需要些什么知识，我现在去学，明年就参加”。我觉得这种想法在大学里是不行的，如果什么都要会了才去参加，那这个参与的过程就没有意义了，就像让我们现在去和小学生进行作文比赛一样。在我们这个专业领域，知识是学不完的，最好的方法是要用到就去学，学以致用，而参加一些竞赛也是促使自己去学习的一个好方法。&lt;br /&gt;但话又说回来，也有的同学因为竞赛影响了学习，ACM队里就有一些队员挂科，但我觉得能参加竞赛的同学，说明都是很聪明的、学有余力的同学，只要多用点心在学习上，是不应该出现这种问题的，难道学校里的那点考试还能比你所参加的竞赛难吗？如果有这种问题，试着在学习的时候再用心一点，千万不能以竞赛作为自己成绩下滑的借口。&lt;br /&gt;以上说的都是竞赛了，因为本科期间，我并没有做过多少科研，但我想做科研和竞赛应该是类似的，都是掌握好平衡点，合理分配时间。&lt;br /&gt;&lt;br /&gt;游戏&lt;br /&gt;很多男生都会遇到游戏与学习这个比较矛盾的问题，所以我觉得也有必要谈一下。&lt;br /&gt;首先，我自己是很喜欢玩电脑游戏的，魔兽和CS在我们班内部还没遇到过对手，但我现在只玩单机游戏，不玩网络游戏，这也得益于我高中的经历，高中时，我是《传奇》的第一批玩家，但也因为玩网络游戏差点毁了自己，后来就决定再也不碰网络游戏了。&lt;br /&gt;其实我觉得只要自己合理安排好，普通的游戏是不会和学习产生冲突的，大学期间，我也有过连续玩几天的游戏，连饭都懒得下去吃的经历，但那是五一或十一长假期间；我也经常在快考试了还上浩方打游戏，但那是我已经复习好了。总的来说，我处理游戏和学习之间的矛盾，就是时刻记住“学得认真，才能玩得开心”。&lt;br /&gt;不过一般说来，玩游戏玩到影响学习的，通常都是玩网络游戏了，我能理解玩网络游戏的同学的感受，无非就和我高中时候是一样的。外人难以想像，觉得没有什么好玩的，但沉溺于其中的同学可能会认为游戏里的角色是自己的另一个化身，认为游戏里的社会比现实的社会有意思得多，自己在游戏里可以是帮会首领，处处受人尊重，可以拥有很多“生死与共的朋友”，甚至还可以拥有一些“红颜知己”等等。&lt;br /&gt;如果沉溺于网络游戏，还想不和学习产生冲突，那几乎是不可能的事了，所以最好不要玩网络游戏，至于已经上瘾的同学怎么改过来，好像是目前大学教育都普遍面临的一个问题，似乎只能靠自己的觉醒和自制力了, 或者可以试着想一下，就算在游戏里拥有了一切，也没法拥有辛辛苦苦养育自己，爱护自己的父母，我高中时就是这样觉醒的。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;写了那么多，都是我自己的一些经历和感受吧，也不知道会不会对师弟师妹们有用，毕竟学习方法因人而异，只希望其中有一两点能给师弟师妹们一些帮助。 大学时光过的太快了，只有把握好现在，将来才不会后悔。&lt;br /&gt;最后，留一句话与大家共勉吧，这句话我是在吉林大学的Online Judge上看到的，很有计算机专业的特色，那就是：Coding now, Programming future！&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-3047300098938442591?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/3047300098938442591/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_8261.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3047300098938442591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3047300098938442591'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_8261.html' title='我的本科学习生活'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_n_vVcoJMer0/SOMAmtyC6MI/AAAAAAAAAAs/Ph27aUSNboM/s72-c/IMG_2596.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-4041526078187923777</id><published>2008-10-01T11:01:00.009+08:00</published><updated>2008-10-24T03:18:01.467+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ACM'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>最后时刻的惊喜(07长春赛区比赛经历)</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_n_vVcoJMer0/SOLoWlPMjiI/AAAAAAAAAAM/hb4WLeXlkn4/s1600-h/IMG_1522.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5252015590118034978" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_n_vVcoJMer0/SOLoWlPMjiI/AAAAAAAAAAM/hb4WLeXlkn4/s320/IMG_1522.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;最后时刻的惊喜&lt;br /&gt;——记长春夺金之旅&lt;br /&gt;在得知我们要去长春之后，我们就开始了一些有针对的练习，估计到会有Skywind出的题，所以我们把他在JOJ上出的一些题做了一下，感觉他出题有一个特点，就是题目很强，数据较弱，赛后证明这确实是事实。&lt;br /&gt;出发前几周，我们把能做的热身赛都做了，最差的一次在北大排到了31名，还是可以接受的成绩。之前我和xiaox都没什么状态，但通过这些比赛，xiaox的状态很快就出来了。我却比较奇怪，应该说是在思想上恢复了状态，可以思考问题了，但编码的时候却老有一些小错误，导致WA不断，不过也不着急，既然xiaox有状态，大不了最后就让他负责写代码吧。（事实证明我确实有先见之明:)）&lt;br /&gt;最后两天我们都一起到九教六层的机房做题，把后缀数组搞定了，又温习了一下一些图论的算法，这时候，我才又终于找到1Y的感觉了。&lt;br /&gt;……&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;11月2号晚上出发，因为走的比较匆忙，我们进站后几乎是一路狂奔到的车上。上车后不久就熄灯了，躺下和xiaox聊了好久，他问我这次比赛之后还会不会再做题，我说可能会吧，毕竟这一年多以来，做题都已经成了一种习惯了。&lt;br /&gt;在长春的第一天，让我们切实感受到了吉大之大，下午我出去找高中同学，发现几乎每一路公交的线路上都有几个站点和吉大有关，想起了听人说过“吉大里面有个长春市”。&lt;br /&gt;在吉大还遇上了MaYue的一个同学，她的热心帮助让我们少去很多麻烦。&lt;br /&gt;第二天开模式后，又见到SUN的那几个人，这已经是我第三次见到他们了，估计技术讲座还讲的是以前那些东西吧，正好李老师让我一起去教练会，不用再听第三遍了。&lt;br /&gt;教练会上进行了抽签，我们抽到39号，最后Skywind说这次的题目比较简单，他估计第一的队伍会做出8道题，要想拿金奖至少要5道题，我一想，那估计和北大最近几次热身赛的水平差不多，这种难度的题目也是我们希望看到的。&lt;br /&gt;下午的热身赛做的比较郁闷，总共3道题，我读A，cracker读B，xiaox读C。A题是个纯粹的高精度，直接求N个数的平均数，但是每个数可能达到200位，我一看就不想写，有点嫌麻烦，正好xiaox看了C之后想写一下，于是就让他上去写了。&lt;br /&gt;我和craker开始讨论B，也没什么收获，xiaox的C写完之后是WA，然后我们也看了一下C题，发现描述很差，好多情况都没说明，尝试着改了几处也都是WA，于是我开始上去写A题，但我当时没仔细想，直接写的传统的高精度，把数分为整数部分和小数部分分别存储和操作，写的很麻烦。写到一半的时候，craker推出了B的结论，我一看B的结论很简单，就赶紧把B拍完，但是写的快却把gcd函数的两个参数弄反了，查了好半天才过。然后craker又想到A题的简化写法，跟我一说，果然好写多了，于是我重写A题，不过比较郁闷的是我代码中又犯了很多低级错误，像整数比较写成字符比较，一段本应放在if语句里面的代码写到外面去了，好不容易把A过掉，我心想看来明天还是让xiaox写代码吧。最后xiaox一直在修改C题，但是到比赛结束也没过，这让他很是郁闷。&lt;br /&gt;当天晚上，我们商量了一下读题的策略，因为Skywind信誓旦旦的说题目简单，所以我们都觉得肯定会有水题，于是打算先把水题找出来，我读前三道，xiaox读中间三道，craker读后三道。&lt;br /&gt;&lt;br /&gt;正式比赛当天，李老师说看我有点紧张，特意鼓励了一下我们，我心想怪了，为什么我一紧张别人就能看出来，去年在西安老师也说我紧张。但xiaox也有点紧张啊，怎么就看不出来呢。&lt;br /&gt;比赛开始后，我们各自读题，我看完A之后第一感觉是这道题我们应该可以过，但不是水题，会花很多时间，于是继续看下去，B和C就更不是水题了，这时xiaox说他想写写F，他给我简单讲了一下F的题意和他的想法，我也没细想，但我和craker也还没找到可写的题，于是他就上去敲了，之后我又继续往下看了几道题，和craker讨论了一下E题，也就是高斯素数那题，记得以前在北大做过类似的题目，但都不记得结论了。&lt;br /&gt;这时候清华第一个过了题，是红色气球，我听craker说了一句“红色，D题”，便开始读D题，两页长的题目相当冗余，我耐着性子读了第一页，完全不知所云，心想和清华不是一个档次的，便改看别的题了。&lt;br /&gt;Xiaox写好F之后，说时间复杂度有点高，我让他详细讲了一下算法，感觉肯定会超时，他又加了一些优化，只考虑最短路中会用到的边，但能不能过却没有把握，他想交的时候，我突然想到重边的问题，觉得还是处理一下重边保险一点，就算错也让它直接第一次就返回超时，要不然如果是超时的代码再带来几次WA就亏大了，于是多记录了一下节点间的次短路，用来处理重边。提交之后，过了很久才返回WA，但xiaox很快就发现有错误了，改过之后再提交，过了一会还没反应，因为PC^2判题是系统自动判Yes，裁判人工判No的，如果对的话一般会比较快的返回结果，所以我们都以为又错了，我赶紧跟他说没关系，先别想这题了，再看看别的题，我话还没说完，就返回Yes了，我们都很高兴。我扫了一眼场上，我们是第二个破题的队伍。&lt;br /&gt;这时候，我才发现，原来红色气球是A题，不是D题，便跟xiaox说了A题的意思，我的想法是直接枚举所有情况比较判断，因为题目时限是10S，但是枚举之后还要求凸包，这样复杂度就比较高了，我不敢确定能不能过，xiaox却比较肯定，于是又上去敲A题。期间，有几个队把D题过了，我又耐着性子读了D题的题目，发现第一页完全没用，直接看第二页就可以了，如此冗余的题目还真是少见。最后A题交了几次，都没有通过，于是craker上去改成另一种凸包求法，xiaox下来想E题，过了一会他跟我说了一下他对E题的想法，我看他很肯定的样子，也很高兴，干净把craker叫下来，他上去写E，E很快写好，但提交是WA，改了两次也还是WA，这时候E题过的人已经比较多了，我已经有一点着急了。这时候，A题Rejudge了，我们第二次的提交就过了，我们精神为之一振，于是决定让craker继续想E题，我和xiaox选别的题。&lt;br /&gt;因为之前我同时在想3道题，本来想把我的思路都给xiaox讲一遍，但我先讲的是G题，他听我讲完之后，也觉得是动态规划，就直接上去写了。我开始想D题，之前我一直往搜索上想，经xiaox提醒后才开始想动态规划，后来我把D题想的差不多了，动态方程也写好了，甚至整个程序的结构框架都在脑子里过了一遍了，一看时间，只有半个多小时了，xiaox的G已经写出来，还没调试通过，但看了一下提交情况，G题还没有人过，D题已经有十几个队过了，于是我叫他写D题，因为有热身赛的教训，我还是不愿意自己去写，就在旁边看着他写，但我之前为了写程序方便，一直想的是记忆化搜索，没有仔细想，等到程序运行不出结果的时候，才想到可能是搜索的时候死循环了。这时候离比赛结束不到10分钟了。赛后我觉得我看着xiaox写代码其实是一个失误，因为我之前把程序的结构什么都想好了，所以只要他写的有点不一样，我就出言提醒，结果写出来的代码其实就等同于我自己写的，如果让他自己写的话，他写的过程中可能会思考一下，估计能提前想到记忆化搜索陷入循环的情况。&lt;br /&gt;这时候craker对E题又有想法了，于是他和xiaox讨论，我想碰碰运气，直接强制制止D题的无限循环，但样例都没通过，时间所剩不多，我们都决定改E题吧，但随着一次次提交，一次次WA，我们也越来越失望。&lt;br /&gt;Skywind已经走到场内，开始倒计时了，就在他倒数到4的时候，我们收到了返回的Yes！我们都激动的叫了起来，看台上李老师也很激动。&lt;br /&gt;后来数数气球，3个题以上的队伍大概有20个左右，看来要拼罚时了，但我们E题提交了好多次，估计罚时很高，看来可能是银奖了，其实就算我们只有两道题，银奖也是拿定的了，因为我们那两道题的罚时很少。&lt;br /&gt;&lt;br /&gt;晚上的颁奖仪式，先发的是前15名的ICPC排名证书，我们都期待着能不能进前15，Skywind从第15名开始倒着往前念，一直到第10都没有我们，我感觉好失落，看了看大家也都很失落，谁知道念到第六的时候，竟然是“北京交通大学”，xiaox一下就站起来了，我们也都很激动。接下来发金银铜奖，虽然我们学校是排在第六，但可能有的学校有几只队伍在我们前面，所以能不能拿金奖，还是有点担心，当念到最后一个银奖不是我们的时候，我们都情不自禁的鼓掌了，这让我想起去年上海的时候，念到最后一个银奖的时候，也有一支得金奖的队伍爆发出一阵掌声。&lt;br /&gt;最后我们队伍排名是第八。&lt;br /&gt;&lt;br /&gt;总的来说，这次我和xiaox的告别赛，总算是完美谢幕了，拿回了交大的第一个金奖，赛后平静下来之后，xiaox有点郁郁，我问他怎么了，他说好想再来一年。记得比赛前几天，我一想到这次比赛完，我们就要告别ACM了，心里也会有些伤感，一年多来，ACM对我俩的学习，生活都有很大的影响，想到以后再也用不着做题，参加比赛了，心里还是有点失落。&lt;br /&gt;记得在酒店的时候，李老师让我俩总结一下，为什么我俩大二才接触ACM，用了一年多能有现在的水平。其实我觉得最主要的因素是热情，我们最疯狂的时候，一天不做题就感觉缺了点什么，也就是这份热情，才让我们自学了很多东西，也终于取得了今天的成绩。&lt;br /&gt;颁奖仪式上，黄金雄让做了500道题以上的同学给自己鼓掌，鼓掌的同时，我心想，确实啊，就算这次我们什么奖也没拿，我也有资格给自己鼓掌，一年多来，我们凭着对ACM竞赛的热情，付出了很多时间与精力，至少，我们是在认认真真的做这件事。&lt;br /&gt;&lt;br /&gt;最后，祝愿BJTUACMERS再接再厉，早日冲到世界舞台上，展示北交学子风采！&lt;br /&gt;&lt;br /&gt;PS: Bless一下BJTU的老队员～&lt;br /&gt;Bless YS !&lt;br /&gt;Bless Leileilei !&lt;br /&gt;Bless Fuwutu !&lt;br /&gt;Bless BigZ !&lt;br /&gt;Bless LJP !&lt;br /&gt;Bless LSN !&lt;br /&gt;Bless Apocaleaf !&lt;br /&gt;Bless Xiaox !&lt;br /&gt;And Bless Me !&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-4041526078187923777?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/4041526078187923777/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/07.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4041526078187923777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4041526078187923777'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/07.html' title='最后时刻的惊喜(07长春赛区比赛经历)'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_n_vVcoJMer0/SOLoWlPMjiI/AAAAAAAAAAM/hb4WLeXlkn4/s72-c/IMG_1522.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-2766829221283729326</id><published>2008-10-01T10:56:00.002+08:00</published><updated>2008-10-01T12:48:32.675+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='经历总结'/><title type='text'>我的保研经历</title><content type='html'>随着今天校内面试的结束，我为保研而忙碌的日子也终于结束了，一个月来都没有更新博客了，就先写写我的保研经历吧。&lt;br /&gt;　　一年前，我还打算考研的，当时想考清华或者中科院计算所。在一次和老乡们吃完饭后，老杨问了我的成绩，说你努力一下，保去中科院吧。我说我成绩不够，看上几届保去中科院的师兄们成绩都很好，没有把握，老杨说还有大三一年呢，好好努力，成绩不就上去了。于是，我暗下决心大三要好好提高成绩。&lt;br /&gt;　　还好努力没有白费，大三我考了专业第一，这样一来，三年的综合成绩也就进前10了，当然，这是后话，在我申请保研期间，也不知道我最终的排名。&lt;br /&gt;　　暑期集训期间李老师就跟我和月雷说过，如果想保去计算所的话，跟他说，他会尽力帮助我们，因为他博士就是在计算所读的。&lt;br /&gt;　　后来听说8月中旬，就已经有很多人开始联系导师了，但我和月雷却直到9月初才开始联系，为了稳妥起见，他同时联系计算所和北航的老师，记得有一个北航的老师直接给他回复：你怎么现在才联系啊，都已经很多人找我了。当时我们都觉得联系得太晚了，已经落在别人后面了。&lt;br /&gt;　　经过李老师介绍，我报了计算所智能科学课题组的何清老师，月雷报了三个老师，当时我曾打电话问过计算所招生办，他们告诉我只能报一个，但月雷坚持报了三个，事后证明是可以报多个的。&lt;br /&gt;……&lt;span class="fullpost"&gt;&lt;br /&gt;　　计算所正式面试是在9月18号，但之前月雷报的一个老师就找他聊了聊，而何老师却没有和我提前见面的意思，于是我有点坐不住了，就在10号给他打了个电话，祝教师节快乐的同时打听一下口风，但何老师什么也没向我透露，只是让我按程序来就行了。&lt;br /&gt;　　之后为了稳妥起见，我和月雷又投了中科院自动化所。&lt;br /&gt;　　期间，我想给自己留条后路，联系一下校内的老师，并且觉得苗振江老师很好，如果去不了计算所，能保上他的研究生也不错，但担心联系他的时候，如果问我有没有联系校外就不好回答了，直说的话，有点保不上中科院才保他的感觉。于是给于书记发了封邮件，把我的情况跟她详细说了，问一下什么时候联系校内老师比较合适，于书记给我回信说不用担心校内的，等计算所的结果出来再联系都不迟，以我的情况，校内老师不会不要的，于书记还说希望我留在校内，她的原话是“好学生都走了有点舍不得”。于书记的信让我深受感动，是啊，大学三年来，那么多的老师，对我都非常好，尤其是于书记，去年在西安参加ACM比赛的时候，我的发挥失常导致全队惨败，但当我垂着头走出比赛场地的时候，我看见于书记手里拎着一个生日蛋糕，因为那天是我的生日，她不但没有丝毫责怪我的意思，反而一直安慰我，带我们去找了一家很好的清真餐厅，为我过生日。那天的事，尤其是我走出比赛场地看见于书记手上的蛋糕那个场景，我一辈子都忘不了的，每次想起，心里都热热的。于是，我做出决定，给于书记回了邮件，说因为计算所已经联系老师了，家里人也很支持，所以我想去试试，如果去不了的话，我就留在学校，不去联系别的学校了。&lt;br /&gt;　　这样一来，我反倒轻松了许多，月雷他们还在联系北航之类的学校，我就只等着计算所的面试了。&lt;br /&gt;　　9月18号早上，我和月雷赶到了计算所，我在5楼面试，他在6楼，出电梯的时候我和他互道好运。&lt;br /&gt;　　看着一间间实验室，我心里暗想，希望这不是我最后一次来计算所。&lt;br /&gt;　　我面试排得比较靠后，等的时间也就比较长了，期间和一起等的人聊了聊，有来自华中科大，大连理工，川大，农大等学校的。让我倍感压力的是13个人中，只有一个是报另一个老师，其他12个都是报的何老师，而何老师只招两个人。面试开始后，前面的人都是进去10分钟左右就出来了，但华中科大的闭彬却面试了近半个小时，我当时想，这人估计会被录取了。&lt;br /&gt;　　终于轮到我了，其实我还是有些紧张的，但一进去，看到老师们温和的笑容，也就不那么紧张了，说实话，我到现在为止所接触过的计算所的老师都非常的好，对学生非常客气。&lt;br /&gt;　　老师让我作一下自我介绍，因为之前我精心准备了一篇英文的自我介绍，所以就用英文说了，之后老师问了我一些ACM比赛，数学建模的事情，然后问我擅长哪鞋课程，我说数据结构和算法，他就问了我什么是堆和栈，搜索的时候都有哪些搜索策略等等。期间，我被两个问题问倒了，一个是关于四色定理的，还有一个是图的最大独立子集，不过老师都非常好，我说回答不出来的时候，他说没关系，这个不是你们的课程中必须要学的。&lt;br /&gt;　　总的来说，我觉得我面试表现得不是很好，没有表现出自己的专长，所以出来的时候还有些郁闷。&lt;br /&gt;　　一个农大的同学说我机会很大，面试了20多分钟。我自己在里面是没有时间概念的，所以得知这一消息后精神为之一振。&lt;br /&gt;　　所有人都面试完后，何老师走出来，把我和闭彬叫进去了，说准备录取我们两个。之前，我曾经幻想过很多次，当我得知被计算所录取后，将会有多激动，但奇怪的是，真正发生的时候，我却很平静，我甚至在心里想，应该激动一下才对啊。&lt;br /&gt;　　走出老师的办公室，我和闭彬握了握手，从握手的力度来看，他还是比较激动的。&lt;br /&gt;　　因为有两个老师叫月雷去面试，所以他早上下午都要面，我就自己回学校了。&lt;br /&gt;　　走出计算所，和闭彬道别之后，心里的喜悦才开始涌上来，于是给飞打了电话，也给家里打了电话。&lt;br /&gt;　　5点多的时候，月雷回来了，他也被录取了，这真是最完美的结果了，我和他是同班同学，同宿舍舍友，又是ACM竞赛的队友，可以说是相当有默契的了，现在又一起进入了中科院计算所。　　&lt;br /&gt; &lt;br /&gt;　　第二天收到了自动化所的面试通知，得知自动化所是先从所有提交材料的学生中选出65个进入面试，面试要留下50个，也就是说面试的淘汰率是很小的，月雷也没接到面试通知，难得他这么看得起我，我就想亲自打电话跟自动化所的老师说一下，道个谦什么的，但当时不是上班时间，就没打，后来竟然忘了。等到自动化所面试前一天，那老师给我打电话问我是不是被别的地方录取了，我说是，他一下就火了，问我为什么不通知他一声，我赶紧道歉，挨了一顿批评。&lt;br /&gt; &lt;br /&gt;　　接下来就只剩下学校内的保研考试了，我们学校是在前三年的成绩基础上，再弄一个考试，最后才确定保研排名，分配校内校外名额。保研考试分为三项，英语听力，上机和面试。不过，对于我们已经被外校接收的学生来说，这个考试也就是走一下过场罢了。&lt;br /&gt;　　听力我考的很次，因为题与题之间没有间隔时间，很不适应。&lt;br /&gt;　　上机考的比较简单，前两道题都是送分的，我20分钟就写完了，最后一题有四个小题，选其中一道，我挨个看了一下，第一题是数据库编程，但机房只提供SQL Server，而我之前没用过SQL Server。第二题是网络编程，长期没写，早忘了。第三道是编译原理的题，估计也忘了。第四道是操作系统的模拟题，但必须用多线程编程，VC多线程得调用Windows API，怎么调用根本就没记住，以前每次要用都是看一下之前的代码，而Java也是好久没用了，不敢肯定能不能写出来。最后比较了一下，觉得只有第三题能写的更多一点，就仔细看了第三题，这一看把我激动的，原来那个文法超级简单，直接用递归下降法就可以搞定了，于是动手开始写。&lt;br /&gt;　　三道题的程序一共用了1个小时，然后加注释，写文档，最后实在无聊了在程序里加一些东西，比如控制台输出的时候在中间拼出一个几何图案，把我的名字写进去之类的。三个小时的机试，等到2个小时的时候我实在是无事可干了，本来想试着用用Sql Server，但看月雷提前交卷，我也就提前交了，后来得知只有我俩提前交卷。最后我考了99分，他考了95分。&lt;br /&gt;　　最后一关就是今天早上的面试了，分成两个组面，我们组的面试老师有于书记和韩院长，还有信息所的几位老师。&lt;br /&gt;　　自我介绍完后，一个老师问我是不是上过通信类课程，我说上过通信技术基础，结果他就问了好几个通信方面的问题，我那课是大二上的，现在早忘了。后来他看着我的成绩单说你还上过多媒体，我赶紧说这课我学的不好，确实，多媒体技术基础是我大学期间所有课程中分最低的，但他却揪住不放，问了我几个多媒体的问题。结果今天面试问的全都是我最不擅长的，郁闷坏了。&lt;br /&gt;　　最后于书记让我写一篇关于学习方法的总结给她，因为我三年的学习排名分别是29，15，1，所以想让我向师弟师妹们介绍一下学习经验。&lt;br /&gt;　　好了，流水帐似的写了这么多，也算是把我保研的整个过程都记录下来了，怎么说也是大学期间一段难忘的经历，以后没事看看，回忆回忆也好。:)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-2766829221283729326?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/2766829221283729326/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_7447.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2766829221283729326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/2766829221283729326'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_7447.html' title='我的保研经历'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-3733019359656843294</id><published>2008-10-01T10:54:00.002+08:00</published><updated>2008-10-30T23:02:26.919+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux一句话精彩问答</title><content type='html'>Linux一句话精彩问答&lt;br /&gt;2006-02-18 11:36 am&lt;br /&gt;作者：陈绪/魏琼&lt;br /&gt;来自：linux宝库 (http://www.linuxmine.com)&lt;br /&gt;现存：http://www.linuxmine.com/1.html&lt;br /&gt;联系：linuxmine@gmail.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;编者按:鉴于目前中国Linux的发展现状，90%以上的问题都可以用一句话来回答，这便是本文的初衷。欢迎大家添加自己的“一句话”，收录后注明原始提供者。更详细的文档，&lt;br /&gt;请浏览http://linux.chinaunix.net 或http://www.linuxmine.com&lt;br /&gt;&lt;br /&gt;修订说明:本FAQ是在原“linux一句话精彩问答”4/28/2006版的基础上针对本版实际情&lt;br /&gt;况作了小部分修改，使之更适合于本站网友。各位如果发现有误之处，请来信告知，以便&lt;br /&gt;及时更正;另外如果有值得添加新内容，也欢迎来信告知。谢谢！（By JJCH）&lt;br /&gt;&lt;br /&gt;----------------------------网络无关篇--------------------------&lt;br /&gt;&lt;br /&gt;0001 修改主机名(bjchenxu)&lt;br /&gt;vi /etc/sysconfig/network，修改HOSTNAME一行为"HOSTNAME=主机名"(没有这行？那就&lt;br /&gt;添加这一行吧)，然后运行命令 " hostname 主机名"。一般还要修改/etc/hosts文件中的&lt;br /&gt;主机名。这样，无论你是否重启，主机名都修改成功。&lt;br /&gt;&lt;br /&gt;0002 启动系统到字符界面(不启动xwindow)(bjchenxu)&lt;br /&gt;vi /etc/inittab&lt;br /&gt;id:x:initdefault:&lt;br /&gt;x=3:文本方式 ；&lt;br /&gt;x=5:图形方式。&lt;br /&gt;&lt;br /&gt;0003 Linux的自动升级更新问题&lt;br /&gt;Fedora下升级系统：&lt;br /&gt;yum update packagename  #升级软件包&lt;br /&gt;yum upgrade             #升级系统内全部软件包&lt;br /&gt;前提：配置好网络和/etc/yum.conf和/etc/yum.repos.d/内文件，&lt;br /&gt;参考本版精华区--各发行版专区--Redhat/Fedora/CentOS--配置管理。&lt;br /&gt;&lt;br /&gt;Debian下升级软件：&lt;br /&gt;apt-get update packagename&lt;br /&gt;apt-get upgrade&lt;br /&gt;前提：配置好网络和/etc/apt/sources.list,可参考 http:// ftp.bjtu.edu.cn 首页。&lt;br /&gt;&lt;br /&gt;0004 windows下看Linux分区的软件(bjchenxu)&lt;br /&gt;Paragon.Ext2FS.Anywhere.3.0.rar和explore2fs-1.00-pre4.zip&lt;br /&gt;校内下载：ftp://202.112.146.235/incoming/Paragon_Ext2FS_Anywhere-v3.0.Retail.rar&lt;br /&gt;&lt;br /&gt;0005 mount用法&lt;br /&gt;mount [-t 文件系统格式]  [ -o 参数]   设备名      挂载点&lt;br /&gt;-t 常用参数&lt;br /&gt;   vfat       FAT32&lt;br /&gt;   ntfs       NTFS&lt;br /&gt;   iso9660    光盘/ISO文件&lt;br /&gt;-o 常用参数   多个参数之间用","隔开。&lt;br /&gt;   iocharset=utf8 或 gb2312 设定字符编码  &lt;br /&gt;   umask=0                 允许普通用户访问&lt;br /&gt;   loop                    挂载iso文件时使用&lt;br /&gt;常用设备名 /dev/hdaN,hdcN,期中N值自己数一下，第一个主分区为1,第二个主分区为2,&lt;br /&gt;扩展分区第一个为5,第二个为6,依次类推。&lt;br /&gt;挂载点为任意存在的目录名，如/mnt/cdrom。&lt;br /&gt;&lt;br /&gt;0006 在vmware的LINUX中使用本地硬盘的FAT分区(bjchenxu)&lt;br /&gt;将本地的FAT分区共享，然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fsta&lt;br /&gt;b中：&lt;br /&gt;//win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,co&lt;br /&gt;depage=936,iocharest=gb2312 0 0&lt;br /&gt;其中win_ip是你的windows的IP地址；&lt;br /&gt;D$是你的windows里面共享的D盘的共享名；&lt;br /&gt;/mnt/d是要将该分区mount到linux的目录；&lt;br /&gt;win_name和win_pass是你的WINDOWS里面可以读取该分区的用户，比如你的管理员名和密&lt;br /&gt;码。&lt;br /&gt;如果你运行了/etc/rc.d/init.d/netfs，那么在启动的时候就会自动挂载这个分区。&lt;br /&gt;&lt;br /&gt;0007.a 删除名为-a的文件(bjchenxu)&lt;br /&gt;rm ./-a&lt;br /&gt;rm -- -a 告诉rm这是最后一个选项，参见getopt&lt;br /&gt;ls -i 列出inum，然后用find . -inum inum_of_thisfile -exec rm '{}' \;&lt;br /&gt;&lt;br /&gt;0007.b 删除名为\a的文件(bjchenxu)&lt;br /&gt;rm \\a&lt;br /&gt;&lt;br /&gt;0007.c 删除名字带的/和‘\0'文件(bjchenxu)&lt;br /&gt;这些字符是正常文件系统所不允许的字符，但可能在文件名中产生，如unix下的NFS文件&lt;br /&gt;系统在Mac系统上使用&lt;br /&gt;1.解决的方法，把NFS文件系统在挂到不过滤'/'字符的系统下删除含特殊文件名的文件。&lt;br /&gt;2.也可将错误文件名的目录其它文件移走，ls -id 显示含该文件目录的inum，umount 文&lt;br /&gt;件系统，&lt;br /&gt;clri清除该目录的inum，fsck，mount，check your lost+found，rename the file in it.&lt;br /&gt;最好是通过WINDOWS FTP过去就可以删除任何文件名的文件了!&lt;br /&gt;&lt;br /&gt;0007.d 删除名字带不可见字符的文件(bjchenxu)&lt;br /&gt;列出文件名并转储到文件：ls -l &gt; del&lt;br /&gt;然后编辑文件的内容加入rm命令使其内容成为删除上述文件的格式：&lt;br /&gt;vi del&lt;br /&gt;[rm -r *******&lt;br /&gt;]&lt;br /&gt;把文件加上执行权限 chmod +x del&lt;br /&gt;执行 $./del&lt;br /&gt;&lt;br /&gt;0007.e 删除文件大小为零的文件(bjchenxu)&lt;br /&gt;rm -i `find ./ -size 0`&lt;br /&gt;find ./ -size 0 -exec rm {} \;&lt;br /&gt;或&lt;br /&gt;find ./ -size 0 | xargs rm -f &amp;&lt;br /&gt;或&lt;br /&gt;for file in * #自己定义需要删除的文件类型&lt;br /&gt;do&lt;br /&gt;if [ ! -s ${file} ]&lt;br /&gt;then&lt;br /&gt;rm ${file}&lt;br /&gt;&lt;br /&gt;echo "rm $file Success!"&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;0008 redhat9设置滚轮鼠标(mc1011)&lt;br /&gt;进入X后，选择鼠标的配置，选择wheel mouse(ps/2)就可以了，&lt;br /&gt;如果鼠标表现异常，重启计算机即可。&lt;br /&gt;&lt;br /&gt;0009 加装X window&lt;br /&gt;Debian安装基本系统后：apt-get install x-window-system-core&lt;br /&gt;Redhat/Fedora光盘安装：选择升级安装，然后选择相应的包即可。&lt;br /&gt;&lt;br /&gt;0010 删除Linux分区(bjchenxu)&lt;br /&gt;在Windows下的“磁盘管理”里删除即可，或借助其它分区工具。&lt;br /&gt;&lt;br /&gt;0011 如何退出man(bjchenxu)&lt;br /&gt;按 q 键&lt;br /&gt;&lt;br /&gt;0012 不编译内核，mount ntfs分区&lt;br /&gt;目前很多发行版默认就支持ntfs分区，可直接根据上面mount用法来挂载。&lt;br /&gt;&lt;br /&gt;对于Redhat/Fedora默认是不支持ntfs的，可进行如下操作,&lt;br /&gt;1. uname -r ,得到内核版本号；&lt;br /&gt;2. 登录http://rpm.pbone.net 搜索"kernel-ntfs"，下载对应内核的rpm；&lt;br /&gt;2. rpm -ivh 下载的rpm包；&lt;br /&gt;3. mkdir /mnt/WinC&lt;br /&gt;4. mount -t ntfs /dev/hda1 /mnt/WinC&lt;br /&gt;&lt;br /&gt;0013 tar 分卷压缩和合并(WongMokin，Waker)&lt;br /&gt;以每卷500M为例&lt;br /&gt;tar分卷压缩：tar cvzpf - somedir | split -d -b 500m&lt;br /&gt;tar多卷合并：cat x* &gt; mytarfile.tar.gz&lt;br /&gt;&lt;br /&gt;0014 使用grub时找回忘记了的root口令&lt;br /&gt;待补充&lt;br /&gt;&lt;br /&gt;0015 使ctrl + alt + del失效(bjchenxu)&lt;br /&gt;vi /etc/inittab&lt;br /&gt;将ca::ctrlaltdel:/sbin/shutdown -t3 -r now这行注释掉，就可以了&lt;br /&gt;&lt;br /&gt;0016 如何查看发行版名称(hutuworm)&lt;br /&gt;cat /proc/version 或者 cat /etc/issue&lt;br /&gt;&lt;br /&gt;0017 文件在哪个rpm中(无双)&lt;br /&gt;上www.rpmfind.net上搜，或者rpm -qf 文件名得到&lt;br /&gt;&lt;br /&gt;0018 把man的信息存为文本文件(bjchenxu)&lt;br /&gt;以 ls 为例： man ls  &gt; tcsh.txt&lt;br /&gt;&lt;br /&gt;0019 利用现存两个文件，生成一个新的文件(bjchenxu)&lt;br /&gt;1. 取出两个文件的并集(重复的行只保留一份)&lt;br /&gt;2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)&lt;br /&gt;3. 删除交集，留下其他的行&lt;br /&gt;1. cat file1 file2 | sort | uniq&lt;br /&gt;2. cat file1 file2 | sort | uniq -d&lt;br /&gt;3. cat file1 file2 | sort | uniq -u&lt;br /&gt;&lt;br /&gt;0020 设置com1口，让超级终端通过com1口进行登录(bjchenxu)&lt;br /&gt;确认有/sbin/agetty，编辑/etc/inittab，添加&lt;br /&gt;7:2345:respawn:/sbin/agetty /dev/ttyS0 9600&lt;br /&gt;9600bps是因为联路由器缺省一般都是这种速率，也可以设成&lt;br /&gt;19200、38400、57600、115200&lt;br /&gt;修改/etc/securetty，添加一行：ttyS0，确保root用户能登录&lt;br /&gt;重启机器，就可以拔掉鼠标键盘显示器（启动时最好还是要看看输出信息）了&lt;br /&gt;&lt;br /&gt;0021 删除目录下所有文件包括子目录(bjchenxu)&lt;br /&gt;$rm -rf 目录名&lt;br /&gt;&lt;br /&gt;0022 查看系统信息(bjchenxu)&lt;br /&gt;cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)&lt;br /&gt;cat /proc/interrupts - 中断&lt;br /&gt;cat /proc/ioports - 设备IO端口&lt;br /&gt;cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)&lt;br /&gt;cat /proc/partitions - 所有设备的所有分区&lt;br /&gt;cat /proc/pci - PCI设备的信息&lt;br /&gt;cat /proc/swaps - 所有Swap分区的信息&lt;br /&gt;cat /proc/version - Linux的版本号 相当于 uname -r&lt;br /&gt;uname -a - 看系统内核等信息&lt;br /&gt;&lt;br /&gt;0023 去掉文本文件中多余的回车符(bjchenxu)&lt;br /&gt;sed 's/^M//' test.sh &gt; back.sh， 注意^M是敲ctrl+v ctrl+m得到的&lt;br /&gt;或者 dos2unix filename&lt;br /&gt;&lt;br /&gt;0024 切换X桌面系统(lnx3000)&lt;br /&gt;前提：安装了多个桌面系统，如KDE &amp;&amp; GNOME&lt;br /&gt;如果你是以图形登录方式登录linux，那么点击登录界面上的session（任务）即可以选择&lt;br /&gt;gnome和kde。&lt;br /&gt;如果你是以文本方式登录，那执行switchdesk gnome或switchdesk kde，然后再startx就&lt;br /&gt;可以进入gnome或kde。&lt;br /&gt;(或者vi ~/.xinitrc，添加或修改成exec gnome-session 或exec startkde，然后用sta&lt;br /&gt;rtx启动X)&lt;br /&gt;&lt;br /&gt;0025 通用的声卡驱动程序(lnx3000)&lt;br /&gt;ALSA www.alsa-project.org/&lt;br /&gt;OSS  www.opensound.com/&lt;br /&gt;&lt;br /&gt;0026 改变Redhat/Fedora的系统语言/字符集&lt;br /&gt;修改 /etc/sysconfig/i18n 文件，如&lt;br /&gt;LANG="en_US"，       显示英文界面，&lt;br /&gt;LANG="zh_CN.UTF-8"， 显示中文界面。&lt;br /&gt;或LANG="zh_CN.GB2312"推荐使用UTF-8&lt;br /&gt;另一个方法：&lt;br /&gt;cp /etc/sysconfig/i18n $HOME/.i18n&lt;br /&gt;修改 $HOME/.i18n 文件，如&lt;br /&gt;LANG="en_US"，       显示英文界面，&lt;br /&gt;LANG="zh_CN.UTF-8"， 显示中文界面。&lt;br /&gt;这样就只改变个人的界面语言，而不影响别的用户&lt;br /&gt;&lt;br /&gt;0027 把屏幕设置为90列(bjchenxu)&lt;br /&gt;stty cols 90&lt;br /&gt;&lt;br /&gt;0028 使用md5sum文件(bjchenxu)&lt;br /&gt;md5sum isofile &gt; hashfile, 将 md5sum 档案与 hashfile 档案内容比对, 验证杂凑值&lt;br /&gt;是否一致 md5sum –c hashfile&lt;br /&gt;&lt;br /&gt;0029 一次解压多个zip文件(bjchenxu)&lt;br /&gt;unzip "*"，注意引号不能少&lt;br /&gt;&lt;br /&gt;0030 看pdf文件(bjchenxu)&lt;br /&gt;推荐使用 Acrobat reader for linux&lt;br /&gt;校内下载：ftp://202.112.146.235/pub/office/AdobeReader_chs-7.0.5-1.i386.tar.gz&lt;br /&gt;&lt;br /&gt;0031 查找权限位为S的文件(bjchenxu)&lt;br /&gt;find . -type f \( -perm -04000 -o -perm -02000 \) -exec ls -lg {} \;&lt;br /&gt;&lt;br /&gt;0032 字符模式下支持中文&lt;br /&gt;到http://zhcon.sourceforge.net 下载zhcon-0.2.1.tar.gz&lt;br /&gt;$tar xvfz zhcon-0.2.1.tar.gz&lt;br /&gt;$cd zhcon-0.2.1&lt;br /&gt;$./configure&lt;br /&gt;$make &amp;&amp; make install&lt;br /&gt;要想使用，请运行zhcon，想退出，运行exit。&lt;br /&gt;&lt;br /&gt;0033 把弹出的光盘收回来(beike)&lt;br /&gt;#eject －t&lt;br /&gt;&lt;br /&gt;0034 cd光盘做成iso文件(弱智)&lt;br /&gt;cp /dev/cdrom xxxx.iso&lt;br /&gt;&lt;br /&gt;0035 快速观看开机的硬件检测(弱智)&lt;br /&gt;dmesg | more&lt;br /&gt;&lt;br /&gt;0036 查看硬盘的使用情况(bjchenxu)&lt;br /&gt;df -k 以K为单位显示&lt;br /&gt;df -h 以更人性化单位显示，可以是b,k,m,g,t..&lt;br /&gt;&lt;br /&gt;0037 查看目录的大小(bjchenxu)&lt;br /&gt;du -sh dirname&lt;br /&gt;-s 仅显示总计&lt;br /&gt;-h 以K、M、G为单位，提高信息的可读性。KB、MB、GB是以1024为换算单 位， -H以100&lt;br /&gt;0为换算单位。&lt;br /&gt;&lt;br /&gt;0038 查找或删除正在使用某文件的进程(wwwzc)&lt;br /&gt;fuser filename&lt;br /&gt;fuser -k filename&lt;br /&gt;&lt;br /&gt;0039 安装软件包&lt;br /&gt;安装rpm包：rpm -ivh aaa.rpm&lt;br /&gt;安装deb包：dpkg -i aaa.deb&lt;br /&gt;安装源码包：tar xvfz aaa.tar.gz; cd aaa; ./configure; make; make install（前提&lt;br /&gt;：安装了编译器以及所需的库文件）&lt;br /&gt;&lt;br /&gt;0040 字符模式下设置/删除环境变量(bjchenxu)&lt;br /&gt;bash下&lt;br /&gt;设置：export 变量名=变量值&lt;br /&gt;删除：unset 变量名&lt;br /&gt;csh下&lt;br /&gt;设置：setenv 变量名 变量值&lt;br /&gt;删除：unsetenv 变量名&lt;br /&gt;&lt;br /&gt;0041 ls如何看到隐藏文件(即以.开头的文件)(双眼皮的猪)&lt;br /&gt;ls -a&lt;br /&gt;&lt;br /&gt;0042 rpm中的文件安装到哪里去了(bjchenxu)&lt;br /&gt;rpm -qpl name.rpm&lt;br /&gt;&lt;br /&gt;0043 使用src.rpm(bjchenxu)&lt;br /&gt;rpmbuild --rebuild name.src.rpm&lt;br /&gt;&lt;br /&gt;0044 vim中显示颜色或不显示颜色(bjchenxu)&lt;br /&gt;首先确保安装了vim-enhanced包，然后，vi ~/.vimrc;&lt;br /&gt;如果有syntax on，则显示颜色，&lt;br /&gt;      syntax off，则不显示颜色。&lt;br /&gt;另外，关于vi的syntax color，还有一点是终端类型（环境变量TERM）的设置。&lt;br /&gt;比如通常要设置成xterm或xterm-color才能使用syntax color。尤其是从Linux远程登陆&lt;br /&gt;到其他的Unix上&lt;br /&gt;&lt;br /&gt;0045 linux是实时还是分时操作系统(bjchenxu)&lt;br /&gt;分时&lt;br /&gt;&lt;br /&gt;0046 make bzImage -j 的j是什么意思(wind521)&lt;br /&gt;-j主要是用在当你的系统硬件资源比较大的时候，比较富裕的时候，用这个可以来加快编&lt;br /&gt;译的速度，如-j 3&lt;br /&gt;&lt;br /&gt;0047 源码包怎么没有&lt;br /&gt;目前很多发行版不再自代源码，请自行下载安装。&lt;br /&gt;&lt;br /&gt;0048 修改系统时间(bjchenxu，laixi781211，hutuworm)&lt;br /&gt;date -s “2003-04-14 cst”，cst指时区，时间设定用date -s 18:10&lt;br /&gt;修改后执行clock -w 写到CMOS&lt;br /&gt;hwclock --systohc&lt;br /&gt;set the hardware clock to the current system time&lt;br /&gt;&lt;br /&gt;0049 开机就mount上windows下的分区(bjchenxu)&lt;br /&gt;自动将windows的d盘挂到/mnt/d上，用vi打开/etc/fstab，加入以下一行&lt;br /&gt;/dev/hda5 /mnt/WinD ntfs umask=0,iocharset=utf8  0 0&lt;br /&gt;注意，先得手工建立一个/mnt/WinD目录&amp;&amp;系统支持ntfs。&lt;br /&gt;&lt;br /&gt;0050 linux怎么用这么多内存(bjchenxu)&lt;br /&gt;为了提高系统性能和不浪费内存，linux把多的内存做了cache，以提高io速度&lt;br /&gt;&lt;br /&gt;0051 /etc/fstab 最后的配置项里边最后两个数字是什么意思(lnx3000)&lt;br /&gt;第一个叫fs_freq,用来决定哪一个文件系统需要执行dump操作，0就是不需要；&lt;br /&gt;第二个叫fs_passno,是系统重启时fsck程序检测磁盘的顺序号&lt;br /&gt;1 是root文件系统，2 是别的文件系统。fsck按序号检测磁盘，0表示该文件系统不被检测&lt;br /&gt;dump 执行ext2的文件系统的备份操作&lt;br /&gt;fsck 检测和修复文件系统&lt;br /&gt;&lt;br /&gt;0052 linux中让用户的密码必须有一定的长度,并且符合复杂度(eapass)&lt;br /&gt;vi /etc/login.defs，改PASS_MIN_LEN&lt;br /&gt;&lt;br /&gt;0053 linux中的翻译软件(bjchenxu，hutuworm)&lt;br /&gt;星际译王 xdict&lt;br /&gt;console下还有个dict工具，通过DICT协议到dict.org上查11本字典，例如：dict RTFM&lt;br /&gt;&lt;br /&gt;0054 不让显示器休眠(bjchenxu)&lt;br /&gt;setterm -blank 0&lt;br /&gt;setterm -blank n (n为等待时间)&lt;br /&gt;&lt;br /&gt;0055 用dat查询昨天的日期(gadfly)&lt;br /&gt;date --date='yesterday'&lt;br /&gt;&lt;br /&gt;0056 xwindow下如何截屏(bjchenxu)&lt;br /&gt;Ksnapshot或者gnome-screenshot&lt;br /&gt;&lt;br /&gt;0057 解压小全(bjchenxu,noclouds)&lt;br /&gt;tar -I或者bunzip2命令都可以解压.bz2文件&lt;br /&gt;tar xvfj example.tar.bz2&lt;br /&gt;tar xvfz example.tar.gz&lt;br /&gt;tar xvfz example.tgz&lt;br /&gt;tar xvf example.tar&lt;br /&gt;tar -jvxf some.bz&lt;br /&gt;unzip example.zip&lt;br /&gt;rar/unrar一般需自己另外下载安装&lt;br /&gt;工具Alien提供了.tgz, .rpm, .slp和.deb等压缩格式之间的相互转换：&lt;br /&gt;http://sourceforge.net/projects/alien&lt;br /&gt;sEx提供了几乎所有可见的压缩格式的解压接口：&lt;br /&gt;http://sourceforge.net/projects/sex&lt;br /&gt;&lt;br /&gt;0057-2 tar压缩、解压实例（platinum）&lt;br /&gt;解压：x&lt;br /&gt;压缩：c&lt;br /&gt;针对gz：z&lt;br /&gt;针对bz2：j&lt;br /&gt;用于显示：v&lt;br /&gt;&lt;br /&gt;解压实例&lt;br /&gt;gz文件：tar xzvf xxx.tar.gz&lt;br /&gt;bz2文件：tar xjvf xxx.tar.bz2&lt;br /&gt;&lt;br /&gt;压缩实例&lt;br /&gt;gz文件：tar czvf xxx.tar.gz   /path&lt;br /&gt;bz2文件：tar cjvf xxx.tar.bz2 /path&lt;br /&gt;&lt;br /&gt;0058 在多级目录中查找某个文件的方法(青海湖)&lt;br /&gt;find /dir -name filename.ext&lt;br /&gt;du -a | grep filename.ext&lt;br /&gt;locate filename.ext&lt;br /&gt;&lt;br /&gt;0059 不让普通用户自己改密码(myxfc)&lt;br /&gt;[root@xin_fc etc]# chmod 511 /usr/bin/passwd&lt;br /&gt;又想让普通用户自己改密码&lt;br /&gt;[root@xin_fc etc]# chmod 4511 /usr/bin/passwd&lt;br /&gt;&lt;br /&gt;0060 显卡配置(win_bigboy)&lt;br /&gt;待定&lt;br /&gt;&lt;br /&gt;0061&lt;br /&gt;&lt;br /&gt;0062 utf8编码下如何让bmp播放器和播放列表里正确显示中文&lt;br /&gt;BMP首选项--插件--媒体--MPEG音频插件--首选项--标题&lt;br /&gt;选中"禁用ID3V2标签"和"将非UTF-8 ID3转换成UTF-8" "覆盖通常标题"&lt;br /&gt;ID3编码 文本框中填入 GB2312&lt;br /&gt;&lt;br /&gt;0063 Redhat9中播放mp3文件&lt;br /&gt;自带的x mms不能播放MP3，要安装一个mp3插件包x mms-mp3-1.2.7-13.p.i386.rpm。&lt;br /&gt;&lt;br /&gt;0064 添加中文字体&lt;br /&gt;目前Linux下免费的不错的中文字体有uming,ukai,fireflysung,文泉驿&lt;br /&gt;不怕涉及版权问题的还可copy Windows下的simsun.ttc，tahoma.ttf，tahomabd.ttf&lt;br /&gt;关于美化的方法各个发行版情况不太一样，可参考Linuxsir.org等相关论坛。&lt;br /&gt;&lt;br /&gt;0065&lt;br /&gt;&lt;br /&gt;0066 使用五笔和拼音,区位等中文输入法&lt;br /&gt;从http://www.fcitx.org 下载fcitx安装,具体方法可参考上面的文档.&lt;br /&gt;&lt;br /&gt;0067 在Linux下如何解压rar文件&lt;br /&gt;下载安装rar for Linux,&lt;br /&gt;unrar xxx.rar&lt;br /&gt;&lt;br /&gt;0068 怎么添加/删除rpm包&lt;br /&gt;推荐使用yum管理你的系统，自动解决软件包的依赖关系。&lt;br /&gt;&lt;br /&gt;0069 字符下控制音量(grub007天外闲云)&lt;br /&gt;使用aumix。另外，要保存oss的音量大小，步骤为：&lt;br /&gt;1、用aumix将音量调整为你们满意的音量&lt;br /&gt;2、用root用户进入/usr/lib/oss下(oss的默认安装目录)&lt;br /&gt;3、执行./savemixer ./mixer.map&lt;br /&gt;4、ok，以后oss开启之后就是你在第一步调整的音量了。&lt;br /&gt;ps:阅读该目录下的README可以得到更多的有用信息。&lt;br /&gt;&lt;br /&gt;0070 用dd做iso(grub007)&lt;br /&gt;dd if=/dev/cdrom of=/tmp/somename.iso&lt;br /&gt;&lt;br /&gt;0071 删除几天以前的所有东西(包括目录名和目录中的文件)(shally5)&lt;br /&gt;find . -ctime +3 -exec rm -rf {} \;&lt;br /&gt;或&lt;br /&gt;find ./ -mtime +3 -print|xargs rm -f -r&lt;br /&gt;&lt;br /&gt;0072 用户的crontab在哪里(hutuworm)&lt;br /&gt;/var/spool/cron/下以用户名命名的文件&lt;br /&gt;&lt;br /&gt;0073 以不同的用户身份运行程序(bjchenxu)&lt;br /&gt;su - username -c "/path/to/command"&lt;br /&gt;有时候需要运行特殊身份的程序, 就可以让su来做&lt;br /&gt;&lt;br /&gt;0074 如何清空一个文件(bjchenxu)&lt;br /&gt;echo &gt; filename&lt;br /&gt;&lt;br /&gt;0075&lt;br /&gt;&lt;br /&gt;0076 如何备份Linux系统&lt;br /&gt;参考tar或使用更好的商业软件。&lt;br /&gt;&lt;br /&gt;0077 linux下分区工具&lt;br /&gt;命令模式下的工具：fdisk&lt;br /&gt;gnome下图形界面工具：gparted&lt;br /&gt;kde下图形界面分区工具：qparted&lt;br /&gt;&lt;br /&gt;0078 /proc/sys/sem中每项代表什么意思? (sakulagi)&lt;br /&gt;/proc/sys/sem内容如下&lt;br /&gt;250 32000 32 128&lt;br /&gt;这4个参数依次为SE MMSL(每个用户拥有信号量最大数量),SEMMNS(系统信号量最大数量),&lt;br /&gt;SEMOPM(每次semop系统调用操作数),SEMMNI(系统信号量集最大数量)&lt;br /&gt;&lt;br /&gt;0079 Grub 引导菜单里 bigmem smp up 都是什么意思？(lnx3000)&lt;br /&gt;smp: （symmetric multiple processor）对称多处理器模式&lt;br /&gt;bigmem: 支持1G 以上内存的优化内核&lt;br /&gt;up:（Uni processor） 单处理器的模式&lt;br /&gt;&lt;br /&gt;0080 Oracle的安装程序为什么显示乱码？(lnx3000)&lt;br /&gt;现在Oracle的安装程序对中文的支持有问题，只能使用英文界面来安装，&lt;br /&gt;在执行runinstaller之前，执行：&lt;br /&gt;$export LANG=C&lt;br /&gt;$export LC_ALL=C&lt;br /&gt;&lt;br /&gt;0081 linux下文件和目录的颜色代表什么(sakulagi,弱智)&lt;br /&gt;蓝色表示目录；绿色表示可执行文件；红色表示压缩文件；浅蓝&lt;br /&gt;色表示链接文件；灰色表示其它文件；红色闪烁表示链接的文件有问题了；&lt;br /&gt;黄色是设备文件，包括block, char, fifo。&lt;br /&gt;用dircolors -p看到缺省的颜色设置，包括各种颜色和“粗体”，下划线，闪烁等定义。&lt;br /&gt;&lt;br /&gt;0082 查看有多少活动 httpd的脚本(bjchenxu)&lt;br /&gt;编写如下脚本，chmod +x  test_ http.sh加上可执行权限，再到终端下运行即可&lt;br /&gt;#!/bin/sh&lt;br /&gt;while (true)&lt;br /&gt;do&lt;br /&gt;pstree |grep "*\[ httpd\]$"|sed 's/.*-\([0-9][0-9]*\)\*\[ httpd\]$/\1/'&lt;br /&gt;sleep 3&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;0083 如何新增一块硬盘(好好先生)&lt;br /&gt;一、关机，物理连接硬盘&lt;br /&gt;如果是IDE硬盘，注意主、从盘的设置；如果是SCSI硬盘，注意选择一个没有被使用的ID&lt;br /&gt;号。&lt;br /&gt;二、开机，检查硬盘有没有被linux检测到&lt;br /&gt;dmesg |grep hd*(ide硬盘)&lt;br /&gt;dmesg |grep sd*(SCSI硬盘)&lt;br /&gt;或者 less /var/log/dmesg&lt;br /&gt;如果你没有检测到你的新硬盘，重启，检查连线，看看bios有没有认出它来。&lt;br /&gt;三、分区&lt;br /&gt;你可以使用fdisk，Sfdisk或者parted（GNU分区工具,linux下的partition magic)&lt;br /&gt;四、格式化&lt;br /&gt;mkfs&lt;br /&gt;五、修改fstab&lt;br /&gt;vi /etc/fstab&lt;br /&gt;&lt;br /&gt;0084 linux下怎么看分区的卷标啊 (q1208c)&lt;br /&gt;e2label /dev/hdxn, where x=a,b,c,d....; n=1,2,3...&lt;br /&gt;&lt;br /&gt;0085 Redhat9中安装后如何添加新的语言包&lt;br /&gt;在第三张光盘上找如下类似的软件包&lt;br /&gt;ttfonts-zh_CN-2.12-1.noarch.rpm(简体中文)&lt;br /&gt;ttfonts-zh_TW-2.11-19.noarch.rpm (繁体中文)&lt;br /&gt;其它的类似&lt;br /&gt;&lt;br /&gt;0086 终端下抓屏(tsgx)&lt;br /&gt;cat /dev/vcsN &gt;screenshot 其中，N表示第N个终端&lt;br /&gt;还可以运行script screen.log，记录屏幕信息到screen.log里。一会记录到你exit为此&lt;br /&gt;。这也是抓屏的好方法。&lt;br /&gt;这是在debian的cookbook上看到的。在RH9上能用。没有在其它的系统上测试过。&lt;br /&gt;&lt;br /&gt;0087 让一个程序在退出登陆后继续运行(NetDC，双眼皮的猪)&lt;br /&gt;#nohup 程序名 &amp;&lt;br /&gt;或者使用disown命令也可以&lt;br /&gt;&lt;br /&gt;0088 man命令不在路径中，如何查看非标准的man文件(bjchenxu)&lt;br /&gt;nroff -man /usr/man/man1/cscope.1 | more&lt;br /&gt;&lt;br /&gt;0089&lt;br /&gt;&lt;br /&gt;0090 编辑/etc/inittab后直接生效(bjchenxu)&lt;br /&gt;#init q&lt;br /&gt;&lt;br /&gt;0091 让linux连续执行几个命令，出错停止(bjchenxu)&lt;br /&gt;command1 &amp;&amp; command2 &amp;&amp; command3&lt;br /&gt;&lt;br /&gt;0092 如何将grub安装到mbr(bjchenxu, NetDC)&lt;br /&gt;在grub交互方式下&lt;br /&gt;grub&gt; root (hd0,0)&lt;br /&gt;grub&gt; setup (hd0)&lt;br /&gt;也可以在修复模式下用&lt;br /&gt;#grub-install /dev/hda&lt;br /&gt;来安装grub。&lt;br /&gt;&lt;br /&gt;0093 安装时把grub写到linux分区的引导区还是主引导扇区(MBR)(bjchenxu)&lt;br /&gt;如果你想电脑一启动就直接进入操作系统启动菜单就把grub写到MBR上，如果写到linux分&lt;br /&gt;区的引导区则要用引导盘引导。建议写到 MBR，方便点，至于说写到MBR不安全，该怎么&lt;br /&gt;解释呢？每装一次Windows，MBR都会被修改一次，大家觉得有什么不安全的吗？&lt;br /&gt;&lt;br /&gt;0094 如何引导多系统&lt;br /&gt;待补充，先看精华区--&gt;"安装升级"--&gt;"启动引导"&lt;br /&gt;&lt;br /&gt;0095 如何在图形界面和控制台（字符界面）之间来回切换(bjchenxu)&lt;br /&gt;a.图形界面到控制台：Ctr+Alt+Fn(n=1,2,3,4,5,6)。&lt;br /&gt;b.各控制台之间切换：Alt+Fn(n=1,2,3,4,5,6)。&lt;br /&gt;c.控制台到图形界面：Alt+F7&lt;br /&gt;&lt;br /&gt;0096 Linux常用的命令&lt;br /&gt;请看精华区&lt;br /&gt;&lt;br /&gt;0098 重装windows导致linux不能引导的解决办法&lt;br /&gt;参考精华区--常见问题&lt;br /&gt;&lt;br /&gt;0099 为什么装了LINUX后win2K很慢(lnx3000，好好先生)&lt;br /&gt;老问题了，你在2000是不是能看见Linux的逻辑盘，但不能访问？&lt;br /&gt;在磁盘管理里，选中这个盘，右击-&gt;更改"驱动器名和路径"-&gt;"删除"就可以了，注意不是&lt;br /&gt;删除这个盘!&lt;br /&gt;&lt;br /&gt;0100&lt;br /&gt;&lt;br /&gt;1101 linux中刻录iso的方法(hutuworm)&lt;br /&gt;方法一：使用xcdroast，选择制作光碟，选择ISO文件，刻录!&lt;br /&gt;参见http://www.xcdroast.org/xcdr098/faq-a15.html#17&lt;br /&gt;方法二：找刻录机的命令：&lt;br /&gt;cdrecord --scanbus&lt;br /&gt;输出结果为：&lt;br /&gt;0,0,0 0) 'ATAPI ' 'CD-R/RW 8X4X32 ' '5.EZ' Removable CD-ROM&lt;br /&gt;刻录的命令：&lt;br /&gt;cdrecord -v speed=8 dev=0,0,0 hutuworm.iso&lt;br /&gt;方法三：使用k3b可以刻录CD/DVD&lt;br /&gt;k3b主页：http://www.k3b.org/&lt;br /&gt;(实际上k3b是个图形界面，刻录CD利用了cdrecord，刻录DVD利用了dvd+rw-tools http:&lt;br /&gt;//fy.chalmers.se/~appro/linux/DVD+RW/ )&lt;br /&gt;&lt;br /&gt;1102 屏幕变花时怎么办(双眼皮的猪)&lt;br /&gt;当您一不小心cat了一个并不是文本的文件的时候，这时屏幕会变花，那么您可以按两下&lt;br /&gt;"Enter"键，再敲"clear"，那么屏幕就恢复正常了....&lt;br /&gt;&lt;br /&gt;1103 卸载rpm软件包时如何得知具体包名(diablocom)&lt;br /&gt;大家知道删除软件包的命令是rpm -e XXX，但是当我们不知道这个XXX的确切拼写时，&lt;br /&gt;可以用rpm -q -a查询所有安装的软件包或者用rpm -qa |grep xxxx查询出名字。&lt;br /&gt;&lt;br /&gt;1104 使用内存作linux下的/tmp文件夹(yulc)&lt;br /&gt;在/etc/fstab中加入一行：&lt;br /&gt;none /tmp tmpfs default 0 0&lt;br /&gt;或者在/etc/rc.local中加入&lt;br /&gt;mount tmpfs /tmp -t tmpfs -o size=128m&lt;br /&gt;注：size=128m 表示/tmp最大能用128m&lt;br /&gt;不管哪种方式，只要linux重启，/tmp下的文件全部消失&lt;br /&gt;&lt;br /&gt;1105 用ls只列出目录(yulc)&lt;br /&gt;ls -lF | grep ^d&lt;br /&gt;ls -lF | grep /$&lt;br /&gt;ls -F  | grep /$&lt;br /&gt;&lt;br /&gt;1106 在命令行下列出本机IP地址，而不是得到网卡信息(yulc)&lt;br /&gt;ifconfig |grep "inet" |cut -c 0-36|sed -e 's/[a-zA-Z: ]//g'&lt;br /&gt;hostname -i&lt;br /&gt;&lt;br /&gt;1107 修改/etc/profile或者$HOME/.profile文件后如何立即生效(peter333)&lt;br /&gt;#source /etc/profile (或者source .profile)&lt;br /&gt;&lt;br /&gt;1108 bg和fg的使用(bjchenxu)&lt;br /&gt;输入ctrl+z，当前一个任务会被挂起并暂停， 同时屏幕上返回进程号，此时用 "bg %进&lt;br /&gt;程号"，会把这个进程放到后台执行，而用" fg %进程号 "就能让这个进程放到前台来执&lt;br /&gt;行。另外，job命令用来查看当前的被bg的进程&lt;br /&gt;&lt;br /&gt;1109 ctrl+s与ctrl+q(bjchenxu)&lt;br /&gt;ctrl-s用来暂停向终端发送数据的，屏幕就象死了一样，可以用ctrl-q来恢复&lt;br /&gt;&lt;br /&gt;1110 目录统计脚本(bjchenxu)&lt;br /&gt;保存成total.sh，然后用total.sh 绝对路径，就能统计路径下目录的大小了&lt;br /&gt;代码:&lt;br /&gt;#!/bin/sh&lt;br /&gt;du $1 --max-depth=1 | sort -n|awk '{printf "%7.2fM ----&gt; %s\n",$1/1024,$2}'|s&lt;br /&gt;ed 's:/.*/\([^/]\{1,\}\)$:\1:g'&lt;br /&gt;&lt;br /&gt;1111 grep不显示本身进程(bjchenxu)&lt;br /&gt;#ps -aux|grep httpd|grep -v grep&lt;br /&gt;grep -v grep可以取消显示你所执行的grep本身这个进程，-v参数是不显示所列出的进程名&lt;br /&gt;&lt;br /&gt;1112 删除目录中含输入关键字的文件(WongMokin)&lt;br /&gt;find /mnt/ebook/ -type f -exec grep "在此输入关键字" {} \; -print -exec rm {} \;&lt;br /&gt;&lt;br /&gt;1113 让cron中的任务不回馈信息, 本例5分钟检查一次邮件(WongMokin)&lt;br /&gt;0-59/5 * * * * /usr/local/bin/fetchmail &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;&lt;br /&gt;1114 在当前目录下解压rpm文件(bjchenxu)&lt;br /&gt;cat kernel-ntfs-2.4.20-8.i686.rpm | rpm2cpio | pax -r&lt;br /&gt;&lt;br /&gt;1115 合并两个Postscript或PDF文件(noclouds)&lt;br /&gt;$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite \&lt;br /&gt;-sOutputFile=bar.ps -f foo1.ps foo2.ps&lt;br /&gt;$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \&lt;br /&gt;-sOutputFile=bar.pdf -f foo1.pdf foo2.pdf&lt;br /&gt;&lt;br /&gt;1116 去掉apache的manual目录中的所有.en的后缀名(bjchenxu)&lt;br /&gt;进入到manual目录&lt;br /&gt;代码:find ./ -regex .*\.en|awk -F. '{ printf "mv %s.%s.%s.%s %s.%s.%s\n",$1,$&lt;br /&gt;2,$3,$4,$1,$2,$3}'|sh&lt;br /&gt;&lt;br /&gt;1117 如何起多个X(noclouds)&lt;br /&gt;startx默认以display :0.0起第一个X，通过传递参数给Xserver可以起多个X：&lt;br /&gt;# startx -- :1.0&lt;br /&gt;# startx -- :2.0&lt;br /&gt;...&lt;br /&gt;然后用Ctrl-Alt-F7/F8...切换。&lt;br /&gt;&lt;br /&gt;1118 让一个程序在退出登陆后继续运行(noclouds,bjchenxu)&lt;br /&gt;#nohup command &amp;&lt;br /&gt;&lt;br /&gt;1119 看Linux启动时屏幕的显示信息(bjchenxu)&lt;br /&gt;在启动完后用命令dmesg查看&lt;br /&gt;&lt;br /&gt;1120 让vi不响铃(sakulagi)&lt;br /&gt;echo "set vb t_vb=" &gt;&gt; ~/.vimrc&lt;br /&gt;&lt;br /&gt;1121 让fedora开机后自动login(dzho002)&lt;br /&gt;1) rpm -ihv autologin-1.0.0-7mdk.i586 rpm&lt;br /&gt;2) 建立文件 /etc/sysconfig/autologin&lt;br /&gt;在里面加上一行.&lt;br /&gt;USER = username&lt;br /&gt;&lt;br /&gt;1122 Redhat/Fedora如何配置让哪些服务启动(天外闲云，q1208c)&lt;br /&gt;方法1 运行ntsysv或者setup命令，进入菜单进行配置&lt;br /&gt;方法2 chkconfig --list 显示服务&lt;br /&gt;chkconfig name on/off 打开/关闭“name”服务&lt;br /&gt;&lt;br /&gt;1123 安全删除linux(天外闲云)&lt;br /&gt;步骤1 Dos下使用fdisk /mbr或者用win2000/xp的光盘启动进入故障恢复控制台，使用命&lt;br /&gt;令fixmbr&lt;br /&gt;步骤2 格式化linux分区为windows分区即可。&lt;br /&gt;&lt;br /&gt;1124 用grub引导进文本界面(天外闲云)&lt;br /&gt;进入grub之后，按a，输入 空格 3 就可以引导进入文本界面，但是不修改系统的运行级&lt;br /&gt;，只在当次有效。&lt;br /&gt;&lt;br /&gt;1125 先测试patch是否运行正常，暂不将更改应用到kernel(jiadingjun)&lt;br /&gt;patch --dry-run&lt;br /&gt;&lt;br /&gt;1126 redhat和debian上的文件安装删除用法(NetDC)&lt;br /&gt;删除一个软件包：&lt;br /&gt;rpm -e&lt;br /&gt;dpkg -r&lt;br /&gt;显示一个软件包的内容：&lt;br /&gt;rpm -qvl&lt;br /&gt;dpkg -c&lt;br /&gt;显示所有已经安装的软件包：&lt;br /&gt;rpm -qvia&lt;br /&gt;dpkg -l&lt;br /&gt;打印一个包的信息：&lt;br /&gt;rpm -qpi&lt;br /&gt;dpkg -I&lt;br /&gt;检验包characteristics：&lt;br /&gt;rpm -Va&lt;br /&gt;debsums -a&lt;br /&gt;检验一个文件属于哪个包：&lt;br /&gt;rpm -qf&lt;br /&gt;dpkg -S&lt;br /&gt;安装新软件包：&lt;br /&gt;rpm -Uvh&lt;br /&gt;dpkg -i&lt;br /&gt;&lt;br /&gt;1127 如何使新用户首次登陆后强制修改密码(猫小)&lt;br /&gt;#useradd -p '' testuser; chage -d 0 testuser&lt;br /&gt;&lt;br /&gt;1128 日志维护工具logrotate(hotbox)&lt;br /&gt;在/etc/logrotate.conf中配置，作用：定义log文件达到预定的大小或时间时，自动压缩&lt;br /&gt;log文件&lt;br /&gt;&lt;br /&gt;1129 Linux中默认的管理员叫什么(bjchenxu)&lt;br /&gt;root&lt;br /&gt;&lt;br /&gt;1130 如何产生一个长度固定（例如文件长度为1M）字节的空文件，即每个字节的值全为&lt;br /&gt;0x00(sakulagi)&lt;br /&gt;dd if=/dev/zero of=/tmp/zero_file bs=1024 count=1024&lt;br /&gt;&lt;br /&gt;1131 RedHat Linux里修改时间的步骤(hutuworm)&lt;br /&gt;1. 设置你的时区： timeconfig里选择Asia/Shanghai （如果你位于GMT+8中国区域）&lt;br /&gt;2. 与标准时间服务器校准： ntpdate time.nist.gov&lt;br /&gt;   当然，如果你是李嘉诚，也可以跟自己的手表校准： date -s STRING （STRING格式&lt;br /&gt;见man date）&lt;br /&gt;3. 写回硬件时钟： hwclock --systohc&lt;br /&gt;&lt;br /&gt;1132 查找当前目录下文件并更改扩展名(零二年的夏天)&lt;br /&gt;更改所有.ss文件为.aa&lt;br /&gt;# find ./ -name "*.ss" -exec rename .ss .aa '{}' \;&lt;br /&gt;&lt;br /&gt;1133 patch的使用(天才※樱木)&lt;br /&gt;语法是patch [options] [originalfile] [patchfile]&lt;br /&gt;例如：&lt;br /&gt;patch -p[num]&lt;br /&gt;-p参数决定了是否使用读出的源文件名的前缀目录信息，不提供-p参数，则忽略所有目录&lt;br /&gt;信息，-p0（或者-p &lt;br /&gt;0）表示使用全部的路径信息，-p1将忽略第一个"/"以前的目录，依此类推。如/usr/src&lt;br /&gt;/linux-2.4.16/Makefile这样的文件名，在提供-p3参数时将使用linux-2.4.16/Makefil&lt;br /&gt;e作为所要patch的文件。&lt;br /&gt;对于刚才举的Linux内核源码2.4.16升级包的例子，假定源码目录位于/usr/src/linux中&lt;br /&gt;，则在当前目录为/usr/src时使用 "patch -p0&lt;br /&gt;&lt;br /&gt;1134 将file.txt里的123改为456(hutuworm)&lt;br /&gt;方法1&lt;br /&gt;sed 's/123/456/g' file.txt &gt; file.txt.new&lt;br /&gt;mv -f file.txt.new file.txt&lt;br /&gt;方法2&lt;br /&gt;vi file.txt&lt;br /&gt;输入命令：&lt;br /&gt;:%s/123/456/g&lt;br /&gt;&lt;br /&gt;1135 将一个分区格式化为ext3日志文件系统(hutuworm)&lt;br /&gt;mkfs -j /dev/hdaN&lt;br /&gt;&lt;br /&gt;1136 开启硬盘ATA66 (laixi781211)&lt;br /&gt;/sbin/hdparm -d1 -X68 -c3 -m16 /dev/hda&lt;br /&gt;&lt;br /&gt;1137 查看当前运行级别(双眼皮的猪)&lt;br /&gt;runlevel&lt;br /&gt;&lt;br /&gt;1138 查看当前登陆身份(双眼皮的猪)&lt;br /&gt;(1)who am i&lt;br /&gt;(2)whoami&lt;br /&gt;(3)id&lt;br /&gt;注意(1)跟(2)的小区别&lt;br /&gt;&lt;br /&gt;1139 删除rpm -e删除不了的包(wwwzc)&lt;br /&gt;1、如果在删除包之前删除了包的目录&lt;br /&gt;rpm -e --noscripts&lt;br /&gt;2、如果系统里一个包被装两次（由于某些异常引起的）&lt;br /&gt;rpm -e multi-installed-pkgs --allmatches&lt;br /&gt;&lt;br /&gt;1140 如何定制用户登录时显示的信息(jiadingjun)&lt;br /&gt;在/etc目录下放一个名字叫motd的文本文件实现的，例如，建立自己的/etc/motd:&lt;br /&gt;$cat /etc/motd&lt;br /&gt;welcome to my server !&lt;br /&gt;那么，当用户登录系统的时候会出现这样的信息：&lt;br /&gt;Last login: Thu Mar 23 15:45:43 from *.*.*.*&lt;br /&gt;welcome to my server !&lt;br /&gt;&lt;br /&gt;1141 用命令清空Root回收站中的文件(dtedu)&lt;br /&gt;cd /var/.Trash-root&lt;br /&gt;rm -rf *&lt;br /&gt;&lt;br /&gt;1142 在Red Hat上加Simsun.ttc字体(bjchenxu)&lt;br /&gt;以Red Hat 9为例，安装时选取简体中文安装，先复制一个simsun.ttc到/usr/share/fon&lt;br /&gt;t/TrueType，改名为 simsun.ttf；然后进入/usr/share/font/TrueType目录下，运行tt&lt;br /&gt;mkfdir &gt; fonts.dir命令；接着用vi编辑fonts.dir文件，把有simsun.ttf行修改如下:&lt;br /&gt;simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-ascii-0&lt;br /&gt;simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-iso10646-1&lt;br /&gt;simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15&lt;br /&gt;simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1&lt;br /&gt;simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0&lt;br /&gt;simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0&lt;br /&gt;simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-m-0-gb2312.1980-0&lt;br /&gt;simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0&lt;br /&gt;接着运行&lt;br /&gt;$cat fonts.dir &gt; fonts.scale&lt;br /&gt;&lt;br /&gt;1143 Unicon和Zhcon的区别和作用(bjchenxu)&lt;br /&gt;Unicon是内核态的中文平台，基于修改Linux FrameBuffer和Virtual Console（fbcon）&lt;br /&gt;实现的。由于是在系统底层实现的，所以兼容性极好，可以直接支持gpm鼠标。但是相对&lt;br /&gt;比较危险，稍有漏洞就可能会危及系统安全。Zhcon是用户态的中文平台，有点像UCDOS。&lt;br /&gt;&lt;br /&gt;1144 如何卸载tar格式安装的软件(bjchenxu)&lt;br /&gt;进入安装该软件的原代码目录，运行make uninstall。如果不行，也可以查看一下Makef&lt;br /&gt;ile文件，主要是看install部分，从其中找出tar格式的文件被复制到了什么路径，然后&lt;br /&gt;进入相应的目录进行删除即可。&lt;br /&gt;&lt;br /&gt;1145 定制linux提示符 (bjchenxu)&lt;br /&gt;在bash中提示符是通过一个环境变量$PS1指定的。用export $PS1查看现在的值，比较直&lt;br /&gt;观常用的提示符可以设定为export PS1=“[\u@\h \W]\$”。其中\u代表用户名，\h代表&lt;br /&gt;主机名，\W代表当前工作目录的最后一层，如果是普通用户\$则显示$，root用户显示#。&lt;br /&gt;&lt;br /&gt;1146 在vi中搜索了一个单词，该单词以高亮显示，看起来很不舒服，怎么能将它去掉(b&lt;br /&gt;jchenxu)&lt;br /&gt;在vi的命令模式下输入:nohlsearch就可以了。另外可以在~/.vimrc中写上下面的语句就&lt;br /&gt;会有高亮显示：&lt;br /&gt;set hlsearch&lt;br /&gt;加上下面的语句就不会有高亮显示：&lt;br /&gt;set nohlsearch&lt;br /&gt;&lt;br /&gt;1147 如何找出系统中所有的*.cpp、*.h文件(bjchenxu)&lt;br /&gt;用find命令就可以了。不过如果从根目录查找消耗资源较高，使用下面的命令就可以：&lt;br /&gt;find / -name "*.cpp" -o -name "*.h"&lt;br /&gt;&lt;br /&gt;1148 安装Debian需要几张盘就够了？全部都要下载吗？(bjchenxu)&lt;br /&gt;如果有良好的网络环境的话，下载第一张就可以了。要是没有网络环境的话不推荐使用D&lt;br /&gt;ebian，因为Debian主要依赖网络来更新软件。&lt;br /&gt;&lt;br /&gt;1149 Debian第一张光盘为什么有两个版本？debian-30r1-i386-binary-1.iso和debian-&lt;br /&gt;30r1-i386-binary-1_NONUS.iso该下载哪一个呢？它们有什么区别？(bjchenxu)&lt;br /&gt;因为含有“non-US”（不属美国）的软件不能合法地存放在架设于美国境内的服务器中。&lt;br /&gt;以前，其原因通常是因为软件含有严密的密码编码，而今天，则是因为程序使用了美国专&lt;br /&gt;利保护的演算法。每个人应该取用“non-US”来供私人用途所用；而没有这个标识的iso&lt;br /&gt;则只对架设在美国的镜&lt;br /&gt;像及供应商才有用处。其它二进制的光盘则不会含有任何“US-sensitive”（与美国相关&lt;br /&gt;的）软件，它们和其它种binary-1光盘一样运作得很好。因此，个人使用还是下载debia&lt;br /&gt;n-30r1-i386-binary-1_NONUS.iso版本。&lt;br /&gt;&lt;br /&gt;1150 为何我使用umount /mnt/cdrom命令的时候出现device is busy这样的语句，不能u&lt;br /&gt;mount(bjchenxu)&lt;br /&gt;在使用umount的时候一定要确保已退出/mnt/cdrom这个目录，退出这个目录就可以使用u&lt;br /&gt;mount /mnt/cdrom了。&lt;br /&gt;&lt;br /&gt;1151 我使用的是笔记本电脑，怎么才能在控制台下显示现在还剩多少电量呢？ (bjchenxu)&lt;br /&gt;使用apm -m就可以看到还有多少分钟了，具体参数可以用man apm查看。&lt;br /&gt;&lt;br /&gt;1152 为什么我进入Linux的终端窗口时，man一条命令出来的都是乱码呢？ (bjchenxu)&lt;br /&gt;这是因为你的字符集设置有问题。临时解决办法可以使用export LANG=“en_US”。要想&lt;br /&gt;不必每次都修改的话，在/etc/sysconfig/i18n文件里面修改LANG=“en_US”就可以了。&lt;br /&gt;也可以针对某个用户来做，这样就可以改变个人的界面语言，而不影响别的用户。命令如&lt;br /&gt;下：# cp &lt;br /&gt;/etc/sysconfig/i18n $HOME/.i18n。&lt;br /&gt;&lt;br /&gt;1153 编译内核的时候出错，提示“Too many open files”，请问怎么处理 (bjchenxu)&lt;br /&gt;这是因为file-max默认值（8096）太小。要解决这个问题，可以root身份执行下列命令（&lt;br /&gt;或将它们加入/etc/rcS.d/*下的init脚本）：&lt;br /&gt;# echo "65536" &gt; /proc/sys/&lt;br /&gt;最后进入解压后的目录，运行安装命令。&lt;br /&gt;# cd vmware-linux-tools&lt;br /&gt;# ./install.pl&lt;br /&gt;&lt;br /&gt;1154&lt;br /&gt;&lt;br /&gt;1155 安装了一台Linux服务器，想自己编译内核，一步一步做下来，GRUB也添加进去了，&lt;br /&gt;但出现“kernel Panic:VFS:Unable to mount root fs on 0:00”的错误，请问是怎么回&lt;br /&gt;事？(bjchenxu)&lt;br /&gt;一般情况下initrd这个文件在台式机上不是必须的，但是在有SCSI设备的服务器上却是必&lt;br /&gt;须的。有可能因为编译内核的时候没有产生initrd那个文件，所以会有上面的错误提示。&lt;br /&gt;用户可以使用mkinitrd命令来生成一个initrd.img文件，然后加入GRUB，重启试一试。&lt;br /&gt;&lt;br /&gt;1156 如何设置用户登录后的欢迎信息？(bjchenxu)&lt;br /&gt;修改/etc/motd文件，往里面写入文本，就能使用户通过Telnet正确登录后，执行Shell之&lt;br /&gt;前得到相应的提示信息。&lt;br /&gt;motd就是“messages of the day”，也就是当日信息的意思。管理员可以往里面写一些&lt;br /&gt;需要注意的事项或通知等来提醒正式用户。&lt;br /&gt;&lt;br /&gt;1157 我下载了rcs5.7，用./configure &amp;&amp; make &amp;&amp; make install时报错如下：./conf.&lt;br /&gt;sh: testing permissions ... ./conf.sh: This command should not be run with su&lt;br /&gt;peruser permissions. 我是以root用户身份登录编译安装的，为什么会这样？(bjchenx&lt;br /&gt;u)&lt;br /&gt;有些软件确实因为考虑到安全等其它原因不能用root用户编译。这时只要用其它用户编译&lt;br /&gt;，到make install这步时，如果该软件安装在不属于编译时的用户的主目录下时，需要使&lt;br /&gt;用su命令转换为root用户再执行make install。&lt;br /&gt;&lt;br /&gt;1158 我在安装USBView时失败，具体情况如下： #rpm -ivh usbview-1.0-9.src.rpm wa&lt;br /&gt;rning:usbview-1.0-9.src.rpm:V3 DSAsignature:NOKEY,key IDab42a60e (bjchenxu)&lt;br /&gt;这行代码说明安装失败是因为你的系统上没有安装合适的钥匙来校验签名。要使该软件包&lt;br /&gt;通过校验，可以通过导入Red Hat的公匙来解决，具体的方式是在Shell下运行如下命令：&lt;br /&gt;#rpm -import /usr/share/rhn/RPM-GPG-KEY&lt;br /&gt;（注意大小写）&lt;br /&gt;&lt;br /&gt;1159 如何防止某个关键文件被修改？(bjchenxu)&lt;br /&gt;在Linux下，有些配置文件是不允许任何人（包括root）修改的。为了防止被误删除或修&lt;br /&gt;改，可以设定该文件的“不可修改位(immutable) ”。命令如下：&lt;br /&gt;# chattr +i /etc/fstab&lt;br /&gt;如果需要修改文件则采用下面的命令：&lt;br /&gt;# chattr -i /etc/fstab&lt;br /&gt;&lt;br /&gt;1160 怎样限制一个用户可以启动的进程数？(bjchenxu) &lt;br /&gt;先确定一下/etc/pam.d/login文件中下面一行的存在：&lt;br /&gt;session required /lib/security/pam_limits.so&lt;br /&gt;然后编辑/etc/security/limits.conf，在里面可以设置限制用户的进程数、CPU占用率和&lt;br /&gt;内存使用率等，如hard nproc 20就是指限制20个进程，具体可以看man。&lt;br /&gt;&lt;br /&gt;1161 如何限制Shell命令记录大小 ？(bjchenxu)&lt;br /&gt;默认情况下，bash会在文件$HOME/.bash_history中存放多达500条命令记录。有时根据具&lt;br /&gt;体的系统不同，默认记录条数不同。系统中每个用户的主目录下都有一个这样的文件。为&lt;br /&gt;了系统的安全，在此强烈建议用户限制该文件的大小。用户可以编辑/etc/profile文件，&lt;br /&gt;修改其中的选项如下：&lt;br /&gt;&lt;br /&gt;HISTFILESIZE=30 或 HISTSIZE=30&lt;br /&gt;这样就将记录的命令条数减少到30条。&lt;br /&gt;&lt;br /&gt;1162 我想将开机时显示的信息保留下来，以检查电脑出了问题的地方，请问怎么办？(b&lt;br /&gt;jchenxu)&lt;br /&gt;可输入下面的命令:&lt;br /&gt;#dmesg &gt; bootmessage&lt;br /&gt;该命令将把开机时显示的信息重定向输出到一个文件bootmessage中。&lt;br /&gt;&lt;br /&gt;1163 我想在注销时删除命令记录，请问怎么做？(bjchenxu)&lt;br /&gt;编辑/etc/skel/.bash_logout文件（没有就创建一个），增加如下行:&lt;br /&gt;rm -f $HOME/.bash_history&lt;br /&gt;这样，系统中的所有用户在注销时都会删除其命令记录。&lt;br /&gt;如果只需要针对某个特定用户，如root用户进行设置，则可只在该用户的主目录下修改$&lt;br /&gt;HOME/.bash_history文件，增加相同的一行即可。&lt;br /&gt;&lt;br /&gt;1164&lt;br /&gt;&lt;br /&gt;1165 如何使用ssh通道技术(bjchenxu)&lt;br /&gt;本文讨论所有机器均为Linux操作系统。&lt;br /&gt;比如说我的机器是A，中间服务器为B，目标服务器是C。&lt;br /&gt;从A可以ssh到B，从B可以ssh到C，但是A不能直接ssh到C。&lt;br /&gt;现在展示利用ssh通道技术从A直接传输文件到C。&lt;br /&gt;1. ssh -L1234:C:22 root@B&lt;br /&gt;input B's password&lt;br /&gt;2. scp -P1234 filename root@localhost:&lt;br /&gt;input C's password&lt;br /&gt;&lt;br /&gt;1166 使用rpm命令时没有任何响应，如何解决 (初学摄影)&lt;br /&gt;rm -rf /var/lib/rpm/__db.*&lt;br /&gt;&lt;br /&gt;1167 向登陆到同一台服务器上的所有用户发一条信息(bjchenxu)&lt;br /&gt;1)输入wall并回车&lt;br /&gt;2)输入要发送的消息&lt;br /&gt;3)结束时按“Control-d”键,消息即在用户的控制窗口中显示&lt;br /&gt;&lt;br /&gt;1168 输入短消息到单个用户(bjchenxu)&lt;br /&gt;1)输入write username，当用户名出现在多个终端时，在用户名后可加tty,以表示在哪个&lt;br /&gt;tty下的用户。&lt;br /&gt;2)输入要发送的消息。&lt;br /&gt;3)结束时按“Control-d”键,消息即在用户的控制窗口中显示。&lt;br /&gt;4）对于接收消息方，可以设定是否允许别人送消息给你。&lt;br /&gt;指令格式为：mesg n[y]&lt;br /&gt;%write liuxhello! Everybody, I’llcome.&lt;br /&gt;%&lt;br /&gt;用户控制窗口中显示的消息:Message from liux on ttyp1 at 10:00…hello! Everybod&lt;br /&gt;y, I’llcome.EOF&lt;br /&gt;当使用CDE或OpenWindows等窗口系统时，每个窗口被看成是一次单独的登录；如果用户登&lt;br /&gt;录次数超过一次则消息直接发送到控制窗口。&lt;br /&gt;&lt;br /&gt;1169 发送文件中的消息到单个用户(bjchenxu)&lt;br /&gt;如果有一个较长的消息要发送给几个用户，用文件方式：&lt;br /&gt;1)创建要发送的消息文本的文件filename.&lt;br /&gt;2)输入write username&lt;br /&gt;% cat &gt;messagehello! Everybody, I’llcome.&lt;br /&gt;% write liux&lt;br /&gt;% 用户在一个以上窗口登录，消息显示在控制窗口中Message from liux on ttyp1 at 1&lt;br /&gt;0:00…hello! Everybody, I’llcome.EOF&lt;br /&gt;&lt;br /&gt;1170 向远程机器上的所有用户发送消息(bjchenxu)&lt;br /&gt;使用rwall(向所有人远程写)命令同时发送消息到网络中的所有用户。&lt;br /&gt;rwall hostname file&lt;br /&gt;当使用CDE或OpenWindows等窗口系统时,每个窗口被看成是一次单个的登录;&lt;br /&gt;如果用户登录次数超过一次则消息直接发送到控制窗口。&lt;br /&gt;&lt;br /&gt;1171 向网络中的所有用户发送消息(bjchenxu)&lt;br /&gt;发送消息到网络中的所有用户&lt;br /&gt;1)输入rwall -n netgroup并回车&lt;br /&gt;2)输入要发送的消息&lt;br /&gt;3)结束时按“Control-d”键，消息即在系统每个用户的控制窗口中显示，下面是系统管&lt;br /&gt;理员发消息到网络组Eng每个用户的例子：&lt;br /&gt;% rwall -n EngSystem will be rebooted at 11:00.(Control-d)&lt;br /&gt;%&lt;br /&gt;用户控制窗口中的消息:Broadcast message from root on console…System will be r&lt;br /&gt;ebooted at 11:00.EOF&lt;br /&gt;注意：也可以通过rwall hostname（主机名）命令到系统的所有用户。&lt;br /&gt;&lt;br /&gt;1172 我需要编译内核，内核源码在哪里？&lt;br /&gt;目前大多发行版默认都不再附带源码，需要的话可以自行下载，&lt;br /&gt;可以去 www.kernel.org 下载一份你喜欢的，校内有kernel镜像。&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;----------------------------网络相关篇--------------------------&lt;br /&gt;&lt;br /&gt;2001 让apache的默认字符集变为中文(bjchenxu)&lt;br /&gt;vi httpd.conf，找到 AddDefaultCharset ISO-8859-1 一行&lt;br /&gt;apache版本如果是1.*，改为 AddDefaultCharset GB2312&lt;br /&gt;如果是2.0.1-2.0.52，改为 AddDefaultCharset off&lt;br /&gt;然后运行/etc/init.d/ httpd restart重启apache即可生效。&lt;br /&gt;注意：对于2.0.53以上版本，不需要修改任何配置，即可支持中文。&lt;br /&gt;&lt;br /&gt;2002 更改ip和MAC地址&lt;br /&gt;改IP：&lt;br /&gt;ifconfig eth0 新ip&lt;br /&gt;然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0，修改ip&lt;br /&gt;&lt;br /&gt;改MAC:&lt;br /&gt;ifconfig eth0 down&lt;br /&gt;ifconfig eth0 hw ether 00:06:61:6A:7B:8B&lt;br /&gt;ifconfig eth0 up&lt;br /&gt;如需每次开机自动更改，可把以上三句命令添加到/etc/init.d/network最后&lt;br /&gt;&lt;br /&gt;2003 从Linux上远程显示Windows桌面(lnx3000)&lt;br /&gt;安装rdesktop&lt;br /&gt;&lt;br /&gt;2004 手动添加默认网关(bjchenxu)&lt;br /&gt;以root用户，执行: route add default gw 网关的IP&lt;br /&gt;&lt;br /&gt;1 vi /etc/sysconfig/network-scripts/ifcfg-eth0 更改 GATEWAY&lt;br /&gt;2 /etc/init.d/network restart&lt;br /&gt;&lt;br /&gt;2005 Linux下使用msn和QQ&lt;br /&gt;MSN:可下载安装gaim 或 aMSN&lt;br /&gt;QQ :安装LumaQQ 或 eva，eva建议在KDE下使用。&lt;br /&gt;&lt;br /&gt;2006 查出22端口现在运行什么程序(bjchenxu)&lt;br /&gt;lsof -i&lt;br /&gt;&lt;br /&gt;2007 查看本机的IP，gateway, dns(bjchenxu)&lt;br /&gt;IP：&lt;br /&gt;以root用户登录，执行ifconfig。其中eth0是第一块网卡，lo是默认的设备&lt;br /&gt;Gateway:&lt;br /&gt;以root用户登录，执行netstat -rn，以0.0.0.0开头的一行的Gateway即为默认网关&lt;br /&gt;也可以查看/etc/sysconfig/network文件，里面有指定的地址！&lt;br /&gt;DNS：&lt;br /&gt;more /etc/resolv.conf，内容指定如下：&lt;br /&gt;nameserver 202.112.144.30&lt;br /&gt;nameserver 202.112.144.65&lt;br /&gt;&lt;br /&gt;2008 Redhat命令行下改变ping 的TTL值(cgweb，lnx)&lt;br /&gt;方法1(重启后有效)：&lt;br /&gt;#sysctl -w net.ipv4.ip_default_ttl=N&lt;br /&gt;(N=0~255),若N&gt;255,则ttl=0&lt;br /&gt;方法2(重启后无效)：&lt;br /&gt;#echo N(N为0～255) &gt; /proc/sys/net/ipv4/ip_default_ttl&lt;br /&gt;&lt;br /&gt;2009 开启LINUX的IP转发(houaq)&lt;br /&gt;编辑/etc/sysctl.conf, 例如，将&lt;br /&gt;net.ipv4.ip_forward = 0&lt;br /&gt;变为&lt;br /&gt;net.ipv4.ip_forward = 1&lt;br /&gt;重启后生效，用sysctl -a查看可知&lt;br /&gt;&lt;br /&gt;2010 mount局域网上其他windows机器共的目录(bjchenxu)&lt;br /&gt;安装samba&lt;br /&gt;mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom&lt;br /&gt;&lt;br /&gt;2011 允许｜禁止root通过SSH登陆(Fun-FreeBSD)&lt;br /&gt;修改sshd_config:PermitRootLogin no|yes&lt;br /&gt;&lt;br /&gt;2012 让root直接telnet登陆(bjchenxu，platinum)&lt;br /&gt;方法1：&lt;br /&gt;编辑/etc/pam.d/login，去掉&lt;br /&gt;auth required /lib/security/pam_securetty.so 这句话&lt;br /&gt;方法2：&lt;br /&gt;vi /etc/securetty&lt;br /&gt;添加&lt;br /&gt;pts/0&lt;br /&gt;pts/1&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;2013&lt;br /&gt;&lt;br /&gt;2014 让linux自动同步时间(shunz)&lt;br /&gt;vi /etc/crontab&lt;br /&gt;加上一句：&lt;br /&gt;00 0 1 * * root rdate -s time.nist.gov&lt;br /&gt;&lt;br /&gt;2015 Linux的网上资源&lt;br /&gt;参考精华区--信息资源&lt;br /&gt;&lt;br /&gt;2016 改变sshd的端口(bjchenx)&lt;br /&gt;在/etc/ssh/sshd_config中加入一行：Port 2222，/etc/init.d/sshd restart重启守护&lt;br /&gt;进程&lt;br /&gt;&lt;br /&gt;2017 改变telnet的端口(bjchenxu)&lt;br /&gt;将/etc/services文件中telnet对应的端口号21改为你想要的值，/etc/init.d/xinetd r&lt;br /&gt;estart重启守护进程&lt;br /&gt;&lt;br /&gt;2018 终端模式有问题(sakulagi)&lt;br /&gt;export TERM=vt100&lt;br /&gt;&lt;br /&gt;2019 模仿超级终端，LINUX里什么程序连接路由器和交换机(alstone)&lt;br /&gt;minicom&lt;br /&gt;&lt;br /&gt;2020 ssh上来能不能不自动断线(wind521，双眼皮的猪)&lt;br /&gt;修改自己HOME目录下的.bash_profile文件，加上&lt;br /&gt;export TMOUT=1000000 (以秒为单位)&lt;br /&gt;然后运行source .bash_profile&lt;br /&gt;&lt;br /&gt;2021 用什么工具做入侵检测(bjchenxu)&lt;br /&gt;snort&lt;br /&gt;&lt;br /&gt;2022 Linux下检测程序内存泄漏的工具(bjchenxu)&lt;br /&gt;cchecker或是efence库都可以&lt;br /&gt;&lt;br /&gt;2023 linux下如何监视所有通过本机网卡的数据(bjchenxu)&lt;br /&gt;tcpdump或者iptraf&lt;br /&gt;&lt;br /&gt;2024 为什么root执行好多命令都说command not found(bjchenxu)&lt;br /&gt;你是telnet上来，然后su成root的吧，改改你的su命令格式，应该是su - root&lt;br /&gt;&lt;br /&gt;2025 关闭用户的POP3权限(tiansgx)&lt;br /&gt;把POP3的端口关了就可以了。 在文件/etc/services中找到这一行 pop-3 110/tcp 把这&lt;br /&gt;一行前加个'#',把它注释掉就可以了。&lt;br /&gt;&lt;br /&gt;2026 linux下播放flash动画&lt;br /&gt;下载 ftp:// ftp.bjtu.edu.cn/UNIX/multimedia/flashplayer/&lt;br /&gt;install_flash_player_7_linux.tar.gz&lt;br /&gt;$tar zxf install_flash_player_7_linux.tar.gz&lt;br /&gt;$cd install_flash_player_7_linux&lt;br /&gt;$./flashplayer-installer&lt;br /&gt;根据自己浏览器安装的路径设置，再用浏览器打开flash文件即可。&lt;br /&gt;&lt;br /&gt;2027&lt;br /&gt;&lt;br /&gt;2028 服务器怎么不让telnet(知秋一叶)&lt;br /&gt;服务器上必须启动telnet服务 &amp;&amp; 服务器的防火墙允许telnet。&lt;br /&gt;&lt;br /&gt;2029 防止任何人使用su命令成为root(xiaohu0)&lt;br /&gt;1.vi /etc/pam.d/su&lt;br /&gt;auth sufficient /lib/security/pam_rootok.so debug&lt;br /&gt;auth required /lib/security/pam_wheel.so group=wheel&lt;br /&gt;2.在/etc/pam. d/su配置文件中定义了wheel组.&lt;br /&gt;&lt;br /&gt;2030 如何使lynx浏览器能够浏览中文网页(Ghost_Vale)&lt;br /&gt;浏览简体中文网页就的修改如下设置&lt;br /&gt;Save options to disk: [X]&lt;br /&gt;Display and Character Set&lt;br /&gt;Display character set : [Chinese________________________]&lt;br /&gt;Assumed document character set(!): [iso-8859-1______]&lt;br /&gt;CJK mode (!) : [ON_]&lt;br /&gt;然后移到最下面的 Accept Changes 按下 Enter 保存就可以了&lt;br /&gt;当然你的系统要支持简体中文才可以&lt;br /&gt;&lt;br /&gt;2031 网卡激活了，却上不了网，怎么办？(Slock，双眼皮的猪)&lt;br /&gt;traceroute，看看到底是在那一块被阻住的。&lt;br /&gt;1.ping自己&lt;br /&gt;2.ping网关&lt;br /&gt;3.ping DNS&lt;br /&gt;4.traceroute DNS&lt;br /&gt;如果一切正常&lt;br /&gt;nslookup www.bjtu.edu.cn&lt;br /&gt;ping sina的address&lt;br /&gt;traceroute sina的address&lt;br /&gt;基本上就可以知道结果了&lt;br /&gt;&lt;br /&gt;2032 在redhat9下配samba,win2000能访问，win98不能访问？(squall2003)&lt;br /&gt;如果是wind98必需修改注册表：&lt;br /&gt;HKEY_LOCAL_MACHINE/system/correntcontrolset/services/Vxd/VNETSUP 下建个D值：&lt;br /&gt;EnablePlainTextpasswd，键值1&lt;br /&gt;&lt;br /&gt;2033 如何得到网卡的MAC地址(bjchenxu，hutuworm)&lt;br /&gt;arp -a | awk '{print $4}'&lt;br /&gt;ifconfig eth0 | head -1 | awk '{print $5}'&lt;br /&gt;&lt;br /&gt;2034 如何得到网卡的IP地址(mb)&lt;br /&gt;ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'&lt;br /&gt;&lt;br /&gt;2035 如何修改Linux机器所在的工作组(hutuworm)&lt;br /&gt;vi /etc/samba/smb.conf，修改”workgroup = "一行，将组名写在后面。&lt;br /&gt;&lt;br /&gt;2036 一块网卡如何绑定两个ip(linuxloveu)&lt;br /&gt;#cd /etc/sysconfig/network-scripts&lt;br /&gt;#cp ifcfg-eth0 ifcfg-eth0:1&lt;br /&gt;#vi ifcfg-eth0:1&lt;br /&gt;修改IP和设备名&lt;br /&gt;Debian下一个网卡绑定多个ip的方法(NetDC)&lt;br /&gt;修改/etc/network/interfaces&lt;br /&gt;auto eth0&lt;br /&gt;iface eth0 inet static&lt;br /&gt;address 172.16.3.123&lt;br /&gt;netmask 255.255.255.0&lt;br /&gt;network 172.16.3.0&lt;br /&gt;broadcast 172.16.3.255&lt;br /&gt;gateway 172.16.3.1&lt;br /&gt;&lt;br /&gt;auto eth0:1&lt;br /&gt;iface eth0:1 inet static&lt;br /&gt;address 10.16.3.123&lt;br /&gt;netmask 255.255.0.0&lt;br /&gt;network 10.16.0.0&lt;br /&gt;broadcast 10.16.255.255&lt;br /&gt;修改/etc/network/ifstate&lt;br /&gt;lo=lo&lt;br /&gt;eth0=eth0&lt;br /&gt;eth0:1=eth0:1&lt;br /&gt;然后/etc/init.d/networking restart就可以了。&lt;br /&gt;一个网卡绑定多ip另一法(hotbox)&lt;br /&gt;在/etc/sysconfig/network-scripts/下创建一个文件：ifcfg-ethX-rangeX （"X"为网卡&lt;br /&gt;号）&lt;br /&gt;文件内容：&lt;br /&gt;IPADDR_START=&lt;br /&gt;IPADDR_END=&lt;br /&gt;CLONENUM=0&lt;br /&gt;可以有256个ip&lt;br /&gt;&lt;br /&gt;2037 一个ip如何绑定两块网卡(hutuworm)&lt;br /&gt;假设192.168.0.88是ip,192.168.0.1是网关:&lt;br /&gt;/sbin/modprobe bonding miimon=100 mode=1&lt;br /&gt;/sbin/ifdown eth0&lt;br /&gt;/sbin/ifdown eth1&lt;br /&gt;/sbin/ifconfig bond0 192.168.0.88&lt;br /&gt;/sbin/ifenslave bond0 eth0 eth1&lt;br /&gt;/sbin/route add default gw 192.168.0.1&lt;br /&gt;&lt;br /&gt;2038&lt;br /&gt;&lt;br /&gt;2039 linux下清空arp表的命令(NetDC)&lt;br /&gt;#arp -d -a(适用于bsd)&lt;br /&gt;for HOST in `arp | sed '/Address/d' | awk '{ print $1}'` ; do arp -d $HOST; done&lt;br /&gt;&lt;br /&gt;2040 使用ntp协议从服务器同步时间(NetDC)&lt;br /&gt;ntpdate NTP-SERVER 例：ntpdate 172.16.2.1&lt;br /&gt;&lt;br /&gt;2041 host命令的用法(bjchenxu)&lt;br /&gt;host能够用来查询域名，它还能得到更多的信息&lt;br /&gt;host -t mx example.com可以查询出example.com的MX记录，以及处理mail的host的名字&lt;br /&gt;host -l example.com会返回所有注册在example.com下的域名&lt;br /&gt;host -a example.com则会显示这个主机的所有域名信息.&lt;br /&gt;&lt;br /&gt;2042 立刻让LINUX支持NAT(platinum)&lt;br /&gt;echo 1 &gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;iptables -t nat -I POSTROUTING -j MASQUERADE&lt;br /&gt;&lt;br /&gt;2043&lt;br /&gt;&lt;br /&gt;2044 在ethX设备上，使LINUX支持网络广播功能（默认是不支持的）(platinum)&lt;br /&gt;ip route add 255.255.255.255 dev ethX&lt;br /&gt;&lt;br /&gt;2045 路由设置手册(NetDC)&lt;br /&gt;查看路由信息：&lt;br /&gt;netstat -rn&lt;br /&gt;route -n&lt;br /&gt;手工增加一条路由：&lt;br /&gt;route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1&lt;br /&gt;手工删除一条路由：&lt;br /&gt;route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1&lt;br /&gt;好了，下面到了重要的了，让系统启动的时候自动启用路由设置。&lt;br /&gt;在redhat中添加一条路由，修改文件/etc/sysconfig/static-routes&lt;br /&gt;any net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1&lt;br /&gt;在debian中添加一条路由，&lt;br /&gt;&lt;br /&gt;方法一：修改/etc/network/interfaces&lt;br /&gt;代码:&lt;br /&gt;auto eth0&lt;br /&gt;iface eth0 inet static&lt;br /&gt;address 172.16.3.222&lt;br /&gt;netmask 255.255.0.0&lt;br /&gt;network 172.16.0.0&lt;br /&gt;broadcast 172.16.255.255&lt;br /&gt;gateway 172.16.2.1&lt;br /&gt;up route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1&lt;br /&gt;down route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1&lt;br /&gt;方法二：在/etc/network/if-up.d目录下建立一个简单的脚本文件，如static-route$（&lt;br /&gt;记得以$符号结尾，要不有个run-parts会跑出来告诉你一些东西）脚本最简单的就好啦，&lt;br /&gt;如：&lt;br /&gt;代码:&lt;br /&gt;#!/bin/bash&lt;br /&gt;route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1&lt;br /&gt;嘿嘿，你也可以猜到/etc/network/目录下的其他目录的作用了吧。&lt;br /&gt;发觉在debian中这个route的设置其实只是它的那些配置文件的一个比较简单的应用而已&lt;br /&gt;，你完全可以做更复杂的应用。&lt;br /&gt;&lt;br /&gt;2046 利用ssh复制文件(platinum)&lt;br /&gt;假如A、B都有SSH服务，现在在A的SSH里&lt;br /&gt;1、从A复制B（推过去）&lt;br /&gt;scp -rp /path/filename username@remoteIP:/path&lt;br /&gt;2、从B复制到A（拉过来）&lt;br /&gt;scp -rp username@remoteIP:/path/filename /path&lt;br /&gt;如果其中一个不是LINUX系统，可以在WINDOWS上用SecureFX软件&lt;br /&gt;&lt;br /&gt;2047 samba3.0中文显示问题的解决办法(linuxzfp, jiadingjun)&lt;br /&gt;在samba 3.0的配置文件中(/etc/samba/smb.conf)的[global]中加入下面两句：&lt;br /&gt;unix charset=cp936&lt;br /&gt;重启服务&lt;br /&gt;service smb restart&lt;br /&gt;&lt;br /&gt;2048 临时修改网卡MAC地址的方法&lt;br /&gt;关闭网卡：/sbin/ifconfig eth0 down&lt;br /&gt;然后改地址：/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE&lt;br /&gt;然后启动网卡:/sbin/ifconfig eth0 up&lt;br /&gt;&lt;br /&gt;2049 conntrack 表满的处理方法(cgweb)&lt;br /&gt;前段时间配置的iptables+squid做的proxy server ,一直工作正常。今天我上控制台上发现&lt;br /&gt;Jun 18 12:43:36 red-hat kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Jun 18 12:49:51 red-hat kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Jun 18 12:50:57 red-hat kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;Jun 18 12:57:38 red-hat kernel: ip_conntrack: table full, dropping packet.&lt;br /&gt;&lt;br /&gt;IP_conntrack表示连接跟踪数据库(conntrack database)，代表NAT机器跟踪连接的数目&lt;br /&gt;，连接跟踪表能容纳多少记录是被一个变量控制的，它可由内核中的ip- &lt;br /&gt;sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间，时间一长就会把默&lt;br /&gt;认的空间填满，那么默认空间时多少？我以redhat为例在内存为64MB的机器上时4096,内&lt;br /&gt;存为128MB是 8192,内存为256MB是16376，那末就能在/proc/sys/net/ipv4/ip_conntrac&lt;br /&gt;k_max里查看、设置。&lt;br /&gt;例如：增加到81920，可以用以下命令:&lt;br /&gt;echo "81920" &gt; /proc/sys/net/ipv4/ip_conntrack_max&lt;br /&gt;&lt;br /&gt;那样设置是不会保存的，要重启后保存可以在/etc/sysctl.conf中加：&lt;br /&gt;net.ipv4.ip_conntract_max =81920&lt;br /&gt;按照此方法改变后一切正常，要是在满了可以加大其值.&lt;br /&gt;&lt;br /&gt;2050 Linux下怎么使用BT(atz0001)&lt;br /&gt;BitStorm  http://www.linuxfans.org/&lt;br /&gt;azureus，http://azureus.sourceforge.net/&lt;br /&gt;&lt;br /&gt;2051 Linux下查看光纤网卡的工作模式(sakulagi)&lt;br /&gt;主板上PCI—X插槽中插入一块64位的光纤网卡，在LINUX9.0的环境下，要知道它是否工作&lt;br /&gt;在64位模式下，可使用getconf WORD_BIT&lt;br /&gt;&lt;br /&gt;2052 在线更新RHEL的另类途径&lt;br /&gt;1.安装相应的APT包：&lt;br /&gt;2.在线更新&lt;br /&gt;apt-get update&lt;br /&gt;apt-get upgrade&lt;br /&gt;&lt;br /&gt;2053 SOCKS5启动后一段时间停止工作。用命令ps auxw | grep socks5查看，发现有很多&lt;br /&gt;SOCKS defunct进程，为什么(bjchenxu)&lt;br /&gt;主要是打补丁的问题。如果socks5-tar.gz是没打过补丁的版本，必须下一个带补丁的v1&lt;br /&gt;.0-r11版本，重新安装、运行问题就可以解决了。&lt;br /&gt;&lt;br /&gt;2054 在VMware WorkStation 4.0.5中安装Debian 3.0时，提示找不到硬盘，需要SCSI的&lt;br /&gt;驱动。但是我用的是IDE硬盘，请问该怎么办？ (bjchenxu)&lt;br /&gt;由于VMware将用户划分的硬盘空间虚拟成SCSI硬盘，而Debian安装盘中没有对应的驱动，&lt;br /&gt;而安装其它Linux版本时，有的在一开始会加载SCSI驱动，所以没有这个问题。用户可以&lt;br /&gt;修改VMware的配置，将其改为模拟IDE硬盘就可以了。&lt;br /&gt;&lt;br /&gt;2055 如何让Linux网关后面的WIN32下的用户直接点击 FTP连接下载？(platinum)&lt;br /&gt;modprobe ip_nat_ ftp&lt;br /&gt;&lt;br /&gt;2056 请问用户的IP是动态的，如何在Squid中限定在同一时间内同一账户在线的数量？(&lt;br /&gt;bjchenxu)&lt;br /&gt;例如限制单个用户只能打开12个 HTTP连接，采用下面的方法：&lt;br /&gt;acl all src 0.0.0.0/0.0.0.0&lt;br /&gt;acl limit maxconn 12&lt;br /&gt;acl localnet src 192.168.0.0/24&lt;br /&gt;http_access deny localnet maxconn&lt;br /&gt;http_access allow localnet&lt;br /&gt;http_access deny all&lt;br /&gt;&lt;br /&gt;2057 如果我用Squid代理的代理服务器在192.168.1.0这个网段里，例如它的IP是192.16&lt;br /&gt;8.1.1，我有一些客户端在192.168.2.0这个网段内，怎样设置才能通过这个代理服务器出&lt;br /&gt;去？(bjchenxu)&lt;br /&gt;如果不用透明代理，直接在浏览器的代理选项里设置就可以了。否则首先是在代理服务器&lt;br /&gt;的网卡上再挂一个IP为192.168.2.1，添加相应的路由，再修改Squid的squid.conf文件里&lt;br /&gt;的监听地址和端口等，最后在192.168.2.0网段的客户端设置其网关为 &lt;br /&gt;192.168.2.1，再直接在浏览器的代理选项里设置一下就可以了。&lt;br /&gt;&lt;br /&gt;2058 如何使用netrc文件进行自动 FTP？(bjchenxu)&lt;br /&gt;在自己的home目录下建立一个权限为600，后缀名为.netrc的文件，内容如下：&lt;br /&gt;machine 172.168.15.1 login admin password admin&lt;br /&gt;这样用户以后每次登录 FTP服务器172.168.15.1的时候，系统都会帮用户以用户名admin、&lt;br /&gt;密码admin登录。用户利用这个特征可以实现自动 FTP。例如用户想要每天6:00到172.168&lt;br /&gt;.15.1机器上面获得/admin目录下的文件admin.txt，可以按如下方法做。&lt;br /&gt;建立一个文件 ftp_cmd，内容如下：&lt;br /&gt;cd admin&lt;br /&gt;get amin.txt&lt;br /&gt;bye&lt;br /&gt;然后使用crontab -e设置定时任务：&lt;br /&gt;0 6 * * * ftp 172.168.15.1 &lt; ftp_cmd&lt;br /&gt;&lt;br /&gt;2059 怎样得到ipchains的日志？(bjchenxu)&lt;br /&gt;用户设置规则的时候必须加入-l参数才会在/etc/messages里面做记录。不过建议还是不&lt;br /&gt;加的好，不然用户的/etc/messages会变得非常大。&lt;br /&gt;&lt;br /&gt;2060 如何不显示其它用户的消息？(bjchenxu)&lt;br /&gt;用户可以使用mesg n来禁止别人给自己发送信息，其实就是禁止别人往自己的终端上面的&lt;br /&gt;写的权限。当别人试图再使用write给自己发送信息时，发送者将会看见提示如下：&lt;br /&gt;write: user has messages disabled on pts/n&lt;br /&gt;&lt;br /&gt;2061 minicom彩色显示(双眼皮的猪)&lt;br /&gt;minicom -s进行serial port配置,然后配置好以后,&lt;br /&gt;minicom -o -c on&lt;br /&gt;-o表示不初始化&lt;br /&gt;-c on表示color on&lt;br /&gt;&lt;br /&gt;2062 启用SELinux的Apache的配置文件 httpd.conf里面修改DocumentRoot无用或者出现4&lt;br /&gt;03 Forbidden错误(arbor)&lt;br /&gt;# chcon -u system_u -t httpd_sys_content_t -R website目录&lt;br /&gt;&lt;br /&gt;2063 apache2 的log文件位置如何自定义目录(tomi)&lt;br /&gt;编辑 httpd.conf里的&lt;br /&gt;ErrorLog /var/log/ http/error_log &lt;== 这是管errorlog的&lt;br /&gt;CustomLog /var/log/ http/access_log common &lt;== 这是管accesslog的&lt;br /&gt;&lt;br /&gt;2064 更改eth0是否混杂模式(wwy)&lt;br /&gt;网卡eth0改成混杂模式：&lt;br /&gt;ifconfig eth0 promisc&lt;br /&gt;关闭混杂模式：&lt;br /&gt;ifconfig eth0 -promisc&lt;br /&gt;&lt;br /&gt;2065 字符界面下的 ftp中，下载整个文件夹(bjchenxu)&lt;br /&gt;1. l ftp IP&lt;br /&gt;2. &gt; user username&lt;br /&gt;password&lt;br /&gt;3. &gt; mirror -c --parallel=number remotedir localdir&lt;br /&gt;3a. &gt; help mirror&lt;br /&gt;&lt;br /&gt;2066 如何让ssh只允许指定的用户登录(xinyv，好好先生，wolfg，我爱钓鱼)&lt;br /&gt;方法1：在/etc/pam.d/sshd文件中加入&lt;br /&gt;auth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=&lt;br /&gt;fail&lt;br /&gt;然后在/etc下建立sshusers文件,编辑这个文件,加入你允许使用ssh服务的用户名,重新起&lt;br /&gt;动sshd服务即可。&lt;br /&gt;方法2：pam规则也可以写成deny的&lt;br /&gt;auth required pam_listfile.so item=user sense=deny file=/etc/sshusers onerr=s&lt;br /&gt;ucceed&lt;br /&gt;方法3：在sshd_config中设置AllowUsers，格式如&lt;br /&gt;AllowUsers a b c&lt;br /&gt;重启sshd服务，则只有a/b/c3个用户可以登陆。&lt;br /&gt;&lt;br /&gt;2067 在Linux下如何绑定IP地址和硬件地址(bjchenxu)&lt;br /&gt;可以编辑一个地址对应文件，里面记录了IP地址和硬件地址的对应关系，然后执行“arp&lt;br /&gt; –f 地址对应文件”。如果没有指定地址对应文件，则通常情况下一默认文件/etc/eth&lt;br /&gt;ers为准。地址对应文件的格式如下：&lt;br /&gt;192.168.0.1 00:0D:61:27:58:93&lt;br /&gt;192.168.0.2 00:40:F4:2A:2E:5C&lt;br /&gt;192.168.0.3 00:0A:EB:5E:BA:8E&lt;br /&gt;&lt;br /&gt;2068 已知网络中一个机器的硬件地址，如何知道它所对应的IP地址(bjchenxu)&lt;br /&gt;在Linux下，假定要查“00:0A:EB:27:17:B9”这样一个硬件地址所对应的IP地址，可以使&lt;br /&gt;用以下命令：&lt;br /&gt;# cat /proc/net/arp |grep 00:0A:EB:27:17:B9&lt;br /&gt;192.168.2.54 0x1 0x6 00:0A:EB:27:17:B9 *eth2&lt;br /&gt;另外，还可以用“arp -a”命令查询：&lt;br /&gt;# arp –a|grep 00:0A:EB:27:17:B9&lt;br /&gt;（192.168.2.54）at 00:0A:EB:27:17:B9[ether] on eth2&lt;br /&gt;&lt;br /&gt;2069 基于Apache的 HTTPD或Sendmail服务在启动时被挂起了，如何解决此问题(bjchenxu)&lt;br /&gt;遇到此类问题，请确认/etc/hosts文件中是否包含如下一行：&lt;br /&gt;127.0.0.1 localhost.localdomain localhost&lt;br /&gt;127.0.0.1 是网络的回路地址。&lt;br /&gt;&lt;br /&gt;2070 如何使Linux系统对ping不反应(bjchenxu)&lt;br /&gt;要使Linux对ping没反应，也就是使Linux系统忽略I CMP包。用如下命令可以达到此目的：&lt;br /&gt;# echo 1 &gt; /proc/sys/net/ipv4/icmp-echo-ignore-all&lt;br /&gt;若想恢复，可用如下命令：&lt;br /&gt;# echo 0 &gt; /proc/sys/net/ipv4/icmp-echo-ignore-all&lt;br /&gt;&lt;br /&gt;----------------------------程序开发篇--------------------------&lt;br /&gt;&lt;br /&gt;3001 linux下调试core文件(bjchenxu)&lt;br /&gt;gdb&lt;br /&gt;:出错产生core dump的可执行程序。&lt;br /&gt;:core dump的文件名，缺省是“core”&lt;br /&gt;&lt;br /&gt;3002 gcc abc.c得到的a.out不能运行(bjchenxu)&lt;br /&gt;./a.out&lt;br /&gt;&lt;br /&gt;3003 c++ 编译时为什么出错信息说cout没定义(bjchenxu)&lt;br /&gt;include头文件完后加入 using namespace std;&lt;br /&gt;&lt;br /&gt;3004 新编译生成的gcc ，使用的标准连接库都在/usr/local/lib 下了，但使用的缺省的&lt;br /&gt;连接路径是 /usr/lib 怎样添加？（除了在每次编译时 增加 -L /usr/local/lib 以外)&lt;br /&gt;(sakulagi, hutuworm)&lt;br /&gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib&lt;br /&gt;写到~/.bash_profile里面。&lt;br /&gt;增加一种简便办法：&lt;br /&gt;将/usr/local/lib加入/etc/ld.so.conf，然后运行一次ldconfig&lt;br /&gt;&lt;br /&gt;3005 RH9下GCC的安装(一起走过的日子，hutuworm)&lt;br /&gt;三种方法选一：&lt;br /&gt;(1)利用CD上rpm安装&lt;br /&gt;CD-1:compat-gcc-7.3-2.96.118.i386.rpm&lt;br /&gt;CD-1:compat-gcc-c++-7.3-2.96.118.i386.rpm&lt;br /&gt;CD-1:libgcc-3.2.2-5.i386.rpm&lt;br /&gt;CD-2:compat-gcc-g77-7.3-2.96.118.i386.rpm&lt;br /&gt;CD-2:compat-gcc-java-7.3-2.96.118.i386.rpm&lt;br /&gt;CD-2:compat-gcc-objc-7.3-2.96.118.i386.rpm&lt;br /&gt;CD-2:gcc-3.2.2-5.i386.rpm&lt;br /&gt;CD-2:gcc-c++-3.2.2-5.i386.rpm&lt;br /&gt;CD-2:gcc-g77-3.2.2-5.i386.rpm&lt;br /&gt;CD-2:gcc-gnat-3.2.2-5.i386.rpm&lt;br /&gt;CD-2:gcc-java-3.2.2-5.i386.rpm&lt;br /&gt;CD-2:gcc-objc-3.2.2-5.i386.rpm&lt;br /&gt;比如碰到系统提示：&lt;br /&gt;warning : gcc-3.2.2-5.i386.rpm : V3 DSA signature :MOKEY key ID db42a60e&lt;br /&gt;error : Failed dependencies :&lt;br /&gt;binutils &gt;=2.13.90.0.18-9 is needed by gcc-3.2.2-5&lt;br /&gt;glibc-devel &gt;=2.3.2-11.9 is needed by gcc-3.2.2-5...&lt;br /&gt;就先安裝glibc-devel包，依此类推&lt;br /&gt;(2)更好的方法就是在X-window下选“主菜单”──&gt;“系统设置”──&gt;“添加/删除应用&lt;br /&gt;程序”──&gt;“开发工具”中的gcc并安装它&lt;br /&gt;(3) up2date gcc便可自动解决dependency问题&lt;br /&gt;&lt;br /&gt;3006 shell脚本为何无法运行(GOD_Father)&lt;br /&gt;第一，脚本权限要为可执行 #chmod +x test.sh&lt;br /&gt;第二，脚本所在的目录在环境变量PATH中，或者直接执行 #./test.sh&lt;br /&gt;&lt;br /&gt;3007 查看某个文件被哪些进程在读写(bjweiqiong)&lt;br /&gt;lsof 文件名&lt;br /&gt;&lt;br /&gt;3008 查看某个进程打开了哪些文件(bjweiqiong)&lt;br /&gt;lsof –c 进程名&lt;br /&gt;lsof –p 进程号&lt;br /&gt;&lt;br /&gt;3009 lsof是什么意思(bjweiqiong)&lt;br /&gt;list open files&lt;br /&gt;&lt;br /&gt;3010 lsof用法小全(bjweiqiong)&lt;br /&gt;lsof abc.txt 显示开启文件abc.txt的进程&lt;br /&gt;lsof -i :22 知道22端口现在运行什么程序&lt;br /&gt;lsof -c nsd 显示nsd进程现在打开的文件&lt;br /&gt;lsof -g gid 显示归属gid的进程情况&lt;br /&gt;lsof +d /usr/local/ 显示目录下被进程开启的文件&lt;br /&gt;lsof +D /usr/local/ 同上，但是会搜索目录下的目录，时间较长&lt;br /&gt;lsof -d 4 显示使用fd为4的进程&lt;br /&gt;lsof -i 用以显示符合条件的进程情况&lt;br /&gt;语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]&lt;br /&gt;46 --&gt; IPv4 or IPv6&lt;br /&gt;protocol --&gt; TCP or UDP&lt;br /&gt;hostname --&gt; Internet host name&lt;br /&gt;hostaddr --&gt; IPv4位置&lt;br /&gt;service --&gt; /etc/service中的 service name (可以不只一個)&lt;br /&gt;port --&gt; 埠號 (可以不只一個)&lt;br /&gt;例子: TCP:25 - TCP and port 25&lt;br /&gt;@1.2.3.4 - Internet IPv4 host address 1.2.3.4&lt;br /&gt;tcp@ohaha.ks.edu.tw: ftp - TCP protocol host:ohaha.ks.edu.tw service name: ftp&lt;br /&gt;lsof -n 不将IP转换为hostname，预设是不加上-n参数&lt;br /&gt;例子: lsof -i tcp@ohaha.ks.edu.tw: ftp -n&lt;br /&gt;lsof -p 12 看进程号为12的进程打开了哪些文件&lt;br /&gt;lsof +|-r [t] 控制lsof不断重复执行，缺省是15s刷新&lt;br /&gt;-r，lsof会永远不断的执行，直到收到中断讯号&lt;br /&gt;+r，lsof会一直执行，直到没有档案被显示&lt;br /&gt;例子：不断查看目前 ftp连接的情况：lsof -i tcp@ohaha.ks.edu.tw: ftp -r&lt;br /&gt;lsof -s 列出打开文件的大小，如果没有大小，则留下空白&lt;br /&gt;lsof -u username 以UID，列出打开的文件&lt;br /&gt;&lt;br /&gt;----------------------------经典图书篇--------------------------&lt;br /&gt;&lt;br /&gt;4001 GNU/Linux高级网络应用服务指南(bjchenxu)&lt;br /&gt;linuxaid网站&lt;br /&gt;机械工业出版社&lt;br /&gt;优点：又全又精，全都是实战之作&lt;br /&gt;缺点：针对版本较低，为redhat 6.2&lt;br /&gt;&lt;br /&gt;4002 Linux Apache Web Server管理指南(Linux Apache Web Server Administration)(&lt;br /&gt;bjchenxu)&lt;br /&gt;Charles Aulds 马树奇/金燕译&lt;br /&gt;电子工业出版社&lt;br /&gt;优点：目前我还没有发现哪个关于apache的问题这本书没有讲过&lt;br /&gt;缺点：针对1.3.x，最新的针对2.0.*的英文版已出，中文版待出&lt;br /&gt;&lt;br /&gt;4003 Linux内核情景分析(bjchenxu)&lt;br /&gt;毛德操/胡希明&lt;br /&gt;浙江大学出版社&lt;br /&gt;优点：太透彻了，没法不懂&lt;br /&gt;缺点：还是版本问题，内核更新太快了，不过还是必读&lt;br /&gt;&lt;br /&gt;4004 Unix环境高级编程(bjchenxu)&lt;br /&gt;Richard Stevens&lt;br /&gt;机械工业出版社&lt;br /&gt;优点：博大精深&lt;br /&gt;缺点：初学者是很难理解的，否则怎么叫《高级编程》呢？&lt;br /&gt;&lt;br /&gt;4005 编程精粹--Microsoft编写优质无错c程序秘诀(bjchenxu)&lt;br /&gt;Steve Maguire&lt;br /&gt;电子工业出版社&lt;br /&gt;优点：不说了，作者是微软的资深工程师&lt;br /&gt;缺点：很难找了，1994年出的&lt;br /&gt;&lt;br /&gt;4006 Understanding the Linux Kernel, 2nd Edition(hutuworm)&lt;br /&gt;Daniel P. Bovet &amp; Marco Cesati&lt;br /&gt;O'Reilly出版社&lt;br /&gt;读了这本书之后，你就会明白在什么情况下Linux具有最佳的性能，以及它如何面对挑战&lt;br /&gt;，在各种环境中提供进程调度、文件访问和内存管理时的优良的系统响应。作者通过解释&lt;br /&gt;其重要性来引入每一个题目，并将内核操作与Unix程序员和用户熟悉的系统调用或实用程&lt;br /&gt;序联系起来。&lt;br /&gt;&lt;br /&gt;4007 UNIX操作系统教程(英文版)(弱智)&lt;br /&gt;Syed Mansoor Sarwar等&lt;br /&gt;机械工业出版社&lt;br /&gt;特点：浅显易懂，着重unix基础概念和整体理解，顺便复习英语。&lt;br /&gt;另外：机械工业出版社已经出版了中文版，名称：UNIX 教程&lt;br /&gt;&lt;br /&gt;4008 UNIX编程环境(弱智)&lt;br /&gt;Brian W.Kernighan, Rob Pike 陈向群等译&lt;br /&gt;机械工业出版社&lt;br /&gt;特点：浅显，深入浅出讲解如何使用UNIX及各种工具，简单介绍Unix编程环境；对比“U&lt;br /&gt;NIX环境高级编程”，此书适合新手入门。&lt;br /&gt;&lt;br /&gt;4009 The Art of UNIX Programming(hutuworm)&lt;br /&gt;Eric Steven Raymond&lt;br /&gt;http://catb.org/~esr/writings/taoup/html/&lt;br /&gt;优点： E.S. Raymond的经典著作&lt;br /&gt;&lt;br /&gt;4010 unix网络编程--卷一 套接口API和X/Open传输接口API(slg1972)&lt;br /&gt;Richard Stevens&lt;br /&gt;清华大学出版社&lt;br /&gt;优点：详细地讲解unix网络的编程&lt;br /&gt;&lt;br /&gt;4011 unix网络编程--卷二 进程间通讯(slg1972)&lt;br /&gt;Richard Stevens&lt;br /&gt;清华大学出版社&lt;br /&gt;优点：详细讲解unix的进程之间，线程之间的关系，及各种不同标准的进程编程的异同&lt;br /&gt;&lt;br /&gt;4012 unix网络编程--卷三 应用程序(slg1972, hutuworm)&lt;br /&gt;未出，因为Richard Stevens大师英年早逝，再也不可能完成这计划中的第三卷了。据说&lt;br /&gt;其未竟稿可能由Gary R. Wright整理续写出来，但是自大师驾鹤以来一直杳无音信&lt;br /&gt;&lt;br /&gt;4013 基于C++ CORBA高级编程(slg1972)&lt;br /&gt;Michi Henning，Steve Vinoski&lt;br /&gt;清华大学出版社&lt;br /&gt;优点：中间件的好书，通向corba应用的必备资料。&lt;br /&gt;&lt;br /&gt;4014 unix linux网管通鉴(odin_free)&lt;br /&gt;电子版的，包括本版精华&lt;br /&gt;优点：我见过关于unix知识最全面、最实用的chm文档，相当于一个小型网站，里面支持&lt;br /&gt;全文检索，推荐所有还没有的兄弟姐妹们下载&lt;br /&gt;&lt;br /&gt;4015 www.chinaoy.com(aomin5555)&lt;br /&gt;不错，挺全的，图书下载的好网址：&lt;br /&gt;redhat linux9.0 官方入门指南&lt;br /&gt;·redhat linux9.0 官方安装指南&lt;br /&gt;·redhat linux9.0 官方定制设置手册&lt;br /&gt;·redhat linux基础教程&lt;br /&gt;·Linux 参考大全&lt;br /&gt;·清华论坛linux精华&lt;br /&gt;·Linux系统管理员指南中文手册&lt;br /&gt;·Linux网站建设和维护全攻略&lt;br /&gt;·redhat linux8.0 安装手册&lt;br /&gt;·Linux环境database管理员指南&lt;br /&gt;&lt;br /&gt;4016 Linux Advanced Routing &amp; Traffic Control(hutuworm)&lt;br /&gt;专门讲LINUX IPROUTE2的书，大概100页左右，www.lartc.org&lt;br /&gt;中文版在：http://www.lartc.org/LARTC-zh_CN.GB2312.pdf&lt;br /&gt;&lt;br /&gt;4017 Debian User强烈推荐看的书(NetDC)&lt;br /&gt;Debian Reference （Debian参考手册）&lt;br /&gt;http://qref.sourceforge.net/&lt;br /&gt;简体中文版的pdf文档。&lt;br /&gt;http://qref.sourceforge.net/Debian/reference/reference.zh-cn.pdf&lt;br /&gt;&lt;br /&gt;4018 Advanced Bash-Scripting Guide(hutuworm)&lt;br /&gt;An in-depth exploration of the art of shell scripting.&lt;br /&gt;Mendel Cooper. .&lt;br /&gt;http://www.tldp.org/LDP/abs/abs-guide.pdf&lt;br /&gt;优点：是Bash编程的圣经，而且该书作者不断在更新其内容，一两个月就会翻新一个版本&lt;br /&gt;，值得一读，一读再读。&lt;br /&gt;&lt;br /&gt;4019 JAVA完美经典(bjchenxu)&lt;br /&gt;江义华 编著 林彩瑜 文编&lt;br /&gt;中国铁道出版社&lt;br /&gt;定价：65元&lt;br /&gt;优点：不愧是台湾同胞的力作，讲解清楚，知识全面，我看了之后，感到很有收获&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;----------------------------mysql相关篇--------------------------&lt;br /&gt;&lt;br /&gt;5001 mysql的数据库存放在什么地方(bjchenxu)&lt;br /&gt;1. 如果使用rpm包安装，应该在/var/lib/mysql目录下，以数据库名为目录名&lt;br /&gt;2. 如果源码安装在/usr/local/mysql中，应该在/usr/local/mysql/var中，以数据库名&lt;br /&gt;为目录名&lt;br /&gt;&lt;br /&gt;5002 从mysql中导出和导入数据(bjchenxu)&lt;br /&gt;导出数据库&lt;br /&gt;mysqldump 数据库名 &gt; 文件名&lt;br /&gt;导入数据库&lt;br /&gt;mysqladmin create 数据库名&lt;br /&gt;mysql 数据库名 &lt; 文件名&lt;br /&gt;&lt;br /&gt;5003 忘了mysql的root口令怎么办(bjchenxu)&lt;br /&gt;# service mysql stop&lt;br /&gt;# mysqld_safe --skip-grant-tables &amp;&lt;br /&gt;# mysqladmin -u user password 'newpassword''&lt;br /&gt;# mysqladmin flush-privileges&lt;br /&gt;&lt;br /&gt;5004 快速安装php/mysql(bjchenxu)&lt;br /&gt;确保使用系统自带的apache，从安装光盘中找出所有以mysql及php-mysql开头的rpm包，&lt;br /&gt;然后运行#rpm -ivh mysql*.rpm php-mysql*.rpm; mysql_install_db; service mysql &lt;br /&gt;start&lt;br /&gt;&lt;br /&gt;5005 修改mysql的root口令(bjchenxu)&lt;br /&gt;# mysqladmin -uroot -p password '你的新密码'&lt;br /&gt;&lt;br /&gt;-------------------------------杂项篇--------------------------------&lt;br /&gt;&lt;br /&gt;感谢allan0909指正&lt;br /&gt;请不要做浮躁的人&lt;br /&gt;http://www.chinaunix.net/forum/viewtopic.php?t=93113&lt;br /&gt;欢迎转载本文，请注明来自www.chinaunix.net和www.linuxmine.com&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-3733019359656843294?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/3733019359656843294/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/linux.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3733019359656843294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/3733019359656843294'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/linux.html' title='Linux一句话精彩问答'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-4091523093398496045</id><published>2008-10-01T10:52:00.003+08:00</published><updated>2008-10-30T23:04:29.757+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>输入输出重定向命令</title><content type='html'>今天写报告的时候用了一下重定向命令，把要上交的文件夹的Tree结构放到一个文本文档里，效果挺好的。&lt;br /&gt;&lt;br /&gt;……&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;　　DOS下的重定向命令为：　 &lt;br /&gt;1、大于号 (&gt;) 将命令发送到文件或设备，例如打印机(&gt;prn)。使用大于号 (&gt;) 时，有些命令输出（例如错误消息）不能重定向。 &lt;br /&gt;2、双大于号 (&gt;&gt;) 将命令输出添加到文件结尾而不删除文件中已有的信息。 &lt;br /&gt;3、小于号 (&lt;) 从文件而不是键盘上获取命令所需的输入。 &lt;br /&gt;4、&gt;&amp; 符号将输出从一个默认 I/O 流 (stdout, stdin, stderr) 重新定向到另一个默认 I/O 流。例如，command &gt;output_file 2&gt;&amp;1 将处理 command 过程中的所有错误信息从屏幕重定向到标准文件输出中。标准输出的数值如下所示： &lt;br /&gt;标准输出 等价的数值 &lt;br /&gt;Stdin 0 &lt;br /&gt;Stdout 1 &lt;br /&gt;Stderr 2 &lt;br /&gt;&lt;br /&gt;其中，1和2都创建一个文件用于存放数据；4可能不能够在DOS下使用 &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Linux下的重定向命令如下：&lt;br /&gt;&lt;br /&gt;command &gt; filename 把标准输出重定向到一个新文件中&lt;br /&gt;command &gt;&gt; filename 把标准输出重定向到一个文件中(追加)&lt;br /&gt;command 1 &gt; fielname 把标准输出重定向到一个文件中&lt;br /&gt;command &gt; filename 2&gt;&amp;1 把标准输出和标准错误一起重定向到一个文件中&lt;br /&gt;command 2 &gt; filename 把标准错误重定向到一个文件中&lt;br /&gt;command 2 &gt;&gt; filename 把标准输出重定向到一个文件中(追加)&lt;br /&gt;command &gt;&gt; filename 2&gt;&amp;1 把标准输出和标准错误一起重定向到一个文件中(追加)&lt;br /&gt;command &lt; filename &gt;filename2 把command命令以filename文件作为标准输入，以filename2文件作为标准输出&lt;br /&gt;command &lt; filename 把command命令以filename文件作为标准输入&lt;br /&gt;command &lt;&lt; delimiter 把从标准输入中读入，直至遇到delimiter分界符&lt;br /&gt;command &lt;&amp;m 把文件描述符m作为标准输入&lt;br /&gt;command &gt;&amp;m 把标准输出重定向到文件描述符m中&lt;br /&gt;command &lt;&amp;- 把关闭标准输入&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-4091523093398496045?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/4091523093398496045/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_01.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4091523093398496045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/4091523093398496045'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post_01.html' title='输入输出重定向命令'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-5652753689788032188</id><published>2008-10-01T10:50:00.002+08:00</published><updated>2008-10-30T23:03:28.243+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux下访问NTFS文件系统</title><content type='html'>在Linux下访问Windows的fat32分区可以直接用mount命令就行，但访问NTFS分区 就得先安装驱动了。 &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;　　先用 uname -r 命令获得内核版本号，比如我的内核版本为： &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;   2.6.15-1.2054_FC5&lt;br /&gt;    然后到http://Linux-ntfs.sourceforge.net/下载系统所需的kernel-module-ntfs-2.6.15-1.2054_FC5-2.1.26-0.rr.10.0.i686.rpm组件。（注意和内核版本匹配）。&lt;br /&gt;&lt;br /&gt;    然后运行以下命令进行安装：&lt;br /&gt;    #rpm ivh kernel-module-ntfs-2.6.15-1.2054_FC5-2.1.26-0.rr.10.0.i686.rpm&lt;br /&gt;&lt;br /&gt;    安装完成后就可以像FAT32分区那样直接用mount名令挂载分区了。&lt;br /&gt;    挂载命令为：&lt;br /&gt;&lt;br /&gt;    mount [-t vfstype] [-o options] device dir&lt;br /&gt;&lt;br /&gt;     其中： &lt;br /&gt;&lt;br /&gt;　　1.-t vfstype 指定文件系统的类型，通常不必指定。mount 会自动选择正确的类型。常用类型有：&lt;br /&gt;&lt;br /&gt;　　光盘或光盘镜像：iso9660&lt;br /&gt;&lt;br /&gt;　　DOS fat16文件系统：msdos&lt;br /&gt;&lt;br /&gt;　　Windows 9x fat32文件系统：vfat&lt;br /&gt;&lt;br /&gt;　　Windows NT ntfs文件系统：ntfs&lt;br /&gt;&lt;br /&gt;　　Mount Windows文件网络共享：smbfs&lt;br /&gt;&lt;br /&gt;　　UNIX(LINUX) 文件网络共享：nfs&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有：&lt;br /&gt;&lt;br /&gt;　　loop：用来把一个文件当成硬盘分区挂接上系统&lt;br /&gt;&lt;br /&gt;　　ro：采用只读方式挂接设备&lt;br /&gt;&lt;br /&gt;　　rw：采用读写方式挂接设备&lt;br /&gt;&lt;br /&gt;　　iocharset：指定访问文件系统所用字符集&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　3.device 要挂接(mount)的设备。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　4.dir设备在系统上的挂接点(mount point)。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        需要先先建立一个挂载点，通常建在/mnt目录下，例如我要挂载Windows的C 盘，先建立挂载点：&lt;br /&gt;&lt;br /&gt;        mkdir /mnt/winC&lt;br /&gt;&lt;br /&gt;        然后用fdisk -l 命令查得win C盘分区为hda1，则用mount命令挂载：&lt;br /&gt;&lt;br /&gt;        mount  -t ntfs /dev/hda1  /mnt/winC&lt;br /&gt;&lt;br /&gt;        相应的，若要卸载，则用命令：&lt;br /&gt;        umount  /mnt/winC&lt;br /&gt;&lt;br /&gt;        若想让系统每次启动都自动挂装Windows下的某个分区，则可以手动修改/etc/fstab文件来实现。&lt;br /&gt;        /etc/fstab文件的内容被用来在Linux 下自动挂装各种文件系统，文件中的每一行都提供了一种设备的信息，这种设备可以被挂装在Linux文件系统下的一个目录中。在Linux启动过程中， init进程执行一个脚本文件，该脚本调用带有-a参数的mount命令，用mount来读/etc/fstab，并挂装所有列出的文件系统（带 noauto选项的除外）。&lt;br /&gt;&lt;br /&gt;       下面是我机器上该文件的内容：&lt;br /&gt;/dev/VolGroup00/LogVol00 /        ext3    defaults        1 1&lt;br /&gt;LABEL=/boot             /boot     ext3    defaults        1 2&lt;br /&gt;devpts                  /dev/pts  devpts  gid=5,mode=620  0 0&lt;br /&gt;tmpfs                   /dev/shm  tmpfs   defaults        0 0&lt;br /&gt;proc                    /proc     proc    defaults        0 0&lt;br /&gt;sysfs                   /sys      sysfs   defaults        0 0&lt;br /&gt;/dev/VolGroup00/LogVol01 swap     swap    defaults        0 0&lt;br /&gt;&lt;br /&gt;        /etc/fstab文件的第一列是设备名，第二列是挂装点，第三列表示在设备上的文件系统的类型，第四列是应用于特定设备的一组选项，通常为 defaults，表示的含义有：这个设备在引导阶段被挂装、只有root用户可以挂装它、挂装后可以进行读或写操作，此选项如是noauto，则表示引导时该设备不会被自动挂装，而user选项表示任何用户都可以挂装该设备。第五列是系统备份工具，决定是否需要在备份文件系统时导出，1表示上一次备份至今天的书，0表示从不备份。最后一列是启动时用fsck检查文件系统的顺序，顺序相同的将同时检查，0表示不检查。&lt;br /&gt;        以我的系统为例，如果想在Linux下挂装 Windows操作系统的C分区，则可以在上文件中加入一行：&lt;br /&gt;&lt;br /&gt;/dev/hda1    /mnt/winC    ntfs    defaults    0    0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;对/etc/fstab文件的编辑可用VI编辑器进行。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-5652753689788032188?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/5652753689788032188/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/linuxntfs.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/5652753689788032188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/5652753689788032188'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/linuxntfs.html' title='Linux下访问NTFS文件系统'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-9172815956198519122</id><published>2008-10-01T10:46:00.003+08:00</published><updated>2008-10-30T23:03:49.311+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>重装Windows后找回Linux引导</title><content type='html'>我可怜的Windows系统自从上次换过硬盘后就没重装过，用了那么久，已经是千疮百孔了，昨天晚上又和病毒奋斗了两个小时，终于决定重装系统了。&lt;br /&gt;&lt;br /&gt;    今天重装完Windows后，在网上找了一些方法，把Linux的引导找回来，先记在这里，免得以后忘记。&lt;br /&gt;&lt;br /&gt;…… &lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;    1.下载grub_for_dos，解压以后把grldr这个文件拷到c盘根目录下面，打开boot.ini，在最后加一行：c:\grldr="grub"（引号里的内容可以随便写），保存后重启。&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;   2.重启后会出现选择菜单，选择grub,它会自动寻找menu.lst,一般这样就可以进入grub菜单，启动 linux。若Linux启动成功，跳到第4步。&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; 3.(这一步我没经历过，所以原文照写如下) 若上一步没有成功启动Linux，则会进入命令行，输入:root (hd0,*)(你的 linux所在的区），回车，输入：configfile /boot/grub/grub.conf,如果你的/boot是单独分区的，输入：configflie /grub/grub.conf，回车即可进入grub启动选择菜单。&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;4.进入Linux后，运行grub(在终端输入grub，回车，比较慢，要等一会)。输入root (hd0,*)这里，括号里的是你的Linux的安装位置，hd0指的是硬盘，如果你有两块硬盘，且Linux装在第二块硬盘上的话，就用hd1，*代表的是你Linux所在的分区，比如我的就是(hd0,2)。&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;5.输入setup (hd0)，若成功会有success之类的字样。至此OK！但需要注意，上面两条命令root (hd0,*)和setup (hd0)的单词和括号之间有一个空格。&lt;br /&gt;&lt;br /&gt;　　这样，就实现了通过Grub的引导启动，若启动项里没有Windows的话，编辑 /boot/grub/grub.conf,在里面加上这样几句(title 后面的内容可以自己更改)： &lt;br /&gt;title windows &lt;br /&gt;rootnoverify (hd0,0) &lt;br /&gt;chainloader +1 &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;    最后，别忘了进入Windows将之前添加的c:\grldr="grub"删除，不然选择进入Windows后还要再选择一次。:)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-9172815956198519122?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/9172815956198519122/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/windowslinux.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/9172815956198519122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/9172815956198519122'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/windowslinux.html' title='重装Windows后找回Linux引导'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-6448092933150916183</id><published>2008-10-01T10:44:00.007+08:00</published><updated>2008-10-23T21:34:31.503+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='程序设计'/><title type='text'>进制转换(支持负进制)</title><content type='html'>代码如下：&lt;br /&gt;（抱歉，目前还没有养成写注释的习惯……）&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;DIV class=source style="FONT-FAMILY: '[object]','Lucida Console','Courier New','monospace'; BACKGROUND-COLOR: #f9f7ed" jQuery1224768844361="2"&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;#include &amp;quot;stdio.h&amp;quot;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;#include &amp;quot;math.h&amp;quot;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;int&lt;/SPAN&gt; main()&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;{&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;long&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; n,m,r,result[100];&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;long&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; *p=result;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;printf(&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;Input:&amp;quot;&lt;/SPAN&gt;);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;scanf(&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;%ld&amp;nbsp;&amp;nbsp; %ld&amp;quot;&lt;/SPAN&gt;,&amp;amp;n,&amp;amp;r);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; (abs(r)&amp;gt;1&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp;&amp;nbsp;&amp;nbsp; !(n&amp;lt;0&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp;&amp;nbsp;&amp;nbsp; r&amp;gt;0)){&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp; printf(&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;%ld=&amp;quot;&lt;/SPAN&gt;,n);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; (n!=0){&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;while&lt;/SPAN&gt;(n!=0){&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m=n/r;*p=n-m*r;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; (*p&amp;lt;0&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp;&amp;nbsp;&amp;nbsp; r&amp;lt;0){&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *p=*p+abs(r);m++;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;n=m;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; (m=p-result-1;m&amp;gt;=0;m--){&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; (result[m]&amp;gt;9)&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;%c&amp;quot;&lt;/SPAN&gt;,55+result[m]);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;else&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;%d&amp;quot;&lt;/SPAN&gt;,result[m]);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;else&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; printf(&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;0&amp;quot;&lt;/SPAN&gt;);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&amp;nbsp; printf(&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (base&amp;nbsp;&amp;nbsp; %d)&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;\n&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;&lt;/SPAN&gt;,r);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;}&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;else&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; printf&amp;nbsp;&amp;nbsp; (&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;input&amp;nbsp;&amp;nbsp; error!&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;\n&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;&amp;quot;&lt;/SPAN&gt;);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;SPAN class="lineno special"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt; 0;&lt;BR&gt;&lt;SPAN class=lineno style="COLOR: #008000"&gt;&lt;/SPAN&gt;}&lt;BR&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-6448092933150916183?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/6448092933150916183/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6448092933150916183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/6448092933150916183'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/blog-post.html' title='进制转换(支持负进制)'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-667809582456321827.post-1778112506819689458</id><published>2008-10-01T10:30:00.003+08:00</published><updated>2008-10-30T23:04:08.807+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Windows运行命令集锦</title><content type='html'>&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;开始→运行→输入的命令集锦&lt;br /&gt;比较实在有用的命令,希望对大家有帮助!! &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:Arial;"&gt;……&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt; &lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;winver---------检查Windows版本&lt;br /&gt;　mimgmt.msc----打开windows管理体系结构(WMI)&lt;br /&gt;　　wupdmgr--------windows更新程序&lt;br /&gt;　　w脚本--------windows脚本宿主设置&lt;br /&gt;　　write----------写字板&lt;br /&gt;　　winmsd---------系统信息&lt;br /&gt;　　wiaacmgr-------扫描仪和照相机向导&lt;br /&gt;　　winchat--------XP自带局域网聊天&lt;br /&gt;　　mem.exe--------显示内存使用情况&lt;br /&gt;　　Msconfig.exe---系统配置实用程序&lt;br /&gt;　　mplayer2-------简易widnows media player&lt;br /&gt;　　mspaint--------画图板&lt;br /&gt;　　mstsc----------远程桌面连接&lt;br /&gt;　　mplayer2-------媒体播放机&lt;br /&gt;　　magnify--------放大镜实用程序&lt;br /&gt;　　mmc------------打开控制台&lt;br /&gt;　　mobsync--------同步命令&lt;br /&gt;　　dxdiag---------检查DirectX信息&lt;br /&gt;　　drwtsn32------ 系统医生&lt;br /&gt;　　devmgmt.msc--- 设备管理器&lt;br /&gt;　　dfrg.msc-------磁盘碎片整理程序&lt;br /&gt;　　diskmgmt.msc---磁盘管理实用程序&lt;br /&gt;　　dcomcnfg-------打开系统组件服务&lt;br /&gt;　　ddeshare-------打开DDE共享设置&lt;br /&gt;　　dvdplay--------DVD播放器&lt;br /&gt;　　net stop messenger-----停止信使服务&lt;br /&gt;net start messenger----开始信使服务&lt;br /&gt;　 notepad--------打开记事本&lt;br /&gt;　　nslookup-------网络管理的工具向导&lt;br /&gt;　　ntbackup-------系统备份和还原&lt;br /&gt;　　narrator-------屏幕“讲述人”&lt;br /&gt;　　ntmsmgr.msc----移动存储管理器&lt;br /&gt;　　ntmsoprq.msc---移动存储管理员操作请求&lt;br /&gt;　　netstat -an----(TC)命令检查接口&lt;br /&gt;　　syncapp--------创建一个公文包&lt;br /&gt;　　sysedit--------系统配置编辑器&lt;br /&gt;　　sigverif-------文件签名验证程序&lt;br /&gt;　　sndrec32-------录音机&lt;br /&gt;　　shrpubw--------创建共享文件夹&lt;br /&gt;　　secpol.msc-----本地安全策略&lt;br /&gt;　　syskey---------系统加密，一旦加密就不能解开，保护windows xp系统的双重密码&lt;br /&gt;　　services.msc---本地服务设置&lt;br /&gt;　　Sndvol32-------音量控制程序&lt;br /&gt;　　sfc.exe--------系统文件检查器&lt;br /&gt;　　sfc /scannow---windows文件保护&lt;br /&gt;　　tsshutdn-------60秒倒计时关机命令&lt;br /&gt;　　tourstart------xp简介（安装完成后出现的漫游xp程序）&lt;br /&gt;　　taskmgr--------任务管理器&lt;br /&gt;　 eventvwr-------事件查看器&lt;br /&gt;　　eudcedit-------造字程序&lt;br /&gt;　　explorer-------打开资源管理器&lt;br /&gt;　　packager-------对象包装程序&lt;br /&gt;　　perfmon.msc----计算机性能监测程序&lt;br /&gt;　　progman--------程序管理器&lt;br /&gt;　　regedit.exe----注册表&lt;br /&gt;　　rsop.msc-------组策略结果集&lt;br /&gt;　　regedt32-------注册表编辑器&lt;br /&gt;　　rononce -p ----15秒关机&lt;br /&gt;　　regsvr32 /u *.dll----停止dll文件运行&lt;br /&gt;　　regsvr32 /u zipfldr.dll------取消ZIP支持&lt;br /&gt;　　cmd.exe--------CMD命令提示符&lt;br /&gt;　　chkdsk.exe-----Chkdsk磁盘检查&lt;br /&gt;　　certmgr.msc----证书管理实用程序&lt;br /&gt;　　calc-----------启动计算器&lt;br /&gt;　　charmap--------启动字符映射表&lt;br /&gt;　　cliconfg-------SQL SERVER 客户端网络实用程序&lt;br /&gt;　　Clipbrd--------剪贴板查看器&lt;br /&gt;　　conf-----------启动netmeeting&lt;br /&gt;　　compmgmt.msc---计算机管理&lt;br /&gt;　　cleanmgr-------垃圾整理&lt;br /&gt;　　ciadv.msc------索引服务程序&lt;br /&gt;　　osk------------打开屏幕键盘&lt;br /&gt;　　odbcad32-------ODBC数据源管理器&lt;br /&gt;　　oobe/msoobe /a----检查XP是否激活&lt;br /&gt;　　lusrmgr.msc----本机用户和组&lt;br /&gt;　　logoff---------注销命令&lt;br /&gt;　　iexpress-------木马捆绑工具，系统自带&lt;br /&gt;　　Nslookup-------IP地址侦测器&lt;br /&gt;　　fsmgmt.msc-----共享文件夹管理器&lt;br /&gt;　　utilman--------辅助工具管理器&lt;br /&gt;　　gpedit.msc-----组策略 regsvr32 shimgvw.dll-----启用图像预览&lt;br /&gt;regsvr32 shmedia.dll-----启用视频预览&lt;br /&gt;regsvr32 /u shimgvw.dll-----取消图像预览&lt;br /&gt;regsvr32 /u shmedia.dll-----取消视频预览&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/667809582456321827-1778112506819689458?l=madongfly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://madongfly.blogspot.com/feeds/1778112506819689458/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://madongfly.blogspot.com/2008/10/windows.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/1778112506819689458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/667809582456321827/posts/default/1778112506819689458'/><link rel='alternate' type='text/html' href='http://madongfly.blogspot.com/2008/10/windows.html' title='Windows运行命令集锦'/><author><name>madongfly</name><uri>http://www.blogger.com/profile/17858211549533693496</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_n_vVcoJMer0/SXgUW8fGX1I/AAAAAAAAB4s/F8yWGWbHZnc/S220/gold.JPG'/></author><thr:total>0</thr:total></entry></feed>
