<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[RedCastle]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[泡泡雪言]]></description>
<link>http://hi.baidu.com/redcastle</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[一叶知秋，有时候，只言片语就能抛砖引玉]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/c568dcb43a559e798bd4b2b2.html]]></link>
        <description><![CDATA[
		
		<p>ps：以下文字都是[只言片语]，可能没有任何联系，但有意思。</p>
<p>1.科学带给人类相互残杀的工具，而宗教带来的是杀人的动机。</p>
<p>2.有位生物系的学生对他女朋友痴迷鲜花非常不理解：&ldquo;为什么一定要在过节的时候让我送你一簇植物的生殖器你才开心呢？&rdquo;</p>
<p>3.一位程序员好奇竟然有人半夜闹钟起来偷菜：&ldquo;那么费劲改动人家数据库里的一个值，有意思吗？&rdquo;</p>
<p>4.无心拈花惹草，只想一览巅峰风景。</p>
<p>5.Life is not measured by the number of breaths we take but by the places and moments that take our breadth away.</p>
<p>6.床上你同样卖力，那笑声让你自己都感到陌生。</p> <a href="http://hi.baidu.com/redcastle/blog/item/c568dcb43a559e798bd4b2b2.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%D2%E2%CA%B6%C1%F7">意识流</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/c568dcb43a559e798bd4b2b2.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-15  14:54</pubDate>
        <category><![CDATA[意识流]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/c568dcb43a559e798bd4b2b2.html</guid>
</item>

<item>
        <title><![CDATA[樱]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/fa36ad18b4971a0f35fa41b3.html]]></link>
        <description><![CDATA[
		
		<p align="center">《樱》</p>
<p align="center">词：有森聡美</p>
<p align="center">选择了柔软且温暖的地方 <br>
没有发现在人们笑容的背后的眼泪 <br>
一生就这么自欺欺人的过来了 <br>
我想回头看度过的每一日</p>
<p align="center">为了生存下去 樱花撒落也没看见 <br>
连花开的梦 也不知道 <br>
何时才能迎来新鲜的日子 <br>
用我的一生 去探索</p>
<p align="center">向着冰冷与猛烈的风 <br>
不闭上眼睛 努力地向目的地前进 <br>
想要变得更坚强 哪怕一点点也好 <br>
每当流泪的时候 温柔也习以为常</p>
<p align="center">樱花飞舞 多少梦想开花 <br>
不断抬头仰望 淡红色的樱花 <br>
何时才能迎来新鲜的日子 <br>
用我的一生 散发出光芒</p>
<p align="center">为了生存下去 樱花撒落也没看见 <br>
连花开的梦 也不知道 <br>
何时才能迎来新鲜的日子 <br>
用我的一生 去探索</p>
<p align="center"><br>
樱花飞舞 多少梦想开花 <br>
不断抬头仰望 淡红色的樱花 <br>
何时才能迎来新鲜的日子 <br>
用我的一生 散发出光芒</p> <a href="http://hi.baidu.com/redcastle/blog/item/fa36ad18b4971a0f35fa41b3.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/fa36ad18b4971a0f35fa41b3.html#comment">查看评论</a>]]></description>
        <pubDate>2009-05-24  21:15</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/fa36ad18b4971a0f35fa41b3.html</guid>
</item>

<item>
        <title><![CDATA[[一句话技巧]如何解压.gz文件]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/a21ddff90a65e351252df20f.html]]></link>
        <description><![CDATA[
		
		<p>gzip -d xxx.tar.gz|tar xvpf - -C target_dir</p>
<p>解释：gzip -d 解压.gz文件，tar -xf解压.tar文件</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%D2%BB%BE%E4%BB%B0%BC%BC%C7%C9">一句话技巧</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/a21ddff90a65e351252df20f.html#comment">查看评论</a>]]></description>
        <pubDate>2009-04-24  09:03</pubDate>
        <category><![CDATA[一句话技巧]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/a21ddff90a65e351252df20f.html</guid>
</item>

<item>
        <title><![CDATA[［一句话技巧］在ubuntu下显示隐藏文件]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/f05d7ef07a35d4cb7931aa7b.html]]></link>
        <description><![CDATA[
		
		在ubuntu的File Browser里，按Ctrl+H可以显示隐藏文件和文件夹。 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%D2%BB%BE%E4%BB%B0%BC%BC%C7%C9">一句话技巧</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/f05d7ef07a35d4cb7931aa7b.html#comment">查看评论</a>]]></description>
        <pubDate>2009-04-20  15:55</pubDate>
        <category><![CDATA[一句话技巧]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/f05d7ef07a35d4cb7931aa7b.html</guid>
</item>

<item>
        <title><![CDATA[Google Music升级了]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/c8d5993d743f9608baa1679a.html]]></link>
        <description><![CDATA[
		
		<p>google music是一个试听/下载正版mp3的网站，今天登上后发现升级了，添加了一个很有潜质的功能：泡泡挑歌（<a href="http://www.google.cn/music/songscreener">http://www.google.cn/music/songscreener</a>）。</p>
<p>通过调节<font size="5">节奏</font>、<font size="5">声调</font>、<font size="5">音色</font>、<font size="5">年代</font>、<font size="5">歌手</font>、<font size="5">流派</font>、<font size="5">语言</font>等属性来自动挑选。一个很不错的尝试，此功能必火！</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%CD%E6%CB%A3">玩耍</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/c8d5993d743f9608baa1679a.html#comment">查看评论</a>]]></description>
        <pubDate>2009-03-29  22:37</pubDate>
        <category><![CDATA[玩耍]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/c8d5993d743f9608baa1679a.html</guid>
</item>

<item>
        <title><![CDATA[[转]10分钟LaTeX入门]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/c789053b6658e3e214cecb6c.html]]></link>
        <description><![CDATA[
		
		<em>1 安装CTEX中文套件<br>
<br>
1.1 初始安装<br>
下载ctex中文套件(www.ctex.org).<br>
安装ctex中文套件,自定义安装到D盘.<br>
升级ghostscript.<br>
升级gsview,在options-&gt;easy configure下选择升级的ghostscript.<br>
升级winedt,直接覆盖安装.<br>
MiKTEX使用升级向导升级.<br>
<br>
1.2 升级添加宏包<br>
已编译的,有.sty或.cls文件的,只需把文件放在localtexmf\tex\LaTeX\下的某个目录下,然后再刷新系统的文件名数据库就可以使用了.teTeX和fpTeX使用texhash命令.<br>
或者把这些宏包和TEX源文件放在同一目录下,不用刷新文件名数据库,但只有同一个目录下的文件可以使用这些宏包.<br>
如果使用的是宏包的源文件.先读readme文件,对.ins文件运行LaTeX命令生成.sty文件,对.dtx文件运行LaTeX命令生成帮助文档.<br>
<br>
2 软件配置<br>
<br>
2.1 winedt<br>
<br>
2.1.1 缺省定义gsview工具按钮有可能无法使用.需要在注册表更改psfile下面的shell-&gt;open-&gt;command键值.<br>
2.1.2 运行WinEdt目录下的宏可以添加metapost工具.<br>
2.1.3 右键点击WinEdt状态栏,确认show custom info a已选取.点击对应的状态栏可以激活--src选项,这个是使用dvi search的必要条件.<br>
<br>
3 新手入门<br>
<br>
3.1 参考资料<br>
[lshort中文版],[ctex-faq],薛定宇著[LaTeX科学文件处理软件入门].<br>
清泉编制文档模板.<br>
<br>
3.2 测试LaTeX<br>
<br>
3.2.1 英文例子<br>
\documentclass{article}<br>
\begin{document}<br>
This is a test file.<br>
\end{document}<br>
这个例子需要保存为.tex后缀的文件,然后用LaTeX编译,生成的DVI文件可以用DVI浏览器进行查看.<br>
或者用dvips转换成PostScript文件.假设文件名是test.ctx.生成PostScript 文件的完整编译过程是:<br>
LaTeX test<br>
dvips test<br>
<br>
3.3 编写TEX文档的编辑器<br>
windows下使用winedt,或者是UltraEdit,Editplus.<br>
linux下使用vi,Emacs.<br>
<br>
4 中文处理<br>
<br>
4.1 CJK还是CCT<br>
推荐使用CJK处理中文.<br>
CJK比CCT的优越之处有以下几点:<br>
1. 字体定义采用LaTeX NFSS标准,生成的DVI文件不必像CCT那样需要用patchdvi处理后才能预览和打印.而且一般GB编码的文件也不必进行预处理就可直接用LaTeX命令进行编译.<br>
2. 可使用多种TrueType字体和Type1字体,生成的PDF文件更清楚,漂亮.<br>
3. 能同时在文章中使用多种编码的文字,如中文简体繁体日文韩文等.<br>
当然,CCT在一些细节上,如字体可用中文字号,字距,段首缩进等更符合中文的习惯.而CJK就没有针对中文习惯指定特殊的排版标准.<br>
<br>
4.2 CJK的例子<br>
\documentclass{article}<br>
\usepackage{CJK}<br>
\begin{document}<br>
\begin{CJK*}{GBK}{kai}<br>
这是中文楷体字。<br>
\end{CJK*}<br>
\end{document}<br>
<br>
4.3 CJK和CJK*<br>
不建议使用CJK模式.<br>
CJK*模式自动忽略中文字符间的所有空格.加空格的方法是在空格前面加上\ 字符.实际上CJK*模式忽略中文字符后面的空格,因此中文后面如果接着英文,必须加上保护的空格\ 或者~ 符号,否则可能造成断行错误.<br>
<br>
4.4 中英文混排时正确分行<br>
首先,英文标点符号后要留空格,这是英文的习惯,否则TEX无法断句.<br>
其次,要用空格隔开中英文字符,TEX才能正确分行.<br>
CJK宏包重新定义了符号~的意义.~的原始定义是不可断行的空格,CJK将其重定义成一个比较合适的弹性距离,大约相当于四分之一个汉字宽度,用于分隔中英文字符.我们通过使用命令<br>
\CJKtilde<br>
来实现~的重定义.如果要恢复原始定义,可以用命令<br>
\standardtilde<br>
注意:在CJK*模式下中文字符后面的空格会被忽略,因此中文字符后面必须加上保护的空格\ 或者~符号来隔开英文字符.<br>
<br>
4.5 生成支持中文拷贝粘贴的PDF文件<br>
生成可以拷贝粘贴中文的PDF文件目前只有dvipdfmx(原名dvipdfm-cjk)可以做到,它必须配置成直接使用中文TrueType字库.<br>
<br>
4.6 CJK中使用的字库<br>
可以使用矢量字库如Type1或是TrueType字库,也可以使用点阵字库如pk字库.<br>
在CJK中可以使用Type1字库和TrueType字库,都能产生很好效果的输出,但有许多细微的差别,输出结果取决于所用的工具.<br>
1. 使用dvips生成PostScript 文件<br>
dvips可以直接使用Type1字库,生成的PostScript文件中包含了字符的矢量描述,具有很好的缩放效果.<br>
dvips不能直接使用TrueType字库,因此必须通过ttf2pk生成中间的pk字库,这是一种点阵字库,所以生成的PostScript文件在效果较差.<br>
2. 使用dvipdfm生成PDF文件和dvips类似,可以直接使用Type1字库或者通过ttf2pk间接使用TrueType字库.<br>
3. 使用pdfLaTeX生成PDF文件可以直接使用两种字库,因此都可以产生效果很好的输出.<br>
4. 使用dvipdfmx生成PDF文件可以直接使用两种字库,因此都可以产生效果很好的输出.而且直接使用TrueType字库时生成的PDF文件是唯一能支持对中文内容进行正常拷贝粘贴的.(推荐使用)<br>
<br>
5 帮助文档<br>
<br>
5.1 宏包文档<br>
TEX系统安装时候带的LaTeX宏包,都可以在TEX 的安装目录下的<br>
texmf\doc\LaTeX<br>
找到<br>
<br>
5.2 参考书<br>
LaTeX: A Document Preparation System<br>
LaTeX for Word Processor Users<br>
lshort (The Not So Short Introduction to LaTeX2e)<br>
A Gentle Introduction to TEX<br>
LaTeX2插图指南<br>
LaTeX2e for class and package writers<br>
The TeX Book<br>
LaTeX Manual<br>
<br>
5.3 查询LaTeX命令和参数的缺省定义<br>
首先你可以直接搜索相应的LaTeX宏包以及同一目录下的其他文件.如果你有宏包的源文件(.dtx) 的话,搜索源文件会更方便些.而且源文件中会有详细的说明.对于这些源文件,可以直接用LaTeX 编译,产生说明文档.LaTeX宏包的源文件一般放在texmf\source\LaTeX\目录下.<br>
例如LaTeX标准文档类的源文件就是texmf\source\LaTeX\base\classes.dtx<br>
如果这些文件里都找不到定义,则有可能在LaTeX内核中定义.你可以搜索texmf\source\LaTeX\base\目录下的其他.dtx文件,所有的LaTeX内核定义都在那里了.<br>
如果还没有的话,那就可能是TEX 的基本命令或者定义了,查询Donald E. Knuth的The TEXbook,CTEX FTP上可以下载该书的源文件.<br>
<br>
5.4 在ctex论坛http://bbs.ctex.org查找资料<br>
<br>
6 排版<br>
查阅参考资料.<br>
<br>
7 LaTeX辅助工具<br>
使用辅助工具可以方便LaTeX的编写工作.<br>
<br>
公式编辑器:<br>
TeXaide<br>
这个是MathType的TeX专用版本.它的使用方法和Word中的公式编辑器一样.<br>
</em><a href="http://www.dessci.com/en/products/texaide/" target="_blank"><em>http://www.dessci.com/en/products/texaide/</em></a><br>
<br>
<em>图形工具:<br>
metagraf<br>
可以生成MetaPost格式图型的制图工具.<br>
</em><a href="http://w3.mecanica.upm.es/metapost/metagraf.php" target="_blank"><em>http://w3.mecanica.upm.es/metapost/metagraf.php</em></a><br>
<em>ImageMagick<br>
多功能图形工具,可以转换图片格式把其他格式转存成eps格式.<br>
</em><a href="http://www.imagemagick.org/" target="_blank"><em>http://www.imagemagick.org/</em></a><br>
<br>
<em>制表工具:<br>
tablas<br>
用图形界面制表,再把表格转换成LaTeX编码.<br>
</em><a href="http://www.informatica.us.es/~calvo/latex.html" target="_blank"><em>http://www.informatica.us.es/~calvo/latex.html</em></a><br> <a href="http://hi.baidu.com/redcastle/blog/item/c789053b6658e3e214cecb6c.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%CD%E6%CB%A3">玩耍</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/c789053b6658e3e214cecb6c.html#comment">查看评论</a>]]></description>
        <pubDate>2009-03-17  23:02</pubDate>
        <category><![CDATA[玩耍]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/c789053b6658e3e214cecb6c.html</guid>
</item>

<item>
        <title><![CDATA[[转]可计算理论简介]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/d63fd22a12d01e93033bf69b.html]]></link>
        <description><![CDATA[
		
		<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在60年代的中国，如果一个大学生不懂工农业常识，例如混淆了韭菜麦子，可能会受到讥笑。本来，闻道有先后，树业有专工。要求一个领域的人理解另一个领域的知识是有些过分。在今天，如果一个计算机科学的硕士或博士不知道什么是不可判定问题，什么是停机问题，为什么停机问题不可解，什么是NP=?P问题，也有可能会受到讥笑。因为这些问题对于计算机科学而言，太基本、太重要了，它们都属于一门称为可计算理论的学科。是计算机科学研究人员应具备的修养型知识。</em></p>
<p><br>
<em>&nbsp;&nbsp;&nbsp;&nbsp; 可计算理论是关于计算机械本身的数学理论。20世纪前，计算机械总是&rdquo;算计&rdquo;别的对象，很少&rdquo;算计&rdquo;自己。20世纪 30年代，为了要解决一个基础问题，即是否有存在不可判定问题，数理逻辑 学家提出了几种不同的（后来证明是彼此等价的）关于算法的定义，从而建立了可计算性理论。<br>
科学家令计算机械 自己&rdquo;算计&rdquo;自己，奇迹出现了。图灵用对角线方法，把图灵机自己编码，搅进其自己的计算对象中，证明了停机问题不可解。在一定程度上说明了计算机（程序）的能力有限性。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 30年代前期，K.哥德尔和S.C.克林尼等人创立了递归函数论， 将数论函数的算法可计算性描述为递归性。30年代中期， A.M.图灵和E.L.波斯特彼此独立地提出了理想计算机的 概念，将问题的算法可解性描述为在具有严格定义的理想计算机上的可解性。30年代发展起来的算法理论，对 在40年代后期出现的存储程序型计算机的设计思想是有影响的。图灵提出的理想计算机（称为图灵机）中的一 种通用机就是存储程序型的。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 可计算理论主要内容有：自动机论与形式语言理论;程序理论(包括程序正确性证明、程 序验证等);形式语义学；算法分析和计算复杂性理 论。自动机理论和形式语言理论是50年 代发展起来的。前者的历史还可以上溯到30年代，因为图灵机就是一类自动机(无限自动机)。50年代以来一些 学者开始考虑与现实的计算机更相似的理想计算机，J. 诺伊曼在50年代初提出了有自繁殖功能的计算机的概念。</em></p>
<p><em>王浩在50年代中期提出了一种图灵机的变种，这是一种 比原来的图灵机更接近现实机器的机器。他还提出一种 存储带上的内容不能清除的机器，并证明这种机器是与图灵机等价的。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 60年代前期，又有人提出具有随机存取 存储器的计算机（简称RAM）以及多带图灵机等。 形式语言理论 导源于数理语言学中的乔姆斯基理 论。在这种理论中,形式语言分为四种:①0型语言；②1 型语言;③2型语言;④3型语言。相应地存在着0型、1型、 2 型、3型四种形式文法。1型语言又名上下文有关语言， 2型语言又名上下文无关语言，3型语言又名正则语言。其中2型语言最受人注意。60年代中期,还发现了这四类 语言与四类自动机之间的对应关系（见表形式语言与自 动机的关系） 在上表中，左边所列的语言恰好是右边与之对应的自动机所能识别的语言（见形式语言理论）。 程序设计理论 包括程序正确性证明和程序验证， 它的一些基本概念和方法是40年代后期诺伊曼和图灵等 人提出的。诺伊曼等在一篇论文中提出借助于证明来验证程序正确性的方法。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; J.T.施瓦兹和 M.戴维斯70年代后期提出了一种他们称之为&quot;正确程序 技术&quot;的软件技术。这种方法是先选定成千种基本程序模块，并借助已知的各种验证方法（包括程序正确性证 明）来保证这些基本程序的正确性。然后再提出一组能 保持正确性的程序组合规则。这样，就可以通过不断的 组合，生成各种各样的程序。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 有人指出，程序正确性证明技术所发展出来的&quot;循 环不变式&quot;，即一个程序中的某一循环的入口或出口点 上所附的谓词，有些文献中称作&quot;归纳断言&quot;，可以用来供程序研究用。也就是说，不像过去那样，对一个给 定的程序找出其若干个循环不变式，然后借助这些不变 式来证明这个程序的正确性；而是在编制这个程序之前， 根据对这一程序的要求，找出若干个循环不变式，然后根据这些不变式来生成这个程序。 自动程序设计的概念也是从40年代提出的。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 1969年又有人独立地提出了这一想法。 程序语言的形式语法的研究，从50年代中期起有了较大的发展。而形式语义的研究自60年代以来虽有不少 研究工作者从事这方面的工作，提出几种不同的语义理 论，主要是操作语义学、指称语义学或称数学语义学、 公理语义学和代数语义学，但仍没有一种公认在软件技术中够用的形式语义学，因而需要提出一种更适于用到 实际计算中的新的语义学。 在程序正确性证明和形式语义学中应用的程序逻辑， 是60年代末发展起来的。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 这是谓词逻辑的一种扩充。原来的谓词逻辑中是没有时间概念的，所考虑的推理关系 是在同一时间里的关系。程序是一种过程，一个程序的 输入谓词与输出谓词之间的逻辑关系就不是同一时间里 的关系。因此，在有关程序性质的推理中，原来的谓词逻辑不够用，需要有一种新的逻辑。 60年代末，E.恩格勒等人创立了算法逻辑。C.A.R. 霍尔也创立了一种程序逻辑。这种逻辑是在原来的逻辑上增加一个程序算子而得到的。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 算法分析和计算复杂性理论 关于算法的复杂性的 研究。关于这一领域的名称曾有争论。一般认为，各类具体算法的复杂性的研究称作算法分析，而一般算法复 杂性的研究称作计算复杂性理论。计算复杂性理论原是 可计算理论的一支，是以各种可计算函数(即递归函数) 的计算复杂性（在早期称作&quot;计算难度&quot;）为其研究对象的。可计算性分为理论可计算性和实际可计算性两种。 作为可计算性理论一支的计算复杂性理论，是以前者的 复杂程度为其研究对象的；而作为计算机科学一个领域 的复杂性理论，则是以后者的复杂程度为其研究对象的。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 这一分支的基本问题是要弄清楚实际可计算函数类的结构和一些性质。实际可计算性是一个直观的概念。 如何对这一概念进行精确的描述，是一个并不容易的问 题。60年代中期以来，有关的研究工作者一般是以计算时间多项式有界的函数作为实际可计算的函数。这实际 上是一个论题，而不是一个可以在数学中加以证明或否 证的命题。有人指出，在有关的多项式次数较高时，很难说是实际可计算的。</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 另一个带根本性的问题是：确定性机器与非确定性机器的解题能力的比较问题。人们早已知道，确定性图 灵机与非确定性图灵机的解题能力是相等的。因为非确 定性机器虽比确定性机器效率高，而如果计算时间没有 限制，则确定性机器总可以用穷举的方法来模拟非确定性机器。因此，二者的解题能力是一样的。但在计算时 间多项式有界时，二者的解题能力是否相等，这就是有 名的P=? NP问题。 关于计算和算法（包括程序）的研究，对串行计算的性质研究较多，而对并行计算性质的研究则还很不够 （特别是对异步的并行计算更是如此）。因此，关于并 行计算的研究很可能将成为计算机理论的研究重点。 　　　　　　　　　　　　　　　</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp; 对于一个判定问题，如果能够编出一个程序,以域 中任意元素作为输入，当相应的个别问题的解答是肯定 的时候, 的执行将终止并输出&quot;是&quot;,否则 的执行不 终止，就称该判定问题为半可判定的。可判定的问题总是半可判定的。集合是递归可枚举集的充分必要条件为 对应的判定问题是半可判定的。 图灵在1936年证明，图灵机的停机问题是不可判定 的，即不存在一个图灵机能够判定任意图灵机对于任意输入是否停机。图灵机的停机问题是半可判定的。图灵 机的停机问题是很重要的，由它可以推出计算机科学、 数学、逻辑学中的许多问题是不可判定的。</em></p> <a href="http://hi.baidu.com/redcastle/blog/item/d63fd22a12d01e93033bf69b.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%CD%E6%CB%A3">玩耍</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/d63fd22a12d01e93033bf69b.html#comment">查看评论</a>]]></description>
        <pubDate>2009-03-17  22:47</pubDate>
        <category><![CDATA[玩耍]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/d63fd22a12d01e93033bf69b.html</guid>
</item>

<item>
        <title><![CDATA[尾递归（tail-recursive）]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/941bcf3dd65811cf9f3d62d6.html]]></link>
        <description><![CDATA[
		
		尾递归（tail-recursive）<br>
在进行函数调用时，如果函数体中的最后一个语句都是对系统中其他函数的调用，这个函数调用就是<br>
尾递归的。欲说明尾递归，必须说明尾调用（tail-call）。例如下面的函数调用：<br>
1 p()<br>
2 {<br>
3&nbsp;&nbsp; ...<br>
4&nbsp;&nbsp; q();<br>
5&nbsp;&nbsp; ...<br>
6 }<br>
7 <br>
8 q()<br>
9 {<br>
10&nbsp;&nbsp; ...<br>
11&nbsp;&nbsp; r();<br>
12&nbsp;&nbsp; s();<br>
13 }<br>
在执行函数p的某个时候，函数q被调用。q中最后去调用s，当s返回的时候，将值返回给q，但是q原封<br>
不动地将该值返回给p。这里q中最后对s的调用就称为尾调用。<br>
在传统的栈机制计算机（stack machine）中，尾调用可以编译成直接跳转到s的代码处，而不用将返回<br>
地址压入栈中，因为s返回的地方就是q要返回的地址。程序执行到这里的时候，栈中的返回地址本来就<br>
是对的。故s的调用结束不需要返回到q中，而是直接返回到p函数体中对q调用的地方就可以了。<br>
如果函数的所有可能执行路径都以尾调用结束，就说明该函数是尾递归的。<br>
这一点是很重要的，尾递归函数可以在循环结构（loop）中被调用而不消耗栈空间。这种函数通常称为<br>
&ldquo;迭代函数&rdquo;（iterative function）。<br>
许多函数既可以用迭代风格来编写，也可以用非迭代（递归）风格来编写。例如求阶乘的函数，我们先<br>
来写出它的非迭代递归式：<br>
 factorial (0) -&gt; 1;<br>
 factorial (N) -&gt; N * factorial(N-1).<br>
在函数体factorial (N)分支中，最后是对一个表达式求值，而不是对一个函数的调用，所以他不是尾<br>
调用，那么该函数自然就不是尾递归了。<br>
现在写出它的迭代式，这里要引入一个辅助函数：<br>
 factorial (N) -&gt; factorial_1 (N,1).<br>
 factorial_1 (0,X) -&gt; X;<br>
 factorial_1 (N,X) -&gt; factorial_1 (N-1,N*X).<br>
显然这是一个尾递归式。<br>
许多非尾递归的函数可以通过引入一个辅助函数，增加一个额外参数（聚集器）的方法改写成尾递归的。<br>
在函数式编程语言中，不单单是为了优化系统执行的目的，有时候函数必须要写成迭代式才能执行。例<br>
如在无限循环结构中，直接递归，不单单是栈区会溢出，而且语义也难以满足。这也许是栈机制计算机<br>
的不足之处。我们知道，在可计算理论中，可计算函数与递归函数是等价的，并且函数式编程在语义上<br>
更加严谨。 <a href="http://hi.baidu.com/redcastle/blog/item/941bcf3dd65811cf9f3d62d6.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%CD%E6%CB%A3">玩耍</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/941bcf3dd65811cf9f3d62d6.html#comment">查看评论</a>]]></description>
        <pubDate>2009-03-17  20:56</pubDate>
        <category><![CDATA[玩耍]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/941bcf3dd65811cf9f3d62d6.html</guid>
</item>

<item>
        <title><![CDATA[原来网卡mac地址也可以改的]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/354e163806b1e5fab311c769.html]]></link>
        <description><![CDATA[
		
		<p>今天群里谈起mac地址修改的问题，笔者以为mac是网卡唯一指定的地址，怎能修改，原来还真能修改，下文是网上一个论坛里网友的精彩论述。</p>
<p><em>　　网卡的MAC地址是固化在网上EPROM中的物理地址，是一块网卡的&ldquo;身份证&rdquo;，通常为48位。 <br>
　　在平常的应用中，有很多方面与MAC地址相关，如有些软件是和MAC地址绑定的，没有允许的MAC地址，软件就无法运行； <br>
　　局域网里，管理人员常常将IP与客户机的MAC地址绑定，以方便管理，万一用户的网卡坏掉了，自行更改网卡后必须向管理人员申请更改绑定的MAC地址，这样就比较麻烦。在这种时候，如果我们能够更改一下网卡的MAC地址，那就方便多了。 <br>
　　实际上，修改网卡的MAC地址是很容易的，我们既可以在作系统中通过软件来修改网卡的MAC地址，而实际的网卡MAC地址不变，以达到欺骗软件的目的；也可以用工具直接更改网卡的实际MAC地址。 <br>
<br>
一、瞒天过海 <br>
<br>
1.修改注册表 <br>
<br>
　　几乎所有的网卡驱动程序都可以被NdisReadNetworkAddress参数调用，以便从注册表中读取一个用户指定的MAC地址。当驱动程序确定这个MAC地址是有效的，就会将这个MAC地址编程入其硬件寄存器中，而忽略网卡固有的MAC地址。我们通过手工修改Windows的注册表就可以达到目的。 <br>
　　在Winodws 98下运行Windows的注册表编辑器，展开&ldquo;HKEY_LOCAL_MACHINE＼System＼Current ControlSet＼Services＼Class＼Net&rdquo;，会看到类似&ldquo;0000&rdquo;、&ldquo;0001&rdquo;、&ldquo;0002&rdquo;的子键。从&ldquo;0000&rdquo;子键开始点击，依次查找子键下的&ldquo;DriverDesc&rdquo;键的内容，直到找到与我们查找的目标完全相同的网卡注册表信息为止。 <br>
　　当找到正确的网卡后，点击下拉式菜单&ldquo;编辑/新建/字符串&rdquo;，串的名称为&ldquo;Networkaddress&rdquo;，在新建的&ldquo;Networkaddress&rdquo;串名称上双击鼠标就可以输入数值了。输入你想指定的新的MAC地址值。新的MAC地址应该是一个12位的十六进制数字或字母，其间没有&ldquo;-&rdquo;，类似&ldquo;000000000000&rdquo;的这样的数值（注意，在Windows 98和Windows 2000/XP中具体键值的位置稍有不同，大家可通过查找功能来寻找）。 <br>
　　在&ldquo;NetworkAddress&rdquo;下继续添加一个名为 &ldquo;ParamDesc&rdquo;的字串值，它将作为&ldquo;NetworkAddress&rdquo;项的描述，数值可以取为&ldquo;MAC Address&rdquo;。再把它的内容修改为你想设定的内容. <br>
<br>
2.修改网卡属性 <br>
<br>
　　大部分的网卡都可以通过在控制面板中修改网卡属性来更改其MAC地址，笔者的3COM 3C905B-TX和RTL8139芯片的网卡都可以这样轻松修改。 <br>
　　在&ldquo;设备管理器中&rdquo;，右键点击需要修改MAC地址的网卡图标，并选择&ldquo;属性/高级&rdquo;选项卡。在&ldquo;属性&rdquo;区，就可以看到一个称作&ldquo;Network Address&rdquo;或其他相类似名字的的项目，点击它，在右侧&ldquo;值&rdquo;的下方，输入要指定的MAC地址值。要连续输入12个十六进制数字或字母，不要在其间输入&ldquo;-&rdquo;。重新启动系统后设置就会生效了。 <br>
<br>
二、釜底抽薪 <br>
<br>
　　假如用户使用的是RealTek公司的RTL8139A/B/C/D系列芯片的网卡，有一种更简单的方法修改MAC地址。RealTek公司设计的PG8139软件可以直接修改RTL8139系列网卡的MAC地址，甚至可以让每次启动后网卡的MAC地址都不相同。具体*作如下： <br>
　　把pg8139.zip解压缩到一个文件夹下，以8139C芯片为例，用记事本打开该目录下的8139c.cfg文件，修改8139c.cfg文件的第一行，将&ldquo;NodeID&rdquo;（网卡号）后改为所需要的?怠＝ㄒ槌跏贾滴 ?0 E0 4C 00 00 01&rdquo;，修改时注意每两位之间至少要留一个空格 <br>
保存后再进入MS-DOS方式（注意，要在纯DOS模式下），在DOS提示符后输入&ldquo;pg8139 /pci 8139c.cfg&rdquo;后再按回车键，此时系统如果提示&ldquo;Programming EEPROM is successful&rdquo;则说明更改成功。PG8139程序每成功运行一次，在相应的8139c.cfg文件中，系统会自动将&ldquo;NodeID&rdquo;的值加1，也就是说，第一次运行时给当前工作站网卡分配的MAC地址为&ldquo;00 E0 4C 00 00 01&rdquo;，第二次运行时，系统会自动分配为&ldquo;00 E0 4C 00 00 02&rdquo;，第三次运行时，会自动为&ldquo;00 E0 4C 00 00 03&rdquo;……，依此类推，就可以批量地修改网卡的MAC地址，不再需要重复修改8139c.cfg文件了。 <br>
　　如果用户的网卡是RTL8139其他版本的芯片，只要找到相应的.cfg文件修改就行了。 <br>
　　另外，还有一种极端的办法，通过烧录网卡的EEPROM来达到克隆MAC地址的目的。但这样做风险很大，而且*作复杂，即使是有经验的用户也难免在*作中出现错误，我们不推荐进行这种*作。 <br>
<br>
三、巧借东风 <br>
<br>
　　如果是Windows 2000/XP的用户，则可以使用免费MAC地址修改软件SMAC。运行SMAC后，窗口中的列表框列出计算机上正处于工作状态的网卡。选定要修改的网卡后，在列表框下方的六个输入框中输入新的MAC地址后，点击右侧的&ldquo;Update MAC（修改MAC地址）&rdquo;，即可完成MAC地址的修改。如图4所示。 <br>
　　修改MAC地址的工具有很多，但大多数都只适用于Windows 2000/XP，笔者在这里推荐用&ldquo;超级兔子魔法设置&rdquo;，因为不但简单易用，而且在Windows 9x系统中使用同样有效。 <br>
　　修改完成后，就要使设置生效，一般的办法是重新启动系统。还有一种简单的办法不需要重新启动系统，在&ldquo;设备管理器&rdquo;中，选定网络适配器图标，点击鼠标右键，选择&ldquo;禁用&rdquo;（请注意*作后，状态栏是否已显示为&ldquo;禁用&rdquo;）。然后再右键单击选定的网络适配器，在右键菜单中选择&ldquo;启用&rdquo;。这样就能使修改后的设置生效。 <br>
</em></p> <a href="http://hi.baidu.com/redcastle/blog/item/354e163806b1e5fab311c769.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%CD%E6%CB%A3">玩耍</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/354e163806b1e5fab311c769.html#comment">查看评论</a>]]></description>
        <pubDate>2009-03-12  22:29</pubDate>
        <category><![CDATA[玩耍]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/354e163806b1e5fab311c769.html</guid>
</item>

<item>
        <title><![CDATA[[一句话技巧]Ubuntu下使用Gcc编译C语言出现stdio.h:No such file or directory的解决办法]]></title>
        <link><![CDATA[http://hi.baidu.com/redcastle/blog/item/ce7f53fb9c365a1e6d22eb8c.html]]></link>
        <description><![CDATA[
		
		原因就是没有安装库<span class="t_tag" href="http://bbs.i0595.net/tag.php?name=%CE%C4%BC%FE">文件</span>，使用如下命令安装解决该问题：<br>
sudo apt-get install libc6-dev 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/redcastle/blog/category/%D2%BB%BE%E4%BB%B0%BC%BC%C7%C9">一句话技巧</a>&nbsp;<a href="http://hi.baidu.com/redcastle/blog/item/ce7f53fb9c365a1e6d22eb8c.html#comment">查看评论</a>]]></description>
        <pubDate>2009-03-10  19:03</pubDate>
        <category><![CDATA[一句话技巧]]></category>
        <author><![CDATA[pop3836]]></author>
		<guid>http://hi.baidu.com/redcastle/blog/item/ce7f53fb9c365a1e6d22eb8c.html</guid>
</item>


</channel>
</rss>
