﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-kainster</title><link>http://www.blogjava.net/kainster/</link><description>never too late</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 07:53:58 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 07:53:58 GMT</pubDate><ttl>60</ttl><item><title>Even if you're on the right track, you'll get run over if you just sit there</title><link>http://www.blogjava.net/kainster/archive/2009/06/19/283259.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Fri, 19 Jun 2009 09:04:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2009/06/19/283259.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/283259.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2009/06/19/283259.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/283259.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/283259.html</trackback:ping><description><![CDATA[Even if you're on the right track, you'll get run over if you just sit there.&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Will Rogers
<img src ="http://www.blogjava.net/kainster/aggbug/283259.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2009-06-19 17:04 <a href="http://www.blogjava.net/kainster/archive/2009/06/19/283259.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python 之意义重大</title><link>http://www.blogjava.net/kainster/archive/2008/12/28/248761.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Sun, 28 Dec 2008 08:44:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/12/28/248761.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/248761.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/12/28/248761.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/248761.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/248761.html</trackback:ping><description><![CDATA[<p>Python (发音:[ 'pai&#952;(ə)n; (US) 'pai&#952;ɔn ])，是一种面向对象的解释性的计算机程序设计语言，也是一种功能强大而完善的通用型语言，已经具有十多年的发展历史，成熟且稳定。Python 具有脚本语言中最丰富和强大的类库，足以支持绝大多数日常应用。这种语言具有非常简捷而清晰的语法特点，适合完成各种高层任务，几乎可以在所有的操作系统中运行。目前，基于这种语言的相关技术正在飞速的发展，用户数量急剧扩大，相关的资源非常多。</p>
<p><em>文章来源：</em><a href="http://bbs.game798.com/showtopic-14187.html"><em>http://bbs.game798.com/showtopic-14187.html</em></a><br />
<strong>---Python的特色</strong><br />
1、简单----Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样，尽管这个英语的要求非常严格！Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。<br />
2、易学----就如同你即将看到的一样，Python极其容易上手。前面已经提到了，Python有极其简单的语法。<br />
3、免费、开源----Python是FLOSS（自由/开放源码软件）之一。简单地说，你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一--它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。<br />
4、高层语言----当你用Python语言编写程序的时候，你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。<br />
5、可移植性----由于它的开源本质，Python已经被移植在许多平台上（经过改动使它能够工作在不同平台上）。如果你小心地避免使用依赖于系统的特性，那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC！<br />
6、解释性----这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件（即C或C++语言）转换到一个你的计算机使用的语言（二进制代码，即0和1）。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候，连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码 运行 程序。在计算机内部，Python解释器把源代码转换成称为字节码的中间形式，然后再把它翻译成计算机使用的机器语言并运行。事实上，由于你不再需要担心如何编译程序，如何确保连接转载正确的库等等，所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上，它就可以工作了，这也使得你的Python程序更加易于移植。<br />
7、面向对象----Python即支持面向过程的编程也支持面向对象的编程。在"面向过程"的语言中，程序是由过程或仅仅是可重用代码的函数构建起来的。在"面向对象"的语言中，程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比，Python以一种非常强大又简单的方式实现面向对象编程。<br />
8、可扩展性----如果你需要你的一段关键代码运行得更快或者希望某些算法不公开，你可以把你的部分程序用C或C++编写，然后在你的Python程序中使用它们。<br />
9、可嵌入性----你可以把Python嵌入你的C/C++程序，从而向你的程序用户提供脚本功能。<br />
10、丰富的库----Python标准库确实很庞大。它可以帮助你处理各种工作，包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI（图形用户界面）、Tk和其他与系统有关的操作。记住，只要安装了Python，所有这些功能都是可用的。这被称作Python的"功能齐全"理念。除了标准库以外，还有许多其他高质量的库，如wxPython、Twisted和Python图像库等等。<br />
概综上所述，Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。<br />
<strong>---Python在编程语言中的定位</strong><br />
Python是从ABC发展起来，主要受到了Modula-3（另一种相当优美且强大的语言，为小型团体所设计的）的影响。并且结合了Unix shell和C的习惯。很多大规模软件开发计划例如 Zope， Mnet 及 BitTorrent. Google都在广泛地使用它。<br />
通常认为，Python是一种解释性的语言，但是这种说法是不正确的，实际上，Python在执行时，首先会将.py文件中的源代码编译成Python的byte code（字节码），然后再由Python Virtual Machine来执行这些编译好的byte code。这种机制的基本思想跟Java，.NET是一致的。然而，Python Virtual Machine与Java或.NET的Virtual Machine不同的是，Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级，不是说Python的Virtual Machine比Java或.NET的功能更强大，而是说和Java 或.NET相比，Python的Virtual Machine距离真实机器的距离更远。或者可以这么说，Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件，通常是.pyc格式。<br />
在实际开发中，python常被昵称为胶水语言，这不是说他会把你的手指粘住，而是说他能够很轻松的把用其他语言制作的各种模块（尤其是C/C++）轻松地联结在一起。常见的一种应用情形是，使用python快速生成程序的原型（有时甚至是程序的最终界面），然后对其中有特别要求的部分，用更合适的语言改写，比如3D游戏中的图形渲染模块，速度要求非常高，就可以用C++重写。<br />
<strong>---Python的设计理念</strong><br />
可扩充性可说是Python作为一种编程语言的特色。新的内置模块（module）可以用C 或 C++写成。而我们也可为现成的模块加上Python的接口。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。<br />
Python也被称为是一门清晰的语言。因为它的作者在设计它的时候，总的指导思想是，对于一个特定的问题，只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言（称为The Zen of Python）里面表述为：<br />
There should be one-- and preferably only one --obvious way to do it.<br />
有意思的是，这正好和Perl语言（另一种功能类似的高级动态语言）的中心思想TMTOWTDI（There's More Than One Way To Do It）完全相反。这似乎是人们常把Perl和Python互相比较的重要原因。<br />
Python语言是一种清晰的语言的另一个意思是，它的作者有意的设计限制性很强的语法，使得不好的编程习惯（例如if语句的下一行不向右缩进）都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。<br />
例如if语句：<br />
if age&lt;21:<br />
print "You cannot buy wine!\n"<br />
print "But you can buy chewing gum.\n"<br />
print "this is outside if\n"<br />
一个和其他大多数语言（如C）的区别就是，一个模块的界限，完全是由每行的首字符在这一行的位置来决定的（而C语言是用一对花括号{}来明确的定出模块的边界的，与字符的位置毫无关系）。这一点曾经引起过争议。因为自从C这类的语言诞生后，语言的语法含义与字符的排列方式分离开来，曾经被认为是一种程序语言的进步。不过不可否认的是，通过强制程序员们缩进（包括if，for和函数定义等所有需要使用模块的地方），Python确实使得程序更加清晰和美观。<br />
另外Python在其他部分的设计上也坚持了清晰划一的风格，这使得Python称为一门易读性、易维护性好，并且被大量用户所欢迎的、用途广泛的语言。Python直接编写的程序段有时运行效率甚至高于用C编写的程序。<br />
<strong>---Python的不适之处</strong><br />
虽然Python是一个非常成功的语言，但对于习惯其他语言的程序员，有两个地方会让他们感觉略有不适。<br />
1、强制缩进<br />
这也许不应该被称为局限，但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员，也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误，而这是用肉眼无法分别的。<br />
2、单行语句和命令行输出问题<br />
很多时候不能将程序连写成一行，如import sys;for i in sys.pathrint i。而perl和awk就无此限制，可以较为方便的在shell下完成简单程序，不需要如Python一样，必须将程序写入一个.py文件。（对很多用户而言这也不算是限制）<br />
<strong>---Python的缺点和补救措施<br />
</strong>1、 运行速度（虽然比java快，但没法和需要编译的语言相比。）。有速度要求的话，用C++改写关键部分吧。<br />
2、 国内市场较小（国内以python来做主要开发的，目前只有一些 web2.0公司）。但时间推移，目前很多国内软件公司，尤其是游戏公司，也开始规模使用他。<br />
3、 中文资料匮乏（好的python中文资料屈指可数）。托社区的福，有几本优秀的教材已经被翻译了，但入门级教材多，高级内容还是只能看英语版。<br />
4、 构架选择太多（没有像C#这样的官方.net构架，也没有像rudy由于历史较短，构架开发的相对集中。rudy on rails 构架开发中小型web程序天下无敌）。不过这也从另一个侧面说明，python比较优秀，吸引的人才多，项目也多。<br />
<strong>---Python的前景</strong><br />
Python在编程领域的占有率一直处于稳步上升之中，根据最新的数据，Python排名第六。前五名分别是Java、C、VB、PHP和C++. 作为一个很年轻的语言，Python的位置已经相当令人振奋了。随着微软将Python纳入.Net 平台，相信Python的将来会更加强劲发展。Python 很可能会成为.Net平台快速开发的主流语言。欲了解这方面情况，请参考Iron Python的相关信息.<br />
著名的搜索引擎 Google 也大量使用Python。更加令人吃惊的是，在Nokia智能手机所采用的Symbian操作系统上，Python成为继C++,Java之后的第三个编程语言！2006年的Google编程大赛已经将Python作为参赛语言之一，可见Python的影响力之巨大。</p>
<img src ="http://www.blogjava.net/kainster/aggbug/248761.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-12-28 16:44 <a href="http://www.blogjava.net/kainster/archive/2008/12/28/248761.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python 常用库</title><link>http://www.blogjava.net/kainster/archive/2008/12/28/248760.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Sun, 28 Dec 2008 08:43:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/12/28/248760.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/248760.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/12/28/248760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/248760.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/248760.html</trackback:ping><description><![CDATA[本文转载自『恋花蝶的博客!』<br />
<a href="http://blog.csdn.net/lanphaday">http://blog.csdn.net/lanphaday</a><br />
<br />
今天公司停电，没上班。跑上来更新个博客，跟大家分享一下我常用的几个第三方 Python 库。Python 语言之所以能够如此流行，除了本身内置许多程序库来保障快速开发之外，目不睱接的第三方库也是一大主因。结合我目前的工作（网游开发），我常用的几个第三方库如下：
<p>wxPython<br />
如果你之前是 windows 程序员，用 MFC 或者 WIN32API 开发界面程序，那进入 Python 国度最好的 GUI 选择应该是 wxPython。它是 wxWidgets 的 Python Bind，与 wxWidgets 的开发完美同步，最为重要的一点是它的消息机制与 MFC 颇为相似，以前在 MFC 的经验完全可以稍作变化就套用在 wxPython 上面。在 WIN32 开发中，最讨厌的一环肯定有 WM_SIZE 消息的处，在主窗口大小变化的时候，保持控件布局在 WIN32 是一件麻烦事。这件事情 wx 解决得非常完美，它的sizer 概念可以让我轻松地在不同窗口尺寸的情况下保持完美的控件布局。另外如果你已经讨厌了 MFC 的 doc-view 模型，wx 也可以给你一个新的选择；如果你非常喜欢 doc-view 模型，放心，在 wx 中仍然可以轻松实现，以前的思想依然可以在这里发挥余热。</p>
<p>wxPython 有两个封装，一个 PythonCard，另一个是 dabo。前者是 wxPython 的有限封装，不支持 wxPython 的全部特性，它的目标是让 wxPython 更加 Pythonic。后者比 PythonCard 要庞大不少，确切来说，它应该是一个三层架构的 C/S 模式的开发框架。如果你想开发基于数据库的应用（如 MIS、ERP 等）用 dabo 是一个不错的选择；另外，如果你之前习惯了 VB、VFP、Delphi 等 RAD 开发环境，dabo 并不比这些昂贵的工具差多少哦！</p>
<p>py2exe<br />
按照邪恶的 windows 思维，编写的应用如果不编译出一个 .exe 文件恐怕是算不得&#8220;软件&#8221;的，py2exe 作用正是把你的 .py 脚本变成 .exe 文件，通常它会把脚本打包到一个 .zip 文件中去，但也你可以通过修改 setup.py 脚本把所有的脚本、依赖的 dll 等全部打包到一个 exe 中去，看起来跟 VC、VB 编译出来的程序没有什么两样！</p>
<p>如果你的客户需要在 windows 下使用你的应用程序，py2exe 是你不可或缺的工具。我就是用它打包由 wxPython 写的小工具给公司里的游戏策划用的。</p>
<p>psyco<br />
脚本的执行效率多少有点差强人意，虽然优化起来并不是难事，但如果有简单的方法，近乎不用修改源代码，那当然值得去关注一下。psyco 的神奇在于它只需要在代码的入口处调用短短两行代码，性能就能提升 40% 或更多，真可谓是立竿见影！</p>
<p>如果你的客户觉得你的程序有点慢，敬请不要急着去优化代码，psyco 或许能让他立即改变看法。psyco 堪称 Python 的 jit，有许多潜力可以挖掘，如果剩下来给你优化性能的时间已经不多，请马上去阅读它的手册，有许多招儿轻松优化性能。</p>
<p>PIL<br />
PIL 是 Python 的图像处理库，我的看法是强到没得说，简单到没得说。它可以打开数十种图像格式，常见的 jpg/png/bmp 等当然不在话下；此外还提供许多图像处理函数，如图像增强、滤波算法等，详情可以参考我以前的一篇文章《用Python 做图像处理》（<a href="http://blog.csdn.net/lanphaday/archive/2007/10/28/1852726.aspx">http://blog.csdn.net/lanphaday/archive/2007/10/28/1852726.aspx</a>）和《计算图像相似度》（<a href="http://blog.csdn.net/lanphaday/archive/2008/04/24/2325027.aspx">http://blog.csdn.net/lanphaday/archive/2008/04/24/2325027.aspx</a>）。</p>
<p>MySQLdb<br />
这是 Python 对开源数据库 Mysql 的支持，官网在<a href="http://sourceforge.net/projects/mysql-python">http://sourceforge.net/projects/mysql-python</a>。支持 Mysql 3.23-5.1 全系列版本，Python 版本的要求是 2.3-2.5。MySQLdb 是 Python DB API-2.0 的实现，现在已经很成熟了。最新的版本是 1.2.2 。</p>
<p>如果从事服务器开发，那少不得跟数据库连接池打交道，这时你可以使用 DBUtils 或 jonpy 两个开源程序库。其中 DBUtils 是一套数据库连接池库，而 jonpy 则包括了 CGI 以及数据库连接池等多个功能，请在阅读手册后选择合适的自己库。</p>
<p>pyprocessing<br />
Python 解释器里的 GIL（全局解释器锁）使得 Python 在多核时代有点尴尬——这个支持原生线程的脚本语言竟然不能通过多线程利用多个 CPU 内核同时并发计算。pyprocessing 没有尝试去除 GIL，而是剑走偏锋，尝试从多进程的方式来帮助 Python 走出困境。结果就是使用 pyprocessing 创建进程和进程间通信不仅像使用内置的 threading 模块那么简单，甚至还更加简单。pyprocessing 不仅可以通过本机 socket 和管道进行通信，而且封装得极为完美，它的 Queue 实现用起来跟内置的 Queue 没啥两样，但它是一个进程间共享的队列哦！</p>
<p>pyprocessing 在 py2.6 和 py3.0 中已经作为内置模块了，也算是开发社区对 pyprocessing 项目的肯定吧。如果你用 Python 开发服务器应用，特别是网络游戏这样的应用，pyprocessing 怎么可以不去关注一下！<br />
</p>
<img src ="http://www.blogjava.net/kainster/aggbug/248760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-12-28 16:43 <a href="http://www.blogjava.net/kainster/archive/2008/12/28/248760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《CLR via C#》 Chap11 字符、字符串和文本</title><link>http://www.blogjava.net/kainster/archive/2008/12/26/248398.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Fri, 26 Dec 2008 03:11:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/12/26/248398.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/248398.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/12/26/248398.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/248398.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/248398.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Collections.Generic;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Text;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;chap11<br />
<img id="Codehighlighter1_85_694_Open_Image" onclick="this.style.display='none'; Codehighlighter1_85_694_Open_Text.style.display='none'; Codehighlighter1_85_694_Closed_Image.style.display='inline'; Codehighlighter1_85_694_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_85_694_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_85_694_Closed_Text.style.display='none'; Codehighlighter1_85_694_Open_Image.style.display='inline'; Codehighlighter1_85_694_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_85_694_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_85_694_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />
<img id="Codehighlighter1_109_692_Open_Image" onclick="this.style.display='none'; Codehighlighter1_109_692_Open_Text.style.display='none'; Codehighlighter1_109_692_Closed_Image.style.display='inline'; Codehighlighter1_109_692_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_109_692_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_109_692_Closed_Text.style.display='none'; Codehighlighter1_109_692_Open_Image.style.display='inline'; Codehighlighter1_109_692_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_109_692_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_109_692_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
<img id="Codehighlighter1_159_686_Open_Image" onclick="this.style.display='none'; Codehighlighter1_159_686_Open_Text.style.display='none'; Codehighlighter1_159_686_Closed_Image.style.display='inline'; Codehighlighter1_159_686_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_159_686_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_159_686_Closed_Text.style.display='none'; Codehighlighter1_159_686_Open_Image.style.display='inline'; Codehighlighter1_159_686_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_159_686_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_159_686_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;c;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">70000</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
<img id="Codehighlighter1_236_317_Open_Image" onclick="this.style.display='none'; Codehighlighter1_236_317_Open_Text.style.display='none'; Codehighlighter1_236_317_Closed_Image.style.display='inline'; Codehighlighter1_236_317_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_236_317_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_236_317_Closed_Text.style.display='none'; Codehighlighter1_236_317_Open_Image.style.display='inline'; Codehighlighter1_236_317_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_236_317_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_236_317_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">char</span><span style="color: #000000">)i;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(c);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception&nbsp;e)<br />
<img id="Codehighlighter1_362_422_Open_Image" onclick="this.style.display='none'; Codehighlighter1_362_422_Open_Text.style.display='none'; Codehighlighter1_362_422_Closed_Image.style.display='inline'; Codehighlighter1_362_422_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_362_422_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_362_422_Closed_Text.style.display='none'; Codehighlighter1_362_422_Open_Image.style.display='inline'; Codehighlighter1_362_422_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_362_422_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_362_422_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(e.Message);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
<img id="Codehighlighter1_452_543_Open_Image" onclick="this.style.display='none'; Codehighlighter1_452_543_Open_Text.style.display='none'; Codehighlighter1_452_543_Closed_Image.style.display='inline'; Codehighlighter1_452_543_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_452_543_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_452_543_Closed_Text.style.display='none'; Codehighlighter1_452_543_Open_Image.style.display='inline'; Codehighlighter1_452_543_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_452_543_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_452_543_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Convert.ToChar(i);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(c);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception&nbsp;e)<br />
<img id="Codehighlighter1_588_648_Open_Image" onclick="this.style.display='none'; Codehighlighter1_588_648_Open_Text.style.display='none'; Codehighlighter1_588_648_Closed_Image.style.display='inline'; Codehighlighter1_588_648_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_588_648_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_588_648_Closed_Text.style.display='none'; Codehighlighter1_588_648_Open_Image.style.display='inline'; Codehighlighter1_588_648_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_588_648_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_588_648_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(e.Message);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
<br />
<br />
<p>不要在字符串中硬编码 \n \r等，<br />
string s = "Hi\r\nthere";不太好<br />
而应该用 string s = "Hi" + Environment.NewLine + "there";</p>
<p>string是不可变的，相关的操作返回的都是一个新的string。如果要在运行时将几个字符串连接到一起，请避免使用+操作符，因为它会在垃圾收集堆上创建多个字符串对象，相反，应当使用System.Text.StringBuilder类型。</p>
<p>以下写法完全等价<br />
string file = "C:\\Windows\\System32\\NotePad.exe";<br />
string file = @"C:\Windows\System32\NotePad.exe";</p>
<img src ="http://www.blogjava.net/kainster/aggbug/248398.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-12-26 11:11 <a href="http://www.blogjava.net/kainster/archive/2008/12/26/248398.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一直弹出 未识别的USB设备 的解决办法</title><link>http://www.blogjava.net/kainster/archive/2008/11/17/240946.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Mon, 17 Nov 2008 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/11/17/240946.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/240946.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/11/17/240946.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/240946.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/240946.html</trackback:ping><description><![CDATA[今天不知道怎么了，开机以后一直弹出 &#8220;未识别的USB设备&#8221;的消息，而且关了还出，一直不停的出<br />
尝试更新了驱动，重启了n次还是不行<br />
最后发现百度贴吧上有个人说：关机把电源拔掉，然后再开机就好了，我试了试，居然真的好了。。。<br />
很多时候事情就是这么简单，可惜就是想不到。。。
<img src ="http://www.blogjava.net/kainster/aggbug/240946.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-11-17 13:34 <a href="http://www.blogjava.net/kainster/archive/2008/11/17/240946.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最具浪漫主义色彩的数学家之阿贝尔</title><link>http://www.blogjava.net/kainster/archive/2008/11/10/239675.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Mon, 10 Nov 2008 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/11/10/239675.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/239675.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/11/10/239675.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/239675.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/239675.html</trackback:ping><description><![CDATA[<strong>阿贝尔</strong> <br />
<div class="bpctrl"><span style="color: red">另外我发现柯西有严重的健忘症，伽罗华和阿贝尔的论文居然都被他弄丢过！</span></div>
<h2 class="first">翻开近世数学的教科书和专门著作，阿贝尔这个名字是屡见不鲜的：阿贝尔积分、阿贝尔函数、阿贝尔积分方程、阿贝尔群、阿贝尔级数、阿贝尔部分和公式、阿贝尔基本定理、阿贝尔极限定理、阿贝尔可和性，等等。很少几个数学家能使自己的名字同近世数学中这么多的概念和定理联系在一起。然而这位卓越的数学家却是一个命途多舛的早夭者，只活了短短的27年。尤其可悲的是，在他生前，社会并没有给他的才能和成果以公正的承认。 </h2>
<div class="bpctrl"></div>
<h2 class="">生平</h2>
　　尼耳期．亨利克．阿贝尔（N.H.Abel，1802－1829）1802年8月出生于<a href="http://baike.baidu.com/view/4918.htm" target="_blank">挪威</a>的一个农村。他很早变显示了数学方面的才华。16岁那年，他遇到了一个能赏识其才能的老师霍姆伯（Holmboe）介绍他阅读牛顿、欧拉、拉格朗日、高斯的著作。大师们不同凡响的创造性方法和成果，一下子开阔了阿贝尔的视野，把他的精神提升到一个崭新的境界，他很快被推进到当时数学研究的前沿阵地。后来他感慨地在笔记中写下这样的话：&#8220;要想在数学上取得进展，就应该阅读大师的而不是他们的门徒的著作&#8221;。
<div class="bpctrl"></div>
<h2 class="">青年时代</h2>
　　1821年，由于霍姆伯和另几位好友的慷慨资助，阿贝尔才得进入奥斯陆大学学习。两年以后，在一本不出名的杂志上他发表了第一篇研究论文，其内容是用积分方程解古典的等时线问题。这篇论文表明他是第一个直接应用并解出积分方程的人。接着他研究一般五次方程问题。开始，他曾错误地认为自己得到了一个解。霍姆伯建议他寄给丹麦的一位著名数学去审阅，幸亏审阅者在打算认真检查以前，要求提供进一步的细节，这使阿贝尔有可能自己来发现并修正错误。这次失败给了他非常有益的启发，他开始怀疑，一般五次方程究竟是否可解？问题的转换开拓了新的探索方向，他终于成功地证明了要像较低次方程那样用根式解一般五次方程是不可能的。 <br />
<div class="spctrl"></div>
　　这个青年人的数学思想已经远远超越了挪威国界，他需要与有同等智力的人交流思想和经验。由于阿贝尔的教授们和朋友们强烈地意识到了这一点，他们决定说服学校当局向政府申请一笔公费，以便他能作一次到欧洲大陆的数学旅行。经过例行的繁文缛节的手续和耽搁延宕后，阿贝尔终于在1825年8月获得公费，开始其历时两年的大陆之行。 <br />
<div class="spctrl"></div>
　　踌躇满志的阿贝尔自费印刷了证明五次方程不可解的论文，把它作为自己晋谒大陆大数学家们，特别是高斯，的科学护照。他相信高斯将能认识他工作的价值而超出常规地接见。但看来高斯并未重视这篇论文，因为人们在高斯死后的遗物中发现阿贝尔寄给他的小册子还没有裁开。 <br />
<div class="spctrl"></div>
　　柏林是阿贝尔旅行的第一站。他在那里滞留了将近一年时间。虽然等候高斯召见的期望终于落空，这一年却是他一生中最幸运、成果最丰硕的时期。在柏林，阿贝尔遇到并熟识了他的第二个伯乐——克雷勒（Crelle）。克雷勒是一个铁路工程师，一个热心数学的业余爱好者，他以自己所创办的世界上最早专门发表创造性数学研究论文的期刊《纯粹和应用数学杂志》而在数学史上占有一席之地，后来人平习惯称这本期刊为&#8220;克雷勒杂志&#8221;。与该刊的名称所标榜的宗旨不同，实际上它上面根本没有应用教学的论文，所以有人又戏称它为&#8220;纯粹非应用数学杂志&#8221;。阿贝尔是促成克雷勒将办刊拟议付诸实施的一个人。初次见面，两个人就彼此留下了良好而深刻的印象。阿贝尔说他拜读过克雷勒的所有数学论文，并且说他发现在这些论文中有一些错误。克雷勒非常地谦虚，他已经意识到眼前这位脸带稚气的年轻人具有非凡的数学天才。他翻阅了阿贝尔赠送的论五次方程的小册子，坦率地承认看不懂。但此时他已决定立即实行拟议中的办刊计划，并将阿贝尔的论文载入第一期。于是阿贝尔的研究论文，克雷勒杂志才能逐渐提高声誉和扩大影响。 <br />
<div class="spctrl"></div>
　　阿贝尔一生最重要的工作——关于椭圆函数理论的广泛研究就完成在这一时期。相反，过去横遭冷遇，历经艰难，长期得不到公正评价的，也就是这一工作。现在公认，在被称为&#8220;函数论世纪&#8221;的19世纪的前半叶，阿贝尔的工作[后来还有雅可比（K.G.Jacobi，1804－1851）发展了这一理论]，是函数论的两个最高成果之一。
<div class="bpctrl"></div>
<h2 class="">阿贝尔与椭圆函数</h2>
　　椭圆函数是从椭圆积分来的。早在18世纪，从研究物理、天文、几何学的许多问题中经常导出一些不能用初等函数表示的积分，这些积分与计算椭圆弧长的积分往往具有某种形式上的共同性，椭圆积分就是如此得名的。19世纪初，椭圆积分方面的权威是法国科学院的耆宿、德高望重的勒让得（A.M.Legen-dre，1752－1833）。他研究这个题材长达40年之久，他从前辈工作中引出许多新的推断，组织了许多常规的数学论题，但他并没有增进任何基本思想，他把这项研究引到了&#8220;山重水复疑无路&#8221;的境地。也正是阿贝尔，使勒让得在这方面所研究的一切黯然失色，开拓了&#8220;柳暗花明&#8221;的前途。 <br />
<div class="spctrl"></div>
　　关键来自一个简单的类比。微积分中有一条众所周知的公式上式左边那个不定积分的反函数就是三角函数。不难看出，椭圆积分与上述不定积分具有某种形式的对应性，因此，如果考虑椭圆积分的反函数，则它就应与三角函数也具有某种形式的对应性。既然研究三角函数要比表示为不定积分的反三角函数容易得多，那么对应地研究椭圆积分的反函数（后来就称为椭圆函数）不也应该比椭圆积分本身容易得多吗？ <br />
<div class="spctrl"></div>
　　&#8220;倒过来&#8221;，这一思想非常优美，也的确非常简单、平凡。但勒让得苦苦思索40年，却从来没有想到过它。科学史上并不乏这样的例证&#8220;优美、简单、深刻、富有成果的思想，需要的并不是知识和经验的单纯积累，不是深思熟虑的推理，不是对研究题材的反复咀嚼，需要的是一种能够穿透一切障碍深入问题根柢的非凡的洞察力，这大概就是人们所说的天才吧。&#8220;倒过来&#8221;的想法像闪电一样照彻了这一题材的奥秘，凭借这一思想，阿贝尔高屋建瓴，势如破竹地推进他的研究。他得出了椭圆函数的基本性质，找到了与三角函数中的&#960;有相似作用的常数K，证明了椭圆函数的周期性。他建立了椭圆函数的加法定理，借助于这一定理，又将椭圆函数拓广到整个复域，并因而发现这些函数是双周期的，这是别开生面的新发现；他进一步提出一种更普遍更困难类型的积分——阿贝尔积分，并获得了这方面的一个关键性定理，即著名的阿贝尔基本定理，它是椭圆积分加法定理的一个很宽的推广。至于阿贝尔积分的反演——阿贝尔函数，则是不久后由黎曼（B.Riemann，1826－1866）首先提出并加以深入研究的。事实上，阿贝尔发现了一片广袤的沃土，他个人不可能在短时间内把这片沃土全部开垦完毕，用埃尔米特（Hermite）的话来说，阿贝尔留下的后继工作，&#8220;够数学家们忙上五百年&#8221;。阿贝尔把这些丰富的成果整理成一长篇论文《论一类极广泛的超越函数的一般性质》。此时他已经把高斯置诸脑后，放弃了访问哥延根的打算，而把希望寄托在法国的数学家身上。他婉辞了克雷勒劝其定居柏林的建议后，便启程前往巴黎。在这世界最繁华的大都会里， 荟萃着像柯西（A.L.Cauchy，1789－1857）、勒让得、拉普拉斯P.S.LapLace，1749－1827）、傅立叶（I.Fourier，1768－1830）、泊松（S.D.Poisson，1781－1840）这样一些久负盛名的数字巨擘，阿贝尔相信他将在那里找到知音。
<div class="bpctrl"></div>
<h2 class="">巨星的陨落</h2>
　　1826年7月，阿贝尔抵达巴黎。他见到了那里所有出名的数学家，他们全都彬彬有礼地接待他，然而却没有一个人愿意仔细倾听他谈论自己的工作。在这些社会名流的高贵天平上，这个外表腼腆、衣着寒酸、来自僻远落后国家的年轻人能有多少份量呢？阿贝尔在写给霍姆伯谈巴黎观感的信中说道：&#8220;法国人对陌生的来访者比德国人要世故得多。你想和他们亲密无间简直是难上加难，老实说我现在也根本不奢望能有些荣耀。到头来，任何一个开拓者要想在此间引起重视，都得遇到巨大的障碍。尽管阿贝尔非常自信，但对这一工作能否得到合理评价已经深有疑虑了。他通过正常渠道将论文提交法国科学院。科学院秘书傅立叶读了论文的引言，然后委托勒让得和柯西负责审查。柯西把稿件带回家中，究竟放在什么地方，竟记不起来了。直到两年以后阿贝尔已经去世，失踪的论文原稿才重新找到，而论文的正式发表，则迁延了12年之久。 <br />
<div class="spctrl"></div>
　　从满怀希望到渐生疑虑终至完全失望，阿贝尔在巴黎空等了将近一年。他寄居的那家房东又特别吝啬刻薄，每天只供给他两顿饭，却收取昂贵的租金。一天他感到身体很不舒畅，经医生检查，诊断为肺病，尽管他顽强地不相信，但实情是他确已心力交瘁了。阿贝尔只好拖着病弱的身体，怀着一颗饱尝冷遇而孤寂的心告别巴黎回国。当他重到柏林时，已经囊空如洗。幸亏霍姆伯及时汇到一些钱，才使他能在柏林稍事休整后返回家园。 <br />
<div class="spctrl"></div>
　　是谁该对阿贝尔的厄运负责呢？人们很自然会想起审评阿贝尔论文的柯西、勒让得。柯西当时38岁，正年富力强，创造力旺盛，忙于自己的事，顾不上别人而疏忽铸下了大错。勒让得怎么样呢？年逾古稀，功成名就，在法国科学界享有崇高的威望，他当时不可能像柯西那样忙着搞研究，理应对培养、识拔年轻一代的科学人才负有更多责任。然而主要的是，阿贝尔这篇论文所处理的题材恰恰是勒让得所熟悉的，从某种意义上来说，是他的世袭领地。尽管论文里包含着许多新奇、艰深的概念，但导致这些概念的基本思想却是简单的。一个外行也许没有能力欣赏这种简单思想的优美性和深刻性，但勒让得对所论问题却决非外行，他自己思者过几十年，深知在旧有基本思想框架内，知识业已达到饱和状态，要获取新的知识，除非打破框架，引进新的基本思想。对他来说，其实根本无须仔细阅读论文，只有稍事点拨，三言两语说明一下基本思想，就足以起到振聋发聩的作用。但是他却好像毫无感受，实在令人费解。事实上，阿贝尔论文的内容，他并非一无所知，当他得知另一位青年数学家雅可比（Jacobi）也独立做了椭圆函数理论方面相当系统的工作后，他曾告诉过雅可比，有一个年轻的斯堪的纳维亚人已先他而专美于家了。雅可比如饥似渴地读完阿贝尔那篇失落两年又奇迹般出现的论文，不禁气愤地写信责问科学院：&#8220;阿贝尔先生作出了一个多么了不起的发现啊！有谁看到过别的堪与比美的发现呢？然而，这项也许称得上我们世纪最伟大的数学发现，两年以前就提交给你们科学院了，却居然没有引起你们的注意，这究竟是怎么一回事呢&#8221;？勒让得复信为自己提出的辩解是令人失笑的：&#8220;我们感到论文简直无法阅读，因为它是用几乎白色的墨水写的，字母拼写得很糟糕，我们都认为应该要求作者提供一个较清楚的文本。真是掩耳盗铃，文过饰非。&#8221; <br />
<div class="spctrl"></div>
　　让我们再看看高斯。高斯一生勤勉，有许多伟大的数学发现，却错过了发现这个伟大数学人才的机会。科学史经常在告诫：大凡富有创造性的见解，开始总是与传统观念相抵触的。 <br />
<div class="spctrl"></div>
　　但阿贝尔最终毕竟还是幸运的，他回挪威后一年里，欧洲大陆的数学界渐渐了解了他。继失踪的那篇主要论文之后，阿贝尔又写过若干篇类似的论文，都在&#8220;克雷勒杂志&#8221;上发表了。这些论文将阿贝尔的名字传遍欧洲所有重要的数学中心，他已成为众所瞩目的优秀数学家之一。遗憾的是，他处境闭塞，孤陋寡闻，对此情况竟无所知。甚至连他想在自己的国家谋一个普通的大学教职也不可得。1829年1月，阿贝尔的病情恶化，他开始大口吐血，并不时陷入昏迷。他的最后日子是在一家英国人的家里度过的。因为他的未婚妻凯姆普（Kemp）是那个家庭的私人教师。阿贝尔已自知将不久于人世，这时，他唯一牵挂的是他女友凯姆普的前途，为此，他写信给最亲近的朋友基尔豪(Kiel-hau)，要求基尔豪在他死后娶凯姆普为妻。尽管基尔豪与凯姆普以前从未觌面，为了让阿贝尔能死而瞑目，他们照他的遗愿做了。临终的几天，凯姆普坚持只要自己一个人照看阿贝尔，他要&#8220;独占这最后的时刻&#8221;。1829年4月6日晨，这颗耀眼的数学新星便过早地殒落了。阿贝尔死后两天，克雷勒的一封信寄到，告知柏林大学已决定聘请他担任数学教授。损失是难以估计的，如果阿贝尔活到应的的寿命，他又将要做出多少新的贡献啊！
<div class="bpctrl"></div>
<h2 class="">评价</h2>
　　通过阿贝尔的遭遇，我们认识到，建立一个客观而公正的科学评价体制是至关重要的。科学界不仅担负着探索自然奥秘的任务，也担负着发现从事这种探索的人才的任务。科学是人的事业，问题是要靠人去解决的。科学评价中的权威主义倾向却往往有害于发现和栽培科学人才。科不权威意味着他在科学的某一领域里曾做过些先进工作，他可能是科学发现方面踌躇满志的权威，却不一定是评价、发现、培养科学人才的权威，尤其当科学新分支不断涌现，所要评价的对象是天于连权威都陌生的新领域的工作时，情况更是如此。
<div class="bpctrl"></div>
<h2 class="">阿贝尔奖</h2>
　　为了纪念挪威天才数学家阿贝尔诞辰200周年，挪威政府于2003年设立了一项数学奖——<a href="http://baike.baidu.com/view/6180.htm" target="_blank">阿贝尔奖</a>。这项每年颁发一次的奖项的奖金高达80万美元，相当于诺贝尔奖的奖金，是世界上奖金最高的数学奖。
<div class="bpctrl"></div>
<h2 class="">阿贝尔雕像</h2>
　　自16世纪以来，随着三次、四次方程陆续解出，人们把目光落在五次方程的求根公式上，然而近300年的探索一无所获，阿贝尔证明了一般五次方程不存在求根公式，解决了这个世纪难题，在挪威皇宫有一尊阿贝尔的雕像，这是一个大无畏的青年的形象，他的脚下踩着两个怪物——分别代表五次方程和椭圆函数。<br />
<img src ="http://www.blogjava.net/kainster/aggbug/239675.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-11-10 14:57 <a href="http://www.blogjava.net/kainster/archive/2008/11/10/239675.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最具浪漫主义色彩的数学家之伽罗华</title><link>http://www.blogjava.net/kainster/archive/2008/11/10/239672.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Mon, 10 Nov 2008 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/11/10/239672.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/239672.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/11/10/239672.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/239672.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/239672.html</trackback:ping><description><![CDATA[<strong>伽罗华</strong>（&#201;variste Galois，公元1811年~公元1832年）是<a href="http://baike.baidu.com/view/64741.htm" target="_blank">法国</a>对函数论、方程式论和<a href="http://baike.baidu.com/view/17568.htm" target="_blank">数论</a>作出重要贡献的<a href="http://baike.baidu.com/view/66878.htm" target="_blank">数学家</a>，他的工作为<a href="http://baike.baidu.com/view/669751.htm" target="_blank">群论</a>（一个他引进的名词）奠定了基础；所有这些进展都源自他尚在校就读时欲证明五次多项式方程根数解（Solution by Radicals）的不可能性（其实当时已为<a href="http://baike.baidu.com/view/32308.htm" target="_blank">阿贝尔</a>（<a href="http://baike.baidu.com/view/84528.htm" target="_blank">Abel</a>）所证明，只不过伽罗华并不知道），和描述任意多项式方程可解性的一般条件的打算。虽然他已经发表了一些论文，但当他于1829年将论文送交<a href="http://baike.baidu.com/view/100770.htm" target="_blank">法兰西科学院</a>时，第一次所交论文却被<a href="http://baike.baidu.com/view/22645.htm" target="_blank">柯西</a>（<a href="http://baike.baidu.com/view/277542.htm" target="_blank">Cauchy</a>）遗失了，第二次则被<a href="http://baike.baidu.com/view/34407.htm" target="_blank">傅立叶</a>（<a href="http://baike.baidu.com/view/482242.htm" target="_blank">Fourier</a>）所遗失；他还与<a href="http://baike.baidu.com/view/249671.htm" target="_blank">巴黎综合理工大学</a>（&#201;cole Polytechnique）的口试主考人发生顶撞而被拒绝给予一个职位。在父亲自杀后，他放弃投身于<a href="http://baike.baidu.com/view/1284.htm" target="_blank">数学</a>生涯，注册担任辅导教师，结果因撰写反<a href="http://baike.baidu.com/view/20352.htm" target="_blank">君主制</a>的文章而被开除，且因信仰<a href="http://baike.baidu.com/view/40796.htm" target="_blank">共和</a>体制而两次下狱。他第三次送交科学院的论文均被<a href="http://baike.baidu.com/view/126352.htm" target="_blank">泊松</a>（<a href="http://baike.baidu.com/view/486352.htm" target="_blank">Poisson</a>）所拒绝。伽罗华死于一次决斗，可能是被<a href="http://baike.baidu.com/view/1325282.htm" target="_blank">保皇派</a>或警探所激怒而致，时年21岁。<strong>他被公认为数学史上两个最具浪漫主义色彩的人物之一</strong>。
<div class="bpctrl"></div>
<h2 class="">Galois小传：</h2>
　　1832年5月30日清晨，在<a href="http://baike.baidu.com/view/11269.htm" target="_blank">巴黎</a>的葛拉塞尔湖附近躺着一个昏迷的年轻人，过路的农民从枪伤判断他是决斗后受了重伤，就把这个不知名的青年抬到医院。第二天早晨十点，这个可怜的年轻人离开了人世，数学史上最年轻、最富有创造性的头脑停止了思考。后来的一些著名数学家们说，<strong>他的死使数学的发展被推迟了几十年</strong>，他就是伽罗华。<br />
<div class="spctrl"></div>
　　<a href="http://baike.baidu.com/view/8866.htm" target="_blank">天才</a>的童年<br />
<div class="spctrl"></div>
　　1811年10月25日，伽罗华出生于法国巴黎郊区拉赖因堡伽罗华街的第54号房屋内。现在这所房屋的正面有一块纪念牌，上面写着：&#8220;法国著名数学家埃瓦里斯特&#8226;伽罗华生于此，卒年20岁，1811～1832年&#8221;。纪念牌是小镇的居民为了对全世界学者迄今公认的、曾有特殊功绩的、卓越的数学家——伽罗华表示敬意，于1909年6月设置的。<br />
<div class="spctrl"></div>
　　伽罗华的双亲都受过良好的<a href="http://baike.baidu.com/view/3496.htm" target="_blank">教育</a>。在父母的<a href="http://baike.baidu.com/view/1326195.htm" target="_blank">熏陶</a>下，伽罗华童年时代就表现出有才能、认真、热心等良好的品格。其父尼古拉&#8226;加布里埃尔&#8226;伽罗华参与政界活动属<a href="http://baike.baidu.com/view/64644.htm" target="_blank">自由党</a>人，是<a href="http://baike.baidu.com/view/4866.htm" target="_blank">拿破仑</a>的积极支持者。主持过供少年就学的学校，任该校校长。又担任拉赖因堡15年常任市长，深受市民的拥戴。伽罗华曾向同监的难友勒斯拜——法国著名的<a href="http://baike.baidu.com/view/66794.htm" target="_blank">政治家</a>、<a href="http://baike.baidu.com/view/50415.htm" target="_blank">化学家</a>和<a href="http://baike.baidu.com/view/9040.htm" target="_blank">医生</a>说过：&#8220;父亲是他的一切&#8221;。可见父亲的政治态度和当时法国的革命热潮对伽罗华的成长和处事有较大的影响。<br />
<div class="spctrl"></div>
　　伽罗华的母亲玛利亚&#8226;阿代累达&#8226;伽罗华曾积极参与儿子的启蒙教育。作为古代文化的热烈爱好者，她把从拉丁和<a href="http://baike.baidu.com/view/6744.htm" target="_blank">希腊</a>文学中汲取来的英勇典范介绍给她儿子。1848年发表在《皮托雷斯克画报》上有关伽罗华的传记中，特别谈到&#8220;伽罗华的第一位教师是他的母亲，一个聪明兼有好教养的妇女，当他还在童稚时，她一直给他上课&#8221;。这就为伽罗华在中学阶段的学习和以后攀登数学高峰打下了坚实的基础。<br />
<div class="spctrl"></div>
　　1823年l0月伽罗华年满12岁时，离开了双亲，考入有名的路易&#8226;勒&#8226;格兰皇家中学。从他的老师们保存的有关他在中学生活的回忆录和笔记中，记载着伽罗华是位具有&#8220;杰出的才干&#8221;，&#8220;举止不凡&#8221;，但又&#8220;为人乖僻、古怪、过分多嘴&#8221;性格的人。我们认为这种性格说明他有个性，而且早已显露出强烈的求知欲的标志。<br />
<div class="spctrl"></div>
　　伽罗华在路易&#8226;勒&#8226;格兰皇家中学领<a href="http://baike.baidu.com/view/67124.htm" target="_blank">奖学金</a>，完全靠公费生活。在第四、第三和第二年级时他都是优等生，在希腊语作文总比赛中也获得好评，并且在1826年l0月转到修辞班学习。<br />
<div class="spctrl"></div>
　　但是第二学季一开始(伽罗华这时刚满15岁)，由于教师们认为他的体格不够强壮，校长认为他的判断力还有待&#8220;成熟&#8221;，他不得不回到二年级。重修二年级，使伽罗华有机会毫无阻碍地被批准去上初级数学的补充课程。自此他把大部分时间和主要精力用来研究、探讨数学课本以外的<a href="http://baike.baidu.com/view/14041.htm" target="_blank">高等数学</a>。<br />
<div class="spctrl"></div>
　　伽罗华经常到图书馆阅读数学专著，特别对一些数学大师，如<a href="http://baike.baidu.com/view/5251.htm" target="_blank">勒让德</a>的《几何原理》和<a href="http://baike.baidu.com/view/19783.htm" target="_blank">拉格朗日</a>的《代数方程的解法》、《解析函数论》、《微积分学教程》进行了认真分析和研究，但他并未失去对其他科目的兴趣。<br />
<div class="spctrl"></div>
　　因此，当1827年伽罗华回到修辞班时，他的全面发展甚至比他的数学的天分在同学之中更加出人头地了。但是他对其它科目的教科书的内容以及教师所采用的教学法之潦草马虎感到愤怒。所以有的教师认为他被数学的鬼魅迷住了心窍，有的教师用七个字&#8220;平静会使他激怒&#8221;来形容他的行为。<br />
<div class="spctrl"></div>
　　这时伽罗华已经熟悉<a href="http://baike.baidu.com/view/4645.htm" target="_blank">欧拉</a>、<a href="http://baike.baidu.com/view/2129.htm" target="_blank">高斯</a>、<a href="http://baike.baidu.com/view/5208.htm" target="_blank">雅可比</a>的著作，这更提高了他的信心，他认为他能够做到的，不会比这些大数学家们少。到了学年末，他不再去听任何专业课了，而在独立地准备参加取得升入综合技术学校资格的竞赛考试。结果尽管考试失败，但1828年10月，他仍然从中学初级数学班跳到里夏尔的数学专业班。<br />
<div class="spctrl"></div>
　　路易&#8226;勒&#8226;格兰中学的数学专业班教师里夏尔，在科学史上，他作为一个很有才华的教师使人追念。里夏尔不仅讲课风格优雅，而且善于发掘天才。他遗留下的笔记中记载着：&#8220;伽罗华只宜在数学的尖端领域中工作&#8221;，&#8220;他大大地超过了全体同学&#8221;。<br />
<div class="spctrl"></div>
　　里夏尔帮助伽罗华于1828年在法国第一个专业数学杂志《纯粹与应用数学年报》三月号上，发表了他的第一篇论文—《周期连分数一个定理的证明》，并说服伽罗华向科学院递送备忘录。1829年，伽罗华在他中学学年快要结束时，把他研究的初步结果的论文提交给<a href="http://baike.baidu.com/view/142969.htm" target="_blank">法国科学院</a>。<br />
<div class="spctrl"></div>
　　1829年，中学学年结束后，伽罗伽罗华瓦刚满18岁，他在报考巴黎综合技术学校时，由于在口试中主考的教授<a href="http://baike.baidu.com/view/446821.htm" target="_blank">比内</a>和勒费布雷&#8226;德&#8226;富尔西对伽罗华阐述的见解不理解，居然嘲笑他。伽罗华在提及这次考试时，曾写道，他不得不听&#8220;主考人的狂笑声&#8221;。据说&#8220;由于被狂笑声所激怒&#8221;，他把黑板擦布扔到主考人头上，或是因为他拒绝回答有关关于<a href="http://baike.baidu.com/view/356.htm" target="_blank">对数</a>这样的过于简单的问题，所以再次遭到落选，伽罗华仍然是一个非正式的预备生。<br />
<div class="spctrl"></div>
　　1829年7月2日，正当伽罗华准备入学考试时，他的父亲由于受不了<a href="http://baike.baidu.com/view/6994.htm" target="_blank">天主教</a>牧师的攻击、诽谤而自杀了。这给了伽罗华很大的触动，他的思想开始倾向于共和主义。其后不久，伽罗华听从里夏尔的劝告决定进师范大学，这使他有可能继续深造，同时生活费用也有了着落。1829年10月25日伽罗华被作为预备生录取入学。<br />
<div class="spctrl"></div>
　　进入师范大学后的一年对伽罗华来说是最顺利的一年，1828年他的科学研究获得了初步成果。伽罗华写了几篇大文章，并提出自己的全部著作来应征科学院的数学特奖。但在这里，他又一次遭到了新挫折：伽罗华的手稿原来交给科学院常任秘书傅立叶，傅立叶收到手稿后不久就去世了。因而文章也被遗失了。这些著作的某些抄本落到数学杂志《费律萨克男爵通报》的杂志社手里，并在1830年的4月号和6月号上把它刊载了出来。<br />
<div class="spctrl"></div>
　　在师范大学学习的第一年，伽罗华结认了奥古斯特&#8226;舍瓦利叶，舍瓦利叶直到伽罗华临终前一直是他的唯一亲近的朋友。1830年7月，伽罗华将满19岁。他在师范大学的第一年功课行将结束。他这时写成的数学著作，已经使人有可能对他思想的独创性和敏锐性作出评价。
<div class="bpctrl"></div>
<h2 class="">数学世界的顽强斗士</h2>
　　19世纪初，有一些数学问题一直困扰着当时的数学家们，而如何求解高次方程就是其中之一。<br />
<div class="spctrl"></div>
　　历史上人们很早就已经知道了一元一次和一元二次方程的求解方法。关于三次方程，我国在公元七世纪，也已经得到了一般的近似解法，这在<a href="http://baike.baidu.com/view/6527.htm" target="_blank">唐朝</a>数学家<a href="http://baike.baidu.com/view/42036.htm" target="_blank">王孝通</a>所编的《缉古算经》就有叙述。到了十三世纪，<a href="http://baike.baidu.com/view/553902.htm" target="_blank">宋代</a>数学家<a href="http://baike.baidu.com/view/18635.htm" target="_blank">秦九韶</a>在他所著的《数书九章》的&#8220;正负开方术&#8221;里，充分研究了数字高次方程的求正根法，也就是说，秦九韶那时候已得到了高次方程的一般解法。<br />
<div class="spctrl"></div>
　　在西方，直到十六世纪初的<a href="http://baike.baidu.com/view/467.htm" target="_blank">文艺复兴</a>时期，才由<a href="http://baike.baidu.com/view/3784.htm" target="_blank">意大利</a>的数学家发现一元三次方程解的公式——<a href="http://baike.baidu.com/view/1595960.htm" target="_blank">卡当公式</a>。<br />
<div class="spctrl"></div>
　　在数学史上，相传这个公式是意大利数学家<a href="http://baike.baidu.com/view/18981.htm" target="_blank">塔塔里亚</a>首先得到的,后来被<a href="http://baike.baidu.com/view/3448.htm" target="_blank">米兰</a>地区的数学家<a href="http://baike.baidu.com/view/353286.htm" target="_blank">卡尔达诺</a>(1501～1576年)骗到了这个三次方程的解的公式，并发表在自己的著作里。所以现在人们还是叫这个公式为卡尔达诺公式(或称卡当公式)，其实，它应该叫塔塔里亚公式。<br />
<div class="spctrl"></div>
　　三次方程被解出来后，一般的四次方程很快就被意大利的费拉里(1522～1560年)解出。这就很自然的促使数学家们继续努力寻求五次及五次以上的高次方程的解法。遗憾的是这个问题虽然耗费了许多数学家的时间和精力，但一直持续了长达三个多世纪，都没有解决。法国数学家拉格朗日更是称这一问题是在&#8220;向人类的智慧挑战&#8221;。<br />
<div class="spctrl"></div>
　　1770年，拉格朗日精心分析了二次、三次、四次方程根式解的结构之后，提出了方程的预解式概念，并且还进一步看出预解式和方程的各个根在排列置换下的形式不变性有关，这时他认识到求解一般五次方程的代数方法可能不存在。此后，<a href="http://baike.baidu.com/view/4918.htm" target="_blank">挪威</a>数学家阿贝尔利用<a href="http://baike.baidu.com/view/1879054.htm" target="_blank">置换群</a>的理论，给出了高于四次的一般代数方程不存在代数解的证明。<br />
<div class="spctrl"></div>
　　伽罗华通过改进数学大师拉格朗日的思想，即设法绕过拉氏预解式，但又从拉格朗日那里继承了问题转化的思想，即把预解式的构成同置换群联系起来的思想，并在阿贝尔研究的基础上，进一步发展了他的思想，把全部问题转化或归结为置换群及其<a href="http://baike.baidu.com/view/843072.htm" target="_blank">子群</a>结构的分析。<br />
<div class="spctrl"></div>
　　这个理论的大意是：每个<a href="http://baike.baidu.com/view/5925.htm" target="_blank">方程</a>对应于一个<a href="http://baike.baidu.com/view/35472.htm" target="_blank">域</a>，即含有方程全部<a href="http://baike.baidu.com/view/41444.htm" target="_blank">根</a>的域，称为这方程的伽罗华域，这个域对应一个<a href="http://baike.baidu.com/view/48541.htm" target="_blank">群</a>，即这个方程根的置换群，称为这方程的伽罗华群。伽罗华域的子域和伽罗华群的子群有一一对应关系；当且仅当一个方程的伽罗华群是可解群时，这方程是根式可解的。<br />
<div class="spctrl"></div>
　　1829年，伽罗华在他中学最后一年快要结束时，把关于群论初步研究结果的论文提交给法国科学院，科学院委托当时法国最杰出的数学家柯西作为这些论文的鉴定人。在1830年1月18日柯西曾计划对伽罗华的研究成果在科学院举行一次全面的意见听取会。他在一封信中写道：&#8220;今天我应当向科学院提交一份关于年轻的伽罗华的工作报告&#8230;&#8230;但因病在家，我很遗憾未能出席今天的会议，希望你安排我参加下次会议，讨论已指明的议题。&#8221;然而，第二周当柯西向科学院宣读他自己的一篇论文时，并未介绍伽罗华的著作，这是一个非常微妙的&#8220;事故&#8221;。<br />
<div class="spctrl"></div>
　　1830年2月，伽罗华将他的研究成果比较详细地写成论文交上去了，以参加科学院的数学大奖评选，希望能够获奖。论文寄给当时科学院终身秘书傅立叶，但傅立叶在当年5月去世了，在他的遗物中未能发现伽罗华的手稿。就这样，伽罗华递交的两次数学论文都被遗失了。<br />
<div class="spctrl"></div>
　　1831年1月，伽罗华在寻求确定方程的可解性这个问题上，又得到一个结论，他写成论文提交给法国科学院。这篇论文是伽罗华关于群论的重要著作，当时负责审查的数学家<a href="http://baike.baidu.com/view/166383.htm" target="_blank">泊阿松</a>为理解这篇论文绞尽脑汁。传说泊阿松将这篇论文看了四个月，最后结论居然是&#8220;完全不能理解&#8221;。尽管借助于拉格朗日已证明的一个结果可以表明伽罗华所要证明的论断是正确的，但最后他还是建议科学院否定它。<br />
<div class="spctrl"></div>
　　对事业必胜的信念激励着年轻的伽罗华。虽然他的论文一再被丢失，得不到应有的支持，但他并没有灰心，他坚持他的科研成果，不仅一次又一次地想办法传播出去，还进一步向更广的领域探索。
<div class="bpctrl"></div>
<h2 class="">天才的陨落</h2>
　　伽罗华诞生在<a href="http://baike.baidu.com/view/275421.htm" target="_blank">拿破仑帝国</a>时代，经历了<a href="http://baike.baidu.com/view/63805.htm" target="_blank">波旁王朝</a>的复辟时期，又赶上路易&#8226;腓力浦朝代初期，他是当时最先进的革命政治集团——共和派的秘密组织&#8220;人民之友&#8221;的成员，并发誓：&#8220;如果为了唤起人民需要我死，我愿意牺牲自己的生命&#8221;。<br />
<div class="spctrl"></div>
　　伽罗华敢于对政治上的动摇分子和<a href="http://baike.baidu.com/view/125340.htm" target="_blank">两面派</a>进行顽强的斗争，年轻热情的伽罗华对师范大学教育组织极为不满。由于他揭发了校长吉尼奥对法国<a href="http://baike.baidu.com/view/935797.htm" target="_blank">七月革命</a>政变的两面派行为，被吉尼奥的忠实朋友，皇家国民教育委员会顾问库申起草报告，皇家国民教育委员会1831年1月8日批准立即将伽罗华开除出师范大学。<br />
<div class="spctrl"></div>
　　之后，他进一步积极参加政治活动。1831年5月l0日，伽罗华以&#8220;企图暗杀国王&#8221;的罪名被捕。在6月15日陪审法庭上，由于<a href="http://baike.baidu.com/view/271181.htm" target="_blank">共和党</a>人的律师窦本的努力，伽罗华被宣告无罪当场获释。七月，被反动王朝视为危险分子的伽罗华在<a href="http://baike.baidu.com/view/14446.htm" target="_blank">国庆节</a>示威时再次被抓，被关在圣佩拉吉监狱，在这里庆祝过他的20岁生日，渡过了他生命的最后一年的大部分时间。<br />
<div class="spctrl"></div>
　　在监狱中伽罗华一方面与官方进行不妥协的斗争，另一面他还抓紧时间刻苦钻研数学。尽管牢房里条件很差，生活艰苦，他仍能静下心来在数学王国里思考。<br />
<div class="spctrl"></div>
　　伽罗华在圣佩拉吉监狱中写成的研究报告中写道：&#8220;把数学运算归类，学会按照难易程度，而不是按照它们的外部特征加以分类，这就是我所理解的未来数学家的任务，这就是我所要走的道路。&#8221;请注意到&#8220;<strong>把数学运算归类</strong>&#8221;这句话，道出了他的理想、他的道路。毋庸置疑，这句话系指点目前所称的群论。由于其后好几代数学家的工作，最终才实现了伽罗华的理想。正是他的著作，标志着旧数学史的结束和新数学史的开始。<br />
<div class="spctrl"></div>
　　l832年3月16日伽罗华获释后不久，年轻气盛的伽罗华为了一个舞女，卷入了一场他所谓的&#8220;爱情与荣誉&#8221;的决斗。伽罗华非常清楚对手的枪法很好，自己难以摆脱死亡的命运，所以连夜给朋友写信，仓促地把自己生平的数学研究心得扼要写出，并附以论文手稿。<br />
<div class="spctrl"></div>
　　他不时的中断，在纸边空白处写上&#8220;我没有时间，我没有时间&#8221;，然后又接着写下一个极其潦草的大纲。他在天亮之前那最后几个小时写出的东西，为一个折磨了数学家们几个世纪的问题找到了真正的答案，并且开创了数学的一片新的天地。<br />
<div class="spctrl"></div>
　　伽罗华对自己的成果充满自信，他在给朋友舍瓦利叶的信中说：&#8220;我在分析方面做出了一些新发现。有些是关于方程论的；有些是关于<a href="http://baike.baidu.com/view/463976.htm" target="_blank">整函数</a>的&#8230;&#8230;。公开请求雅可比或高斯，不是对这些定理的正确性，而是对这些定理的重要性发表意见。我希望将来有人发现，这些对于消除所有有关的混乱是有益的。&#8221;<br />
<div class="spctrl"></div>
　　第二天上午，在决斗场上，伽罗华被打穿了肠子。死之前，他对在他身边哭泣的弟弟说：&#8220;不要哭，我需要足够的勇气在20岁的时候死去&#8221;。他被埋葬在公墓的普通壕沟内，所以今天他的坟墓已无踪迹可寻。他不朽的纪念碑就是他的著作，由两篇被拒绝的论文和他在死前那个不眠之夜写下的潦草手稿组成。<br />
<div class="spctrl"></div>
　　历史学家们曾争论过这场决斗是一个悲惨遭的爱情事件的结局，还是出于政治动机造成的，但无论是哪一种，一位世界上最杰出的数学家在他20岁时被杀死了，<strong>他研究数学才只有五年</strong>。
<div class="bpctrl"></div>
<h2 class="">群论——跨越时代的创造</h2>
　　伽罗华死后，按照他的遗愿，舍瓦利叶把他的信发表在《百科评论》中。他的论文手稿过了十四年后，也就是1846年，才由法国数学家<a href="http://baike.baidu.com/view/79519.htm" target="_blank">刘维尔</a>领悟到这些演算中迸发出的天才思想，他花了几个月的时间试图解释它的意义。刘维尔最后将这些论文编辑发表在他的极有影响的《纯粹与应用数学杂志》上，并向数学界推荐。1870年法国数学家约当根据伽罗华的思想，写了《论置换与代数方程》一书，在这本书里伽罗华的思想得到了进一步的阐述。<br />
<div class="spctrl"></div>
　　伽罗华最主要的成就是提出了群的概念，并用群论彻底解决了根式求解代数方程的问题，而且由此发展了一整套关于群和域的理论，为了纪念他，人们称之为伽罗华理论。正是这套理论创立了抽象代数学，把代数学的研究推向了一个新的里程。正是这套理论为数学研究工作提供了新的数学工具—群论。它对数学分析、几何学的发展有很大影响，并标志着数学发展现代阶段的开始。<br />
<div class="spctrl"></div>
　　伽罗华非常彻底地把全部代数方程可解性问题，转化或归结为置换群及其子群结构分析的问题。这是伽罗华工作中的第一个&#8220;突破&#8221;，他犹如划破黑夜长空的一颗瞬间即逝的彗星，开创了置换群论的研究，确立了代数方程的可解性理论，即后来称为的&#8220;伽罗华理论&#8221;，从而彻底解决了一般方程的根式解难题。<br />
<div class="spctrl"></div>
　　作为这个理论的推论，可以得出五次以上一般代数方程根式不可解，以及用圆规、直尺(无刻度的尺)三等分任意角和作倍立方体不可能等结论。<br />
<div class="spctrl"></div>
　　对伽罗华来说，他所提出并为之坚持的理论是一场对权威、对时代的挑战，他的&#8220;群&#8221;完全超越了当时数学界能理解的观念。也许正是由于年轻，他才敢于并能够以崭新的方式去思考，去描述他的数学世界。也正因如此，他才受到了冷遇。<br />
<div class="spctrl"></div>
　　在这里，我们后人感受到的是一种孤独与悲哀，一种来自智慧的孤独与悲哀。但是，历史的曲折并不能埋没真理的光辉。今天由伽罗华开始的群论，不仅对近代数学的各个方向，而且对<a href="http://baike.baidu.com/view/15707.htm" target="_blank">物理学</a>、<a href="http://baike.baidu.com/view/2507.htm" target="_blank">化学</a>的许多分支都产生了重大的影响。<br />
<div class="spctrl"></div>
　　历史学家们曾争论过这场决斗是一个悲惨遭的爱情事件的结局，还是出于政治动机造成的，但无论是哪一种，一位世界上最杰出的数学家在他20岁时被杀死了，他研究数学才只有5年。 <br />
<div class="spctrl"></div>
　　在分送伽罗华的论文之前，他的兄弟和奥古斯特。谢瓦利埃将它们重写了一遍，目的是把那些解释整理清楚。伽罗华阐述他的思想时总是急于求成，不够充分，这种习性无疑地由于他只有一个晚上的时间来概要叙述他多年的研究而更为严重。虽然他们很尽职地将论文抄本送交卡尔。高斯，卡尔。雅可比和其他一些人，但此后10多年，直到约瑟夫。刘维尔在1846年得到一份之前，伽罗华的工作一直未得到承认。 <br />
<div class="spctrl"></div>
　　刘维尔领悟到这些演算中迸发出的天才思想，他花了几个月的时间试图解释它的意义。最后他将这些论文编辑发表在他的极有影响的《纯粹与应用数学杂志》上。其他的数学家对此作出了迅速和巨大的反响，因为事实上伽罗华已经对如何去寻找五次议程的解作了完整透彻的叙述&#8230;&#8230;这是十九世纪数学中由一位它的最悲惨遭的英雄创造的一件杰作。 <br />
<div class="spctrl"></div>
　　在对论文的介绍中，刘维尔对为什么这位年轻数学家会被他的长辈们拒绝，以及他本人的努力怎样使伽罗华重新受到注意做了反思： <br />
<div class="spctrl"></div>
　　过分地追求简洁是导致这一缺憾的原因。人们在处理像纯粹代数这样抽象和神秘的事物时，应该首先尽力避免这样做。事实上，当你试图引寻读者远离习以为常的思路进入较为困惑的领域时，清晰性是绝对必需的，就像笛卡尔说过的那样：&#8220;在讨论超前的问题时务必空前地清晰。&#8221;伽罗华太不把这条箴言放在心上，而我们可以理解这些杰出的数学家想必认为，通过他们审慎的忠告所表现的苛刻，设法使这个充满才华但尚无经验的初出茅庐者转回到正确的轨道上来是合适的。 <br />
<div class="spctrl"></div>
　　他们苛评的这位作者，在他们看来是勤奋和富有进取心的，他可以从他们的忠告中获益。 <br />
<div class="spctrl"></div>
　　但是现在一切都改变了，伽罗华再也回不来了！我们不要再过分地作无用的批评，让我们把缺憾抛开，找一找有价值的东西&#8230;&#8230; <br />
<div class="spctrl"></div>
　　我的热心得到了好报。在填补了一些细小的缺陷后，我看出伽罗华用来证明这个美妙的定理的方法是完全正确的，在那个瞬间，我体验到一种强烈的愉悦。
<div class="bpctrl"></div>
<h2 class="">附：伽罗华的遗书</h2>
　　我请求我的爱国同胞们，我的朋友们，不要指责我不是为我的国家而死。<br />
<div class="spctrl"></div>
　　我是作为一个不名誉的风骚女人和她的两个受骗者的牺牲品而死的。我将在可耻的诽谤中结束我的生命。噢！为什么要为这么微不足道的，这么可鄙的事去死呢？我恳求苍天为我作证，只有武力和强迫才使我在我曾想方设法避开的挑衅中倒下。 <br />
<div class="spctrl"></div>
　　我亲爱的朋友： <br />
<div class="spctrl"></div>
　　我已经得到分析学方面的一些新发现&#8230;&#8230; <br />
<div class="spctrl"></div>
　　在我一生中，我常常敢于预言当时我还不十分有把握的一些命题。但是我在这里写下的这一切已经清清楚楚地在我的脑海里一年多了，我不愿意使人怀疑我宣布了自己未完全证明的定理。 <br />
<div class="spctrl"></div>
　　请公开请求雅可比或高斯就这些定理的重要性（不是就定理的正确与否）发表他们的看法。然后，我希望有人会发现将这一堆东西整理清楚会是很有益处的一件事。 <br />
<div class="spctrl"></div>
　　热烈地拥抱你 <br />
<div class="spctrl"></div>
　　—— 伽罗华 <br />
<div class="spctrl"></div>
　　评：伽罗华的想法是有道理的，但事实这道理只是在探求新知时特别有用。 <br />
<div class="spctrl"></div>
　　伽罗华的成就成为整个数学界的成就是一件远比伽罗华想象的更艰难更平常的过程。
<div class="bpctrl"></div>
<h2 class="">圆周率破案</h2>
　　伽罗华，他只活了21岁就去世了。不过，他的生命虽然短暂，却对方程的理论作出了杰出的贡献。不但如此，关于他还有一个用圆周率破案的传奇。<br />
<div class="spctrl"></div>
　　这天，伽罗华得到了一个伤心的消息，他的一位老朋友普柏被人刺死了，家里的钱财被洗劫一空。而女看门人告诉伽罗华，警察在勘察现场的时候，看见鲁柏手里紧紧捏着半块没有吃完的苹果馅饼。女看门人认为，凶手一定就在这幢公寓里，因为出事前后，她一直在值班室，没有看见有人进出公寓。可是这座公寓共有四层楼，每层楼有15个房间，共居住着一百多人，这里面到底谁会是凶手呢？<br />
<div class="spctrl"></div>
　　伽罗华把女看门人提供的情况前前后后分析了一番：；鲁柏手里捏着半块馅饼，是不是想表达什么意思呢?伽罗华忽然想到：馅饼，英文里的读音是&#8220;派&#8221;，而"派"正好和表示圆周率的读音相同。而鲁柏身前酷爱数学，伽罗华知道，他经常把圆周率的近似值取成3.14来做计算。&#8220;派&#8221;——3.14，鲁柏会不会是用这种方法来提示人——杀害他的凶手的房间毫正是314呢？<br />
<div class="spctrl"></div>
　　为了证实自己的怀疑，伽罗华问女看门人：&#8220;314号房间住的是谁？&#8221;<br />
<div class="spctrl"></div>
　　&#8220;是米赛尔。&#8221;女看门人答道。<br />
<div class="spctrl"></div>
　　&#8220;这个人怎样？&#8221;伽罗华追问到。<br />
<div class="spctrl"></div>
　　&#8220;不怎样，又爱喝酒，又爱赌钱。&#8221;<br />
<div class="spctrl"></div>
　　&#8220;他现在还在房间吗？&#8221;伽罗华追问得更急切了。<br />
<div class="spctrl"></div>
　　&#8220;不在了，他昨天就搬走了。&#8221;<br />
<div class="spctrl"></div>
　　&#8220;搬走了？&#8221;伽罗华一呆，&#8220;不好，他跑了！&#8221;<br />
<div class="spctrl"></div>
　　&#8220;你怀疑是他干的吗？&#8221;女看门人问。<br />
<div class="spctrl"></div>
　　&#8220;嗯，如果我没有猜错的话，他一定就是杀害鲁柏的凶手！&#8221;<br />
<div class="spctrl"></div>
　　伽罗华向女看门人讲述了自己的推理过程，他们立刻把这些情况报告了警要求缉捕米赛尔。米赛尔很快被捉拿归案，经过审讯，他果然招认了他因见财起意杀害鲁柏的全过程。就是这半块馅饼，让鲁柏在被害之际还提供了凶手的线索，并被伽罗华注意到，从而抓到了真凶。
 <img src ="http://www.blogjava.net/kainster/aggbug/239672.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-11-10 14:51 <a href="http://www.blogjava.net/kainster/archive/2008/11/10/239672.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>瑞星也太无耻了吧</title><link>http://www.blogjava.net/kainster/archive/2008/11/09/239508.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Sun, 09 Nov 2008 03:26:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/11/09/239508.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/239508.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/11/09/239508.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/239508.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/239508.html</trackback:ping><description><![CDATA[<p>事情是这样的：周五上午的时候我发现自己的Outlook Express里的所有邮件都没有了，当时还以为是中毒了，杀毒杀了半天也没好，把Outlook Express换成 office里的 Outlook也无济于事。收完邮件以后，再打开还是全部邮件都没有了。折腾了一整天之后，只好放弃。<br />
&nbsp;&nbsp;&nbsp; 谁知道周六的时候出来一条新闻我才知道居然是卡卡助手的bug，这到底是杀毒软件还是病毒软件啊。这倒也算了，忍一忍就过去了，但是这之后让我彻底不爽的是瑞星的道歉声明，没看出一点儿肇事者的歉意，倒好像是瑞星挽救了我们这些用户似的。以下是瑞星官网上的道歉声明。<br />
&nbsp;&nbsp; 首先，瑞星说&#8220;在该事件出现两小时内升级产品修复了BUG，然后发布了道歉声明和热线电话。&#8221;，你是修复了bug但是你卡卡助手也没有给在两小时内自动升级啊，你说你修复了Bug对我们用户来说管什么用。还有道歉声明你发在自己网站上谁知道？谁会没事去你瑞星网站上溜达。我还是周六早上在新浪上看到才知道是卡卡助手干的，这已经一天过去了，耽误了多少事情？<br />
&nbsp; 其次，瑞星说，&#8220;本次事件影响到的用户总数可能达到数千台电脑&#8221;，怎么可能？大致算一下，用outlook express的人都多少？同时又装了卡卡助手的有多少？宣传的时候你就说卡卡助手的用户数量有多少多少，这个时候怎么往少里说呢。</p>
<p><br />
『快讯』11月8日下午，瑞星公司再次就卡卡助手事故向用户表示道歉，并发布连夜赶制的专用修复工具，以及该工具的使用说明，用户按照此说明操作，即可找回自己的邮件和数据。 <br />
　　11月7日上午，瑞星卡卡上网安全助手出现bug，导致部分用户的Outlook Express收件箱丢失。此次事件仅影响微软操作系统自带的Outlook Express，而Office办公软件所集成的Outlook软件不受影响。</p>
<p>　　<span style="color: red">瑞星公司在该事件出现两小时内升级产品修复了BUG，然后发布了道歉声明和热线电话</span>。截至11月8日中午，共有近400名用户向瑞星求助，瑞星工程师已经帮助这些用户找回了丢失的邮件。</p>
<p>　　由于用户使用环境的复杂，该修复工具在极少数情况下可能会恢复不成功，如果出现此情况，请拨打紧急救援电话：010-62641700，瑞星工程师随时等候为您提供一对一的服务。</p>
<p>　　<span style="color: red">瑞星公司预计，本次事件影响到的用户总数可能达到数千台电脑</span>，并非像某些媒体报道的那样有&#8220;上千万人受害&#8221;，请广大用户不必因此而恐慌。新闻中出现的数据提供方——艾瑞咨询公司否认曾接受过该记者的采访。</p>
<p>　　瑞星恳请受该事件影响的用户下载使用该修复工具，或者拨打热线电话，通过和瑞星公司联系解决该问题，各个论坛上网友提供的恢复方法，不一定能取得满意的效果。</p>
<p>　　瑞星公司再次向受损用户表示诚挚的歉意，恳请某些媒体在监督批评的同时，帮助瑞星把修复工具、热线电话等信息传递给用户，尽快解决用户的问题。关于该事故的原因，瑞星公司会进行深刻的检讨和反思，但是目前最重要的工作是尽量帮助用户找回丢失的邮件，将损失降至最低。<br />
</p>
<img src ="http://www.blogjava.net/kainster/aggbug/239508.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-11-09 11:26 <a href="http://www.blogjava.net/kainster/archive/2008/11/09/239508.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几种排序</title><link>http://www.blogjava.net/kainster/archive/2008/11/05/238902.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Wed, 05 Nov 2008 14:09:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/11/05/238902.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/238902.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/11/05/238902.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/238902.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/238902.html</trackback:ping><description><![CDATA[<p align="left">最近看算法导论，把几种排序重新写一下吧</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">stdlib.h</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">stdio.h</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">iostream</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">windows.h</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;std;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">#define</span><span style="color: #000000">&nbsp;MAX&nbsp;999999;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Merge(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">A,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;p,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;q,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;r)<br />
<img id="Codehighlighter1_160_501_Open_Image" onclick="this.style.display='none'; Codehighlighter1_160_501_Open_Text.style.display='none'; Codehighlighter1_160_501_Closed_Image.style.display='inline'; Codehighlighter1_160_501_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_160_501_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_160_501_Closed_Text.style.display='none'; Codehighlighter1_160_501_Open_Image.style.display='inline'; Codehighlighter1_160_501_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_160_501_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_160_501_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;q</span><span style="color: #000000">-</span><span style="color: #000000">p</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;r</span><span style="color: #000000">-</span><span style="color: #000000">q;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">L&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[n1</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">R&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[n2</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">n1;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;A[&nbsp;p</span><span style="color: #000000">+</span><span style="color: #000000">i&nbsp;];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">n2;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;A[&nbsp;q</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">+</span><span style="color: #000000">i&nbsp;];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;L[n1]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MAX;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;R[n2]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MAX;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;k</span><span style="color: #000000">=</span><span style="color: #000000">p;k</span><span style="color: #000000">&lt;=</span><span style="color: #000000">r;k</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_408_499_Open_Image" onclick="this.style.display='none'; Codehighlighter1_408_499_Open_Text.style.display='none'; Codehighlighter1_408_499_Closed_Image.style.display='inline'; Codehighlighter1_408_499_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_408_499_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_408_499_Closed_Text.style.display='none'; Codehighlighter1_408_499_Open_Image.style.display='inline'; Codehighlighter1_408_499_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_408_499_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_408_499_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(L[i]</span><span style="color: #000000">&lt;=</span><span style="color: #000000">R[j])<br />
<img id="Codehighlighter1_429_457_Open_Image" onclick="this.style.display='none'; Codehighlighter1_429_457_Open_Text.style.display='none'; Codehighlighter1_429_457_Closed_Image.style.display='inline'; Codehighlighter1_429_457_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_429_457_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_429_457_Closed_Text.style.display='none'; Codehighlighter1_429_457_Open_Image.style.display='inline'; Codehighlighter1_429_457_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_429_457_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_429_457_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[k]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;L[i];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img id="Codehighlighter1_468_496_Open_Image" onclick="this.style.display='none'; Codehighlighter1_468_496_Open_Text.style.display='none'; Codehighlighter1_468_496_Closed_Image.style.display='inline'; Codehighlighter1_468_496_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_468_496_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_468_496_Closed_Text.style.display='none'; Codehighlighter1_468_496_Open_Image.style.display='inline'; Codehighlighter1_468_496_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_468_496_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_468_496_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[k]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;R[j];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;MergeSort(&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">A,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;p,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;r&nbsp;)<br />
<img id="Codehighlighter1_543_645_Open_Image" onclick="this.style.display='none'; Codehighlighter1_543_645_Open_Text.style.display='none'; Codehighlighter1_543_645_Closed_Image.style.display='inline'; Codehighlighter1_543_645_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_543_645_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_543_645_Closed_Text.style.display='none'; Codehighlighter1_543_645_Open_Image.style.display='inline'; Codehighlighter1_543_645_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_543_645_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_543_645_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;q;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(p</span><span style="color: #000000">&lt;</span><span style="color: #000000">r)<br />
<img id="Codehighlighter1_563_643_Open_Image" onclick="this.style.display='none'; Codehighlighter1_563_643_Open_Text.style.display='none'; Codehighlighter1_563_643_Closed_Image.style.display='inline'; Codehighlighter1_563_643_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_563_643_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_563_643_Closed_Text.style.display='none'; Codehighlighter1_563_643_Open_Image.style.display='inline'; Codehighlighter1_563_643_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_563_643_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_563_643_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(p</span><span style="color: #000000">+</span><span style="color: #000000">r)&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MergeSort(A,p,q);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MergeSort(A,q</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,r);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Merge(A,p,q,r);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;PrintArray(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">A,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;length)<br />
<img id="Codehighlighter1_683_752_Open_Image" onclick="this.style.display='none'; Codehighlighter1_683_752_Open_Text.style.display='none'; Codehighlighter1_683_752_Closed_Image.style.display='inline'; Codehighlighter1_683_752_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_683_752_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_683_752_Closed_Text.style.display='none'; Codehighlighter1_683_752_Open_Image.style.display='inline'; Codehighlighter1_683_752_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_683_752_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_683_752_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">length;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">(A</span><span style="color: #000000">+</span><span style="color: #000000">i)&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;endl;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;InsertionSort(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">A,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;length)<br />
<img id="Codehighlighter1_794_941_Open_Image" onclick="this.style.display='none'; Codehighlighter1_794_941_Open_Text.style.display='none'; Codehighlighter1_794_941_Closed_Image.style.display='inline'; Codehighlighter1_794_941_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_794_941_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_794_941_Closed_Text.style.display='none'; Codehighlighter1_794_941_Open_Image.style.display='inline'; Codehighlighter1_794_941_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_794_941_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_794_941_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;j</span><span style="color: #000000">&lt;</span><span style="color: #000000">length;j</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_824_939_Open_Image" onclick="this.style.display='none'; Codehighlighter1_824_939_Open_Text.style.display='none'; Codehighlighter1_824_939_Closed_Image.style.display='inline'; Codehighlighter1_824_939_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_824_939_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_824_939_Closed_Text.style.display='none'; Codehighlighter1_824_939_Open_Image.style.display='inline'; Codehighlighter1_824_939_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_824_939_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_824_939_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;key&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;A[j];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;j</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(i</span><span style="color: #000000">&gt;=</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;A[i]&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;key)<br />
<img id="Codehighlighter1_889_919_Open_Image" onclick="this.style.display='none'; Codehighlighter1_889_919_Open_Text.style.display='none'; Codehighlighter1_889_919_Closed_Image.style.display='inline'; Codehighlighter1_889_919_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_889_919_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_889_919_Closed_Text.style.display='none'; Codehighlighter1_889_919_Open_Image.style.display='inline'; Codehighlighter1_889_919_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_889_919_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_889_919_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[i</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;A[i];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">--</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[i</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;key;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;BubbleSort(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">A,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;length)<br />
<img id="Codehighlighter1_979_1222_Open_Image" onclick="this.style.display='none'; Codehighlighter1_979_1222_Open_Text.style.display='none'; Codehighlighter1_979_1222_Closed_Image.style.display='inline'; Codehighlighter1_979_1222_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_979_1222_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_979_1222_Closed_Text.style.display='none'; Codehighlighter1_979_1222_Open_Image.style.display='inline'; Codehighlighter1_979_1222_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_979_1222_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_979_1222_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;temp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;flag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">length;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_1040_1220_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1040_1220_Open_Text.style.display='none'; Codehighlighter1_1040_1220_Closed_Image.style.display='inline'; Codehighlighter1_1040_1220_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1040_1220_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1040_1220_Closed_Text.style.display='none'; Codehighlighter1_1040_1220_Open_Image.style.display='inline'; Codehighlighter1_1040_1220_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1040_1220_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1040_1220_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j</span><span style="color: #000000">=</span><span style="color: #000000">length</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;j</span><span style="color: #000000">&gt;</span><span style="color: #000000">i;j</span><span style="color: #000000">--</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(A[j]</span><span style="color: #000000">&lt;</span><span style="color: #000000">A[j</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">])<br />
<img id="Codehighlighter1_1110_1187_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1110_1187_Open_Text.style.display='none'; Codehighlighter1_1110_1187_Closed_Image.style.display='inline'; Codehighlighter1_1110_1187_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1110_1187_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1110_1187_Closed_Text.style.display='none'; Codehighlighter1_1110_1187_Open_Image.style.display='inline'; Codehighlighter1_1110_1187_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1110_1187_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1110_1187_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;A[j];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[j]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;A[j</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[j</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;temp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(flag&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;RandArray(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">A,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;length)<br />
<img id="Codehighlighter1_1259_1309_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1259_1309_Open_Text.style.display='none'; Codehighlighter1_1259_1309_Closed_Image.style.display='inline'; Codehighlighter1_1259_1309_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1259_1309_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1259_1309_Closed_Text.style.display='none'; Codehighlighter1_1259_1309_Open_Image.style.display='inline'; Codehighlighter1_1259_1309_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_1259_1309_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1259_1309_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">length;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;rand()</span><span style="color: #000000">%</span><span style="color: #000000">100</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;main()<br />
<img id="Codehighlighter1_1323_1869_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1323_1869_Open_Text.style.display='none'; Codehighlighter1_1323_1869_Closed_Image.style.display='inline'; Codehighlighter1_1323_1869_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1323_1869_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1323_1869_Closed_Text.style.display='none'; Codehighlighter1_1323_1869_Open_Image.style.display='inline'; Codehighlighter1_1323_1869_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_1323_1869_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1323_1869_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;start;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;length&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10000</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">intArray&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[length];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;RandArray(intArray,length);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;GetTickCount();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;BubbleSort(intArray,length);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">BubbleSort&nbsp;costs</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;GetTickCount()</span><span style="color: #000000">-</span><span style="color: #000000">start&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;endl;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;RandArray(intArray,length);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;GetTickCount();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;InsertionSort(intArray,length);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">InsertionSort&nbsp;costs</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;GetTickCount()</span><span style="color: #000000">-</span><span style="color: #000000">start&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;endl;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;RandArray(intArray,length);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;GetTickCount();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;MergeSort(intArray,</span><span style="color: #000000">0</span><span style="color: #000000">,length</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">MergeSort&nbsp;costs</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;GetTickCount()</span><span style="color: #000000">-</span><span style="color: #000000">start&nbsp;</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">&nbsp;endl;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">i;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.blogjava.net/kainster/aggbug/238902.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-11-05 22:09 <a href="http://www.blogjava.net/kainster/archive/2008/11/05/238902.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>怎么就不对了呢</title><link>http://www.blogjava.net/kainster/archive/2008/10/28/237080.html</link><dc:creator>kainster</dc:creator><author>kainster</author><pubDate>Tue, 28 Oct 2008 04:58:00 GMT</pubDate><guid>http://www.blogjava.net/kainster/archive/2008/10/28/237080.html</guid><wfw:comment>http://www.blogjava.net/kainster/comments/237080.html</wfw:comment><comments>http://www.blogjava.net/kainster/archive/2008/10/28/237080.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kainster/comments/commentRss/237080.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kainster/services/trackbacks/237080.html</trackback:ping><description><![CDATA[<p>For a positive integer <var>n</var>, let &#963;<sub>2</sub>(<var>n</var>) be the sum of the squares of its divisors. For example,
<div align="center" ;>&#963;<sub>2</sub>(10) = 1 + 4 + 25 + 100 = 130.</div>
<p>&nbsp;</p>
<p>Find the sum of all <var>n</var>, 0 <img style="vertical-align: middle" height="10" alt="" src="http://projecteuler.net/images/symbol_lt.gif" width="10" border="0" /> <var>n</var> <img style="vertical-align: middle" height="10" alt="" src="http://projecteuler.net/images/symbol_lt.gif" width="10" border="0" /> 64,000,000 such that &#963;<sub>2</sub>(<var>n</var>) is a perfect square. </p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Collections.Generic;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Text;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;Prob211<br />
<img id="Codehighlighter1_86_1264_Open_Image" onclick="this.style.display='none'; Codehighlighter1_86_1264_Open_Text.style.display='none'; Codehighlighter1_86_1264_Closed_Image.style.display='inline'; Codehighlighter1_86_1264_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_86_1264_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_86_1264_Closed_Text.style.display='none'; Codehighlighter1_86_1264_Open_Image.style.display='inline'; Codehighlighter1_86_1264_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_86_1264_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_86_1264_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />
<img id="Codehighlighter1_110_1262_Open_Image" onclick="this.style.display='none'; Codehighlighter1_110_1262_Open_Text.style.display='none'; Codehighlighter1_110_1262_Closed_Image.style.display='inline'; Codehighlighter1_110_1262_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_110_1262_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_110_1262_Closed_Text.style.display='none'; Codehighlighter1_110_1262_Open_Image.style.display='inline'; Codehighlighter1_110_1262_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_110_1262_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_110_1262_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;NUM&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">64000000</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;为了方便，values数组从1开始计数</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">[]&nbsp;values&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">[NUM&nbsp;];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;验证某个数是不是完全平方数</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;IsPerfect(</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;num)<br />
<img id="Codehighlighter1_297_451_Open_Image" onclick="this.style.display='none'; Codehighlighter1_297_451_Open_Text.style.display='none'; Codehighlighter1_297_451_Closed_Image.style.display='inline'; Codehighlighter1_297_451_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_297_451_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_297_451_Closed_Text.style.display='none'; Codehighlighter1_297_451_Open_Image.style.display='inline'; Codehighlighter1_297_451_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_297_451_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_297_451_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;sq&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">long</span><span style="color: #000000">)Math.Sqrt(num);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(sq&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;sq&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;num)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Prob211()<br />
<img id="Codehighlighter1_491_1145_Open_Image" onclick="this.style.display='none'; Codehighlighter1_491_1145_Open_Text.style.display='none'; Codehighlighter1_491_1145_Closed_Image.style.display='inline'; Codehighlighter1_491_1145_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_491_1145_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_491_1145_Closed_Text.style.display='none'; Codehighlighter1_491_1145_Open_Image.style.display='inline'; Codehighlighter1_491_1145_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_491_1145_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_491_1145_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;values.Length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;sum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;values.Length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_666_1098_Open_Image" onclick="this.style.display='none'; Codehighlighter1_666_1098_Open_Text.style.display='none'; Codehighlighter1_666_1098_Closed_Image.style.display='inline'; Codehighlighter1_666_1098_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_666_1098_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_666_1098_Closed_Text.style.display='none'; Codehighlighter1_666_1098_Open_Image.style.display='inline'; Codehighlighter1_666_1098_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_666_1098_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_666_1098_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;num&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;对于i的每个倍数都加上&nbsp;i*i</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(num&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;values.Length)<br />
<img id="Codehighlighter1_793_883_Open_Image" onclick="this.style.display='none'; Codehighlighter1_793_883_Open_Text.style.display='none'; Codehighlighter1_793_883_Closed_Image.style.display='inline'; Codehighlighter1_793_883_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_793_883_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_793_883_Closed_Text.style.display='none'; Codehighlighter1_793_883_Open_Image.style.display='inline'; Codehighlighter1_793_883_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_793_883_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_793_883_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values[num]&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;i;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;i;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;判断当前数是否是完全平方数</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(IsPerfect(values[i]))<br />
<img id="Codehighlighter1_976_1084_Open_Image" onclick="this.style.display='none'; Codehighlighter1_976_1084_Open_Text.style.display='none'; Codehighlighter1_976_1084_Closed_Image.style.display='inline'; Codehighlighter1_976_1084_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_976_1084_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_976_1084_Closed_Text.style.display='none'; Codehighlighter1_976_1084_Open_Image.style.display='inline'; Codehighlighter1_976_1084_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_976_1084_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_976_1084_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;i;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">:</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;values[i]);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(sum);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
<img id="Codehighlighter1_1195_1256_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1195_1256_Open_Text.style.display='none'; Codehighlighter1_1195_1256_Closed_Image.style.display='inline'; Codehighlighter1_1195_1256_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1195_1256_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1195_1256_Closed_Text.style.display='none'; Codehighlighter1_1195_1256_Open_Image.style.display='inline'; Codehighlighter1_1195_1256_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1195_1256_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1195_1256_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prob211();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<img src ="http://www.blogjava.net/kainster/aggbug/237080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kainster/" target="_blank">kainster</a> 2008-10-28 12:58 <a href="http://www.blogjava.net/kainster/archive/2008/10/28/237080.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>