<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://royfang.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2froyfang.spaces.live.com%2fcategory%2f%e6%8e%a8%e6%bc%94%e8%a7%a3%e6%9e%90%e8%ae%a1%e7%ae%97%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>剪燈閒筆: 推演解析计算</title><description /><link>http://royfang.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=cat%25E6%258E%25A8%25E6%25BC%2594%25E8%25A7%25A3%25E6%259E%2590%25E8%25AE%25A1%25E7%25AE%2597</link><language>en-US</language><pubDate>Wed, 27 Aug 2008 15:23:54 GMT</pubDate><lastBuildDate>Wed, 27 Aug 2008 15:23:54 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://royfang.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>6049878559561471276</live:id><live:alias>royfang</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>中文 MSDN 的一处翻译错误</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!776.entry</link><description>&lt;div&gt;&lt;a href="http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!776.entry"&gt;&lt;strong&gt;A Translation Error with MSDN China (Simplified Chinese)&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【摘要】本文叙述了中文 MSDN 的一处翻译错误，并给出正确的译文。&lt;/div&gt;
&lt;div&gt;【分类】英语 » 中文翻译 | 计算机 » 程序设计 » 环境和工具&lt;/div&gt;
&lt;div&gt;【标签】翻译错误 | Visual C++ 自定义关键字&lt;/div&gt;
&lt;div style="text-align:right"&gt;&lt;span style="border-right:#003366 1px solid;padding-right:6px;border-top:#003366 1px solid;padding-left:6px;padding-bottom:2px;border-left:#003366 1px solid;color:#ffffff;padding-top:2px;border-bottom:#003366 1px solid;background-color:#336699"&gt;2008-7-30&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;在进行 C/C++ 编程时，我们常用 typedef 自定义类型来提高代码的可读性。有时我们希望 IDE 中这个自定义的类型也能象普通关键字一样高亮显示。Visual C++ 提供了一种方法实现这个功能，参见 MSDN 文章：&lt;a href="http://msdn.microsoft.com/zh-cn/library/aa301710(VS.71).aspx" target="_blank"&gt;在 Visual C++ 中定义关键字&lt;/a&gt;。&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;这篇文字大概是在机器翻译的基础上经过人工审核整理而成的，纰漏颇多，特别是其中的第三条：&lt;/div&gt;
&lt;div style="border-right:#cccccc 1px solid;padding-right:6px;border-top:#cccccc 1px solid;margin-top:8px;padding-left:6px;float:left;padding-bottom:2px;margin-left:2em;border-left:#cccccc 1px solid;color:#666666;padding-top:2px;border-bottom:#cccccc 1px solid;background-color:#e8e8e8"&gt;在同一目录下将 usertype.dat 以一个纯文本文件格式另存为 devenv.exe。&lt;/div&gt;
&lt;div style="clear:both;margin-top:8px;text-indent:2em"&gt;这句话着实不知所云，勉强理解的话大概是说：&lt;/div&gt;
&lt;div style="border-right:#cccccc 1px solid;padding-right:6px;border-top:#cccccc 1px solid;margin-top:8px;padding-left:6px;float:left;padding-bottom:2px;margin-left:2em;border-left:#cccccc 1px solid;color:#666666;padding-top:2px;border-bottom:#cccccc 1px solid;background-color:#e8e8e8"&gt;在当前目录下复制 usertype.dat，并把新文件重命名为 devenv.exe。&lt;/div&gt;
&lt;div style="clear:both;margin-top:8px;text-indent:2em"&gt;好在我们能够很方便地找到它的英文原文 &lt;a href="http://msdn.microsoft.com/en-us/library/aa301710(VS.71).aspx" target="_blank"&gt;Defining Keywords in Visual C++&lt;/a&gt;，同样是第三条：&lt;/div&gt;
&lt;div style="border-right:#cccccc 1px solid;padding-right:6px;border-top:#cccccc 1px solid;margin-top:8px;padding-left:6px;float:left;padding-bottom:2px;margin-left:2em;border-left:#cccccc 1px solid;color:#666666;padding-top:2px;border-bottom:#cccccc 1px solid;background-color:#e8e8e8"&gt;Save usertype.dat in the same directory as devenv.exe, as a text-only file.&lt;/div&gt;
&lt;div style="clear:both;margin-top:8px;text-indent:2em"&gt;译成中文就是：&lt;/div&gt;
&lt;div style="border-right:#cccccc 1px solid;padding-right:6px;border-top:#cccccc 1px solid;margin-top:8px;padding-left:6px;float:left;padding-bottom:2px;margin-left:2em;border-left:#cccccc 1px solid;color:#666666;padding-top:2px;border-bottom:#cccccc 1px solid;background-color:#e8e8e8"&gt;以纯文本文件格式把 usertype.dat 保存在 devenv.exe 所在的目录。&lt;/div&gt;
&lt;div style="clear:both;margin-top:8px;text-indent:2em"&gt;这才是原文要表达的意思。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e4%b8%ad%e6%96%87+MSDN+%e7%9a%84%e4%b8%80%e5%a4%84%e7%bf%bb%e8%af%91%e9%94%99%e8%af%af&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!776.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!776.entry</guid><pubDate>Fri, 18 Jul 2008 09:42:33 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!776/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!776.entry#comment</wfw:comment><dcterms:modified>2008-07-30T08:39:34Z</dcterms:modified></item><item><title>Diablo II 装备的一致性问题</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!763.entry</link><description>&lt;div&gt;&lt;a href="http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!763.entry"&gt;&lt;strong&gt;The Consistency Problem of Diablo II Items&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【摘要】本文叙述了 Diablo II 中存在的一个与装备次序有关的一致性问题，并提出解决的办法。&lt;/div&gt;
&lt;div&gt;【分类】计算机 » 程序设计 » 逻辑和规范 | 电子游戏 » Diablo&lt;/div&gt;
&lt;div&gt;【标签】Diablo II 装备 | 一致性问题&lt;/div&gt;
&lt;div style="text-align:right"&gt;&lt;span style="border-right:#003366 1px solid;padding-right:6px;border-top:#003366 1px solid;padding-left:6px;padding-bottom:2px;border-left:#003366 1px solid;color:#ffffff;padding-top:2px;border-bottom:#003366 1px solid;background-color:#336699"&gt;2008-7-31&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;Diablo II 中不少物品需要一定属性才能装备，比如下面这条暗金腰带就需要 60 的力量：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;Many items in Diablo II require specific attributes for equipping. E.g., the unique belt below needs 60 strength:&lt;/div&gt;
&lt;div style="margin-top:8px;margin-left:2em"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1p0N6waz3fhIXWQJuPUdiChxgrUwbjR3Vaq-gHFNDjnTJ0DBVPCN3oPwNlT4mHRNcFvgQaZz3mBf8/belt1.png" border=0&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;一般情况下，如果力量不足 60，角色是无法装备这条腰带的。但是这条腰带自身有力量 +5 的属性，论理只要力量达到 55，就应当能装备它。可惜实际上不行。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;Generally if the character's strength didn't meet 60, the belt would be not available for him/her. One the other hand, the belt had an attribute +5 strength. It meant that as long as the character got 55 strength, theoretically he/she should wear the belt without any problem. But actually it was clearly not the truth.&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;有没有办法做到这一点呢？有的。我们找一条同样力量 +5 的护身符，放在物品栏中。这样这条腰带就可以被成功装备了：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;Any idea for that? Let's find a charm with +5 strength as well, and placed it in the inventory. In such a way the belt was equipped succesfully.&lt;/div&gt;
&lt;div style="margin-top:8px;margin-left:2em"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pUJD0sJHSivsmbvQD-7RvFrX69qsa84p2VtzRPNdGX5eAPJasX9fNpqbj10F7qFNAA6G8BrNeoXU/charm.png" border=0&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;现在角色的力量达到了 65，对于这条腰带来说，护身符已经多余了。我们把护身符撤掉，可以看到腰带仍然完好地挂在腰上：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;So far the character's strength had met 65. The charm was unnecessary any more regarding the belt. So we removed it. Finally you would see that the belt was still around the waist availably.&lt;/div&gt;
&lt;div style="margin-top:8px;margin-left:2em"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pdpJJB5JLLo0jaVaArcE9QrjVk_DXeY5Y4mNKXeZ7QK6RUEgk8ZqpIVmbLRaCWHu7LMi2fI3rR74/belt2.png" border=0&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;这就是 Diablo II 装备的一致性问题：同样的物品，因为装备次序不同，结果也不同。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;This is just the consistency problem of Diablo II: different equipping order may lead to different result even if the items are same.&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;要解决这个问题，考虑下面的办法之一：&lt;/div&gt;
&lt;ul style="margin-top:0px;margin-bottom:0px;margin-left:2.5em"&gt;
&lt;li&gt;装备物品前先加上物品自身的属性，而后判断它是否能够装备； 
&lt;li&gt;允许装备未达到属性等级要求的物品，如果装备后的属性仍不能满足条件，令其状态不可用；（推荐） 
&lt;li&gt;对于有属性等级要求的物品，其魔法属性中不要再包含这一属性。&lt;/ul&gt;
&lt;div style="text-indent:2em"&gt;To solve the problem, we may consider either:&lt;/div&gt;
&lt;ul style="margin-top:0px;margin-bottom:0px;margin-left:2.5em"&gt;
&lt;li&gt;Add the attributes of the item before equipping. Then check if the final attributes meet the requirement, or 
&lt;li&gt;Allow to equip the item whatever it meets the requirement. If it doesn't meet the requirement yet after equipping, make its state not available, or (recommendation) 
&lt;li&gt;For the item that has attribute restrictions, do not include these attributes again to its inherent attribute list.&lt;/ul&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;Diablo III 会不会还有这个问题，我们拭目以待。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;If Diablo III still has such problem? we wait expectantly.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+Diablo+II+%e8%a3%85%e5%a4%87%e7%9a%84%e4%b8%80%e8%87%b4%e6%80%a7%e9%97%ae%e9%a2%98&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!763.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!763.entry</guid><pubDate>Wed, 02 Jul 2008 15:42:58 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!763/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!763.entry#comment</wfw:comment><dcterms:modified>2008-07-31T18:01:17Z</dcterms:modified></item><item><title>手动下载 .NET Framework 源代码</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!739.entry</link><description>&lt;div&gt;&lt;a href="http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!739.entry"&gt;&lt;strong&gt;Download .NET Framework Source Code Manually&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【摘要】本文阐述了 .NET Mass Downloader 下载 .NET Framework 源代码的原理。&lt;/div&gt;
&lt;div&gt;【分类】计算机 » 程序设计 » 环境和工具 | 计算机 » 程序设计 » .NET&lt;/div&gt;
&lt;div&gt;【标签】.NET Framework 源代码 | 微软符号服务器 | Pdb 文件&lt;/div&gt;
&lt;div style="text-align:right"&gt;&lt;span style="border-right:#003366 1px solid;padding-right:6px;border-top:#003366 1px solid;padding-left:6px;padding-bottom:2px;border-left:#003366 1px solid;color:#ffffff;padding-top:2px;border-bottom:#003366 1px solid;background-color:#336699"&gt;2008-7-25&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;数月前，微软开放了部分 .NET Framework 源代码，Visual Studio 2008 和 Visual Studio 2005 用户可以通过&lt;a href="http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx" target="_blank"&gt;配置符号服务器&lt;/a&gt;（Symbol Server）获取这部分代码。不过，不象设计 MFC 程序那样编辑时就能进入源代码，Visual Studio 只允许 .NET 程序员调试程序的时候打开当前代码相关的 .cs 文件。这些 .cs 文件没有缓存到本地硬盘，缓存到本地硬盘的是 .pdb 文件，也就是 Visual Studio 程序数据库（Program DataBase）。我们知道，.pdb 是保存程序调试信息的文件，并不包含程序源代码，这对于希望系统阅读 .NET Framework 源代码的用户来说十分不便，于是一款称为 &lt;a href="http://www.codeplex.com/NetMassDownloader" target="_blank"&gt;.NET Mass Downloader&lt;/a&gt; 的程序应运而生。&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;顾名思意，.NET Mass Downloader 就是批量下载 .NET Framework 源代码的下载器。它不但能下载 .pdb 文件，还能下载每个 .pdb 文件对应的一系列 .cs 文件。这种做法可能不符合微软的商业利益，但注意到这个软件是发布在微软的开源社区 &lt;a href="http://www.codeplex.com/" target="_blank"&gt;CodePlex&lt;/a&gt; 上的，我猜想它的存在是得到微软许可的。&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;.NET Mass Downloader 发布有一段时间了，我是昨天才知道它的，也很偶然地下载了它的源代码。因为重装 &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=D95598D7-AA6E-4F24-82E3-81570C5384CB&amp;amp;displaylang=en" target="_blank"&gt;Visual Studio 2008&lt;/a&gt; 发生错误——我安装了 &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=50A9EC01-267B-4521-B7D7-C0DBA8866434&amp;amp;displaylang=en" target="_blank"&gt;Silverlight 2 Tools Beta 2&lt;/a&gt;，接着安装 &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=CF99C752-1391-4BC3-BABC-86BC0B9E8E5A&amp;amp;displaylang=en" target="_blank"&gt;Visual Studio 2008 SP1 Beta&lt;/a&gt;。结果后者安装失败，提示要先卸载 &lt;a href="http://support.microsoft.com/kb/944899/en-us" target="_blank"&gt;KB944899&lt;/a&gt; 这个补丁。这个补丁恰好与 .NET Framework 源代码有关。可是我没有安装 KB944899，猜想可能是 Silverlight 2 Tools Beta 2 安装了其它的补丁涵盖了 KB944899。确实是这样，问题出在 KB949325 上，卸载 KB949325 后一切正常——我顺手打开新下载的 .NET Mass Downloader 源代码测试 Visual Studio 2008 的安装是否成功。&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;下面的教程就是这次粗略浏览 .NET Mass Downloader 源代码的结果。当然，有了 .NET Mass Downloader 这样好的工具，没有谁会真的去手动下载 .NET Framework 源代码。这篇教程的目的是从侧面窥视微软符号服务器（Microsoft Symbol Servers）的工作原理。&lt;/div&gt;
&lt;ol style="margin-top:0px;margin-bottom:0px;margin-left:2em"&gt;
&lt;li style="margin-top:8px"&gt;
&lt;h5&gt;安装 &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=333325FD-AE52-4E35-B531-508D977D32A6&amp;amp;displaylang=zh-cn" target="_blank"&gt;.NET Framework 3.5&lt;/a&gt;&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;这一步很重要却往往被忽略。因为目前微软只提供 .NET Framework 3.5 程序集（assembly）的部分源代码，安装其它版本的 .NET Framework，你可能下载不到任何代码，因为同名程序集在不同版本的 .NET Framework 下可能不同。举个例子，所有版本的 .NET Framework 都有 System.dll 这个程序集，它在各版 .NET Framework 下的版本号如表所示：&lt;/div&gt;
&lt;table style="margin-top:8px;color:#666666;border-collapse:collapse;text-align:center" bordercolor="#cccccc" cellspacing=0 cellpadding=0 width="100%" border=1&gt;
&lt;tbody&gt;
&lt;tr bgcolor="#e8e8e8"&gt;
&lt;td width="25%"&gt;.NET Framework 版本 
&lt;td width="25%"&gt;System.dll 版本 
&lt;td width="25%"&gt;编译日期 
&lt;td&gt;文件大小 
&lt;tr&gt;
&lt;td&gt;1.0 
&lt;td&gt;1.0.3705.0 
&lt;td&gt;2002-1-5 
&lt;td&gt;1,136KB 
&lt;tr&gt;
&lt;td&gt;1.1 
&lt;td&gt;1.1.4322.573 
&lt;td&gt;2003-2-21 
&lt;td&gt;1,188KB 
&lt;tr&gt;
&lt;td&gt;2.0, 3.0 
&lt;td&gt;2.0.50727.42 
&lt;td&gt;2005-9-23 
&lt;td&gt;2,948KB 
&lt;tr&gt;
&lt;td&gt;2.0 SP1, 3.0 SP1, 3.5 
&lt;td&gt;2.0.50727.1433 
&lt;td&gt;2007-10-24 
&lt;td&gt;3,004KB 
&lt;tr&gt;
&lt;td&gt;3.5 SP1 Beta 
&lt;td&gt;2.0.50727.3031 
&lt;td&gt;2008-4-18 
&lt;td&gt;2,964KB&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="margin-top:8px"&gt;显然，如果文件的版本不一样，它的源代码也不一样。这就是安装 .NET Framework 3.5 的原因。对于这个问题，我想再严谨些。下载 .NET Framework 源代码，其实并不一定非要安装 .NET Framework，安装 .NET Framework 只是简便的做法。读完下面的步骤我们可以知道，这里真正需要的是要下载的源代码对应的那个程序集文件，类似于上面例子中的 System.dll。你有许多办法获得这个文件，比如下载 .NET Framework 3.5 安装包，手动从中提取文件。&lt;/div&gt;
&lt;li style="margin-top:8px"&gt;
&lt;h5&gt;为浏览器添加新的 User-Agent：Microsoft-Symbol-Server/6.8.0004.0。&lt;/h5&gt;
&lt;ul style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"&gt;
&lt;li style="margin-top:8px"&gt;如果你的浏览器是 Internet Explorer 7，你可以在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\&lt;br&gt;CurrentVersion\Internet Settings\5.0\User Agent\Post Platform 位置新建字符串（REG_SZ），值为 Microsoft-Symbol-Server/6.8.0004.0，数据留空。 
&lt;div style="margin-top:8px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1prCKZxrRXpeHZzc9IVyffYn5XY7eREntQkrYPmA3pNWu-H-iszqqO4y6gl5QWRo4Bg-cz9aPbajg/ie7.png" border=0&gt;&lt;/div&gt;
&lt;li style="margin-top:8px"&gt;如果你的浏览器是 FireFox 3，你可以在 about:config 页面中新建字符串 general.useragent.override，设置它的值为 Microsoft-Symbol-Server/6.8.0004.0。 
&lt;div style="margin-top:8px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1ph6w4zis3pCsqYRN3Mu5xz9UxAQktwGxCUNfOJycXRTzWH8WsLGHtbJVBC6Va8QSSDFVzbY_xP3U/ff3.png" border=0&gt;&lt;/div&gt;
&lt;li style="margin-top:8px"&gt;如果你使用其它浏览器，如 &lt;a href="http://www.maxthon.cn/" target="_blank"&gt;Maxthon&lt;/a&gt;，或者安装了浏览器增强插件，如 &lt;a href="http://www.ie7pro.com/" target="_blank"&gt;IE7Pro&lt;/a&gt;，你可以尝试在它们的配置中设置 User-Agent 的值。&lt;/ul&gt;
&lt;div style="margin-top:8px"&gt;这一步是为了让符号服务器能够识别其后的下载请求。设置完成后需要重启浏览器。&lt;/div&gt;
&lt;li style="margin-top:8px"&gt;
&lt;h5&gt;在程序集文件中检索 PDB 信息&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;以 mscorlib.dll 2.0.50727.1433 为例，它一般位于 C:\Windows\Microsoft.NET\Framework\v2.0.50727 目录下。&lt;/div&gt;
&lt;ul style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"&gt;
&lt;li style="margin-top:8px"&gt;如果你安装了 Visual C++，你可以用它的命令行工具 dumpbin 导出整个 mscorlib.dll 的 PE 结构信息。找到 Debug Directories 一段，注意 Format 后面的值：RSDS, {56470DDE-A10F-45F4-A409-7FF9274F4923}, 1, mscorlib.pdb。 
&lt;div style="margin-top:8px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pblPJD0sB6SJgUihY8m3yazEhs2v2I0KgRpuKMdqPNxAU2cQ8glBv5lEaXRUo7pD33U6rW64ASSA/cv.png" border=0&gt;&lt;/div&gt;
&lt;div style="margin-top:8px"&gt;这是 CV_INFO_PDB70 结构的数据，含义如下：&lt;/div&gt;
&lt;table style="margin-top:8px;color:#666666;border-collapse:collapse" bordercolor="#cccccc" cellspacing=0 cellpadding=0 width="100%" border=1&gt;
&lt;tbody&gt;
&lt;tr bgcolor="#e8e8e8"&gt;
&lt;td style="padding-right:2px;padding-left:2px" width="9%"&gt;类型 
&lt;td style="padding-right:2px;padding-left:2px" width="12%"&gt;名称 
&lt;td style="padding-right:2px;padding-left:2px" width="43%"&gt;值 
&lt;td style="padding-right:2px;padding-left:2px"&gt;含义 
&lt;tr&gt;
&lt;td style="padding-right:2px;padding-left:2px"&gt;DWORD 
&lt;td style="padding-right:2px;padding-left:2px"&gt;CvSignature 
&lt;td style="padding-right:2px;padding-left:2px"&gt;RSDS 
&lt;td style="padding-right:2px;padding-left:2px"&gt;表明当前 CodeView 块的格式是 PDB 7.0 
&lt;tr&gt;
&lt;td style="padding-right:2px;padding-left:2px"&gt;GUID 
&lt;td style="padding-right:2px;padding-left:2px"&gt;Signature 
&lt;td style="padding-right:2px;padding-left:2px"&gt;{56470DDE-A10F-45F4-A409-7FF9274F4923} 
&lt;td style="padding-right:2px;padding-left:2px"&gt;.pdb 文件的数字签名 
&lt;tr&gt;
&lt;td style="padding-right:2px;padding-left:2px"&gt;DWORD 
&lt;td style="padding-right:2px;padding-left:2px"&gt;Age 
&lt;td style="padding-right:2px;padding-left:2px"&gt;1 
&lt;td style="padding-right:2px;padding-left:2px"&gt;.pdb 文件的增量更新标识 
&lt;tr&gt;
&lt;td style="padding-right:2px;padding-left:2px"&gt;BYTE[] 
&lt;td style="padding-right:2px;padding-left:2px"&gt;PdbFileName 
&lt;td style="padding-right:2px;padding-left:2px"&gt;mscorlib.pdb 
&lt;td style="padding-right:2px;padding-left:2px"&gt;以 \x0 结尾的 .pdb 文件的文件名&lt;/tbody&gt;&lt;/table&gt;
&lt;li style="margin-top:8px"&gt;如果你熟悉 &lt;a href="http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx" target="_blank"&gt;PE/COFF&lt;/a&gt; 的结构，可以用普通的十六进制编辑器查找字符串“RSDS”，或者依 PE 结构顺次找到下面的数据： 
&lt;div style="margin-top:8px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pekj11l27Lf0N48SFMX1HyQduo-vExd1B7pa9IirQAVkc1i6hp0swb5LERHdYFHUImKZ1t5LfIZE/bin.png" border=0&gt;&lt;/div&gt;&lt;/ul&gt;
&lt;div style="margin-top:8px"&gt;这些数据用于在符号服务器上定位 .pdb 文件。&lt;/div&gt;
&lt;li style="margin-top:8px"&gt;
&lt;h5&gt;下载 &lt;a href="http://referencesource.microsoft.com/symbols/mscorlib.pdb/56470DDEA10F45F4A4097FF9274F49231/mscorlib.pd_" target="_blank"&gt;http://referencesource.microsoft.com/symbols/mscorlib.pdb/56470DDEA10F45F4A4097FF927&lt;br&gt;4F49231/mscorlib.pd_&lt;/a&gt;&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;不难看出这个地址是如何来的：&lt;/div&gt;
&lt;ul style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"&gt;
&lt;li&gt;首先是微软符号服务器地址 http://referencesource.microsoft.com/symbols； 
&lt;li&gt;其次是 .pdb 文件的文件名 mscorlib.pdb； 
&lt;li&gt;再次是它的 GUID 56470DDEA10F45F4A4097FF9274F4923； 
&lt;li&gt;而后是增量更新标识 1； 
&lt;li&gt;最后还是 .pdb 的文件名，不同的是，这里的扩展名为 .pd_。&lt;/ul&gt;
&lt;div style="margin-top:8px"&gt;顺便提一下，直接用 Internet Explorer 下载这个文件常常会半途中断，而且 IE7Pro 的 MiniDM 不支持 User-Agent 设置。因此这里 FireFox 是更好的选择，用它直接下载或者通过 &lt;a href="http://flashgot.net/" target="_blank"&gt;FlashGot&lt;/a&gt; 插件下载均可。如果是直接下载，和 Internet Explorer 一样，下载的内容会以网页形式呈现。这时不能直接保存页面，而应该打开页面的源代码，在那里保存文件为 mscorlib.pd_。&lt;/div&gt;
&lt;li style="margin-top:8px"&gt;
&lt;h5&gt;解压下载的 mscorlib.pd_&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;mscorlib.pd_ 是 cab 格式的文件，常见的压缩工具都支持这种格式。也可以用 Windows 自带的命令行工具 expand 解压。解压后得到 mscorlib.pdb。&lt;/div&gt;
&lt;li style="margin-top:8px"&gt;
&lt;h5&gt;在 mscorlib.pdb 中找出源代码文件的下载地址&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;用文本编辑器打开 mscorlib.pdb，在乱码后面找到字符串 SRCSRV: ini --------------------------------------------。从这里开始的文本记录了 mscorlib.dll 源代码文件的文件名和其它必要信息。注意下面几个重要的名称/值对：&lt;/div&gt;
&lt;ul style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"&gt;
&lt;li&gt;形如 HTTP_ALIAS=Http://ReferenceSource.microsoft.com/source/.net/8.0 的根地址； 
&lt;li&gt;形如 HTTP_EXTRACT_TARGET=%HTTP_ALIAS%/%var2%/%var3%/%var4%/%fnfile%(%var1%) 或者， 
&lt;li&gt;形如 SD_EXTRACT_TARGET=%targ%\%var2%\%fnbksl%(%var3%)\%var4%\%fnfile%(%var1%) 的逻辑地址。&lt;/ul&gt;
&lt;div style="margin-top:8px"&gt;逻辑地址要转换成真实地址，还必须有上面各变量 %x% 的实际值，这些值就在形如 f:\RedBits\ndp\clr\src\BCL\System\&lt;br&gt;Object.cs*DEVDIV*depot/DevDiv/releases/whidbey/REDBITS/ndp/clr/src/BCL/System/Object.cs*1 的字符串中。&lt;/div&gt;
&lt;div style="margin-top:8px"&gt;就以这个字符串为例，它对应的逻辑地址是 %targ%\%var2%\%fnbksl%(%var3%)\%var4%\%fnfile%(%var1%)。&lt;/div&gt;
&lt;ul style="margin-top:0px;margin-bottom:0px;margin-left:0.5em"&gt;
&lt;li&gt;用固定地址 Http://ReferenceSource.microsoft.com/source/.net/8.0 替换 %targ%。如果逻辑地址包含的变量是 %HTTP_ALIAS% 而不是 %targ%，则用相应的 HTTP_ALIAS 值替换； 
&lt;li&gt;把上面的字符串以星号为分隔符分成四节： 
&lt;ul style="margin-top:0px;margin-bottom:0px;margin-left:0.5em;list-style-type:circle"&gt;
&lt;li&gt;用第一节中的文件名 Object.cs 替换 %fnfile%(%var1%)； 
&lt;li&gt;用第二节 DEVDIV 替换 %var2%； 
&lt;li&gt;用第三节 depot/DevDiv/releases/whidbey/REDBITS/ndp/clr/src/BCL/System/Object.cs 替换 %var3%； 
&lt;li&gt;用第四节 1 替换 %var4%；&lt;/ul&gt;
&lt;li&gt;把 %fnbksl% 括号中值的斜杠号替换成反斜杠号。&lt;/ul&gt;
&lt;div style="margin-top:8px"&gt;这样，我们就有了新的地址：&lt;a href="http://referencesource.microsoft.com/source/.net/8.0/devdiv/depot/devdiv/releases/whidbey/redbits/ndp/clr/src/bcl/system/object.cs/1/object.cs" target="_blank"&gt;http://referencesource.microsoft.com/source/.net/8.0/devdiv/depot/devdiv/releases/&lt;br&gt;whidbey/redbits/ndp/clr/src/bcl/system/object.cs/1/object.cs&lt;/a&gt;。&lt;/div&gt;
&lt;li style="margin-top:8px"&gt;
&lt;h5&gt;下载 Object.cs 源代码&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;用浏览器打开上面的地址，微软符号服务器并没有直接返回要下载的文件，而是返回一份 EULA（最终用户许可协议）。找到协议中形如 Accept=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 的字符串。把这串字符作为之前地址的参数，添加到它的后面。这就得到了最终的地址：&lt;a href="http://referencesource.microsoft.com/source/.net/8.0/devdiv/depot/devdiv/releases/whidbey/redbits/ndp/clr/src/bcl/system/object.cs/1/object.cs?accept=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" target="_blank"&gt;http://referencesource.microsoft.com/source/.net/8.0/devdiv/depot/devdiv/releases/whidbey/&lt;br&gt;redbits/ndp/clr/src/bcl/system/object.cs/1/object.cs?accept=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;/a&gt;，这就是我们要下载的 Object.cs 源代码的地址。&lt;/div&gt;&lt;/ol&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;就在我写这篇教程的时候，Microsoft Symbol Servers 正巧在调整，时时连接不上，并且下载到的 .pd_ 文件版本也不一样。如果你也遇到这种情况，请隔天再试。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e6%89%8b%e5%8a%a8%e4%b8%8b%e8%bd%bd+.NET+Framework+%e6%ba%90%e4%bb%a3%e7%a0%81&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!739.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!739.entry</guid><pubDate>Wed, 18 Jun 2008 07:40:11 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!739/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!739.entry#comment</wfw:comment><dcterms:modified>2008-07-30T19:03:33Z</dcterms:modified></item><item><title>未见诸文档的 Windows 错误</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!736.entry</link><description>&lt;div&gt;&lt;a href="http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!736.entry"&gt;&lt;strong&gt;Undocumented Windows Bugs&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【摘要】本文列举了 Windows 下几个迄今尚未修复的错误。&lt;/div&gt;
&lt;div&gt;【分类】计算机 » 软件 » Windows&lt;/div&gt;
&lt;div&gt;【标签】Windows bug | 回收站界面更新 | 文件名非法字符 | 剪贴板&lt;/div&gt;
&lt;div style="text-align:right"&gt;&lt;span style="border-right:#003366 1px solid;padding-right:6px;border-top:#003366 1px solid;padding-left:6px;padding-bottom:2px;border-left:#003366 1px solid;color:#ffffff;padding-top:2px;border-bottom:#003366 1px solid;background-color:#336699"&gt;2008-6-20&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul style="margin-bottom:0px"&gt;
&lt;li style="margin-top:8px"&gt;
&lt;h5&gt;回收站界面更新问题&lt;/h5&gt;
&lt;h5 style="margin-top:8px"&gt;问题描述&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;在回收站窗口中“清空回收站”，有时会发现清空后文件仍然留在窗口里。其实文件确实是删掉了，只是界面没有更新。来看下面的截图：&lt;/div&gt;
&lt;div style="margin-top:8px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pJkcreTzJMQQ7O-xiyMf3sv0lb1W00UjepkcPeczskMzHi6RZlr8Bk2-SNuE_mwkw1DOh7ebuvDw/bug.png" border=0&gt;&lt;/div&gt;
&lt;div style="margin-top:8px"&gt;如图所示，桌面上的回收站图标是空的，窗口中“清空回收站”的按钮是无效的，说明回收站已经清空。可是回收站窗口内却仍有若干文件。&lt;/div&gt;
&lt;h5 style="margin-top:8px"&gt;重现步骤&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;此错误遇到过几次，但无法重现。&lt;/div&gt;
&lt;h5 style="margin-top:8px"&gt;适用平台&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;Windows Vista、Windows Server 2008 所有版本和补丁包。&lt;/div&gt;
&lt;li style="margin-top:8px"&gt;
&lt;h5&gt;文件名非法字符问题&lt;/h5&gt;
&lt;h5 style="margin-top:8px"&gt;问题描述&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;当我们用剪贴板中含有文件名非法字符（/ \ : * ? &amp;quot; &amp;lt; &amp;gt; |）的字符串重命名文件或文件夹时，系统会自动过滤这些字符，并将过滤的结果复制回剪贴板。&lt;/div&gt;
&lt;h5 style="margin-top:8px"&gt;重现步骤&lt;/h5&gt;
&lt;ol style="margin-left:2em"&gt;
&lt;li&gt;复制地址 &lt;strong&gt;http://localhost&lt;/strong&gt; 到剪贴板； 
&lt;li&gt;重命名任一文件，把上面的地址粘贴到重命名的编辑框中，系统提示文件名不能包含冒号和斜杠号，确定或取消重命名； 
&lt;li&gt;打开记事本，把剪贴板的内容粘贴到记事本中，这时记事本显示 &lt;strong&gt;httplocalhost&lt;/strong&gt;。&lt;/ol&gt;
&lt;h5 style="margin-top:8px"&gt;错误分析&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;记事本显示的结果显然是错误的。我们知道，剪贴板是系统共享信息的临时区域。当“剪切”或者“复制”行为发生的时候，数据被移入剪贴板，剪贴板内容改变；当“粘贴”行为发生的时候，数据被移出剪贴板，但剪贴板内容保持不变。因此上面记事本显示的结果应当是最初的地址 &lt;strong&gt;http://localhost&lt;/strong&gt;，而不该是过滤后的字符串。为了更多地了解这里的错误，我们再次重复上面的实验，不过这回把地址 &lt;strong&gt;http://localhost&lt;/strong&gt; 换成 300 个 a 组成的字符串。因为文件名长度有一定限制，不能达到 300，超出的部分只能被舍去。我们就要看看这时候的剪贴板是不是也象上面一样剩下残缺的字符串。事实并非如此，300 个 a 被完好地存留下来，未被截短。据此可以大致猜测，错误发生的位置当在 Windows Explorer 过滤非法字符附近。&lt;/div&gt;
&lt;h5 style="margin-top:8px"&gt;适用平台&lt;/h5&gt;
&lt;div style="margin-top:8px"&gt;Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008 所有版本和补丁包。&lt;/div&gt;&lt;/ul&gt;
&lt;div style="margin-top:8px;color:#999999"&gt;
&lt;hr&gt;
&lt;font size=2&gt;【注】上面列举的适用平台，我并没有完整地测试过，部分结论来自记忆和推断，但我想大概不会出现例外。&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e6%9c%aa%e8%a7%81%e8%af%b8%e6%96%87%e6%a1%a3%e7%9a%84+Windows+%e9%94%99%e8%af%af&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!736.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!736.entry</guid><pubDate>Thu, 12 Jun 2008 18:51:18 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!736/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!736.entry#comment</wfw:comment><dcterms:modified>2008-07-30T18:58:59Z</dcterms:modified></item><item><title>关于汤姆孙灯问题的解释</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!685.entry</link><description>&lt;div style="color:#999999;border-bottom:white 8px solid;font-variant:small-caps"&gt;
&lt;div&gt;【分类】数学 » 数学分析 | 哲学&lt;/div&gt;
&lt;div&gt;【标签】汤姆孙灯 | 芝诺悖论 | 阿喀琉斯悖论&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;a href="http://en.wikipedia.org/wiki/Thomson's_lamp" target="_blank"&gt;汤姆孙灯&lt;/a&gt;&lt;sup&gt;【1】&lt;/sup&gt;（Thomson's Lamp）问题是 James Thomson 1954 年在 &lt;em&gt;Analysis&lt;/em&gt; 第 15 期中提出的，文章题为 &lt;a href="http://links.jstor.org/sici?sici=0003-2638(195410)15:1&amp;lt;1:TAS&amp;gt;2.0.CO;2-Y" target="_blank"&gt;&lt;em&gt;Tasks and super-tasks&lt;/em&gt;&lt;/a&gt;，也收录在 &lt;a href="http://en.wikipedia.org/wiki/Martin_Gardner" target="_blank"&gt;Martin Gardner&lt;/a&gt; 的 &lt;a href="http://www.amazon.com/Aha-Gotcha-Paradoxes-Delight-Transformation/dp/0716713616/ref=sr_1_26?ie=UTF8&amp;amp;s=books&amp;amp;qid=1196692676&amp;amp;sr=1-26" target="_blank"&gt;&lt;em&gt;Aha! Gotcha: Paradoxes to Puzzle and Delight (Tools for Transformation)&lt;/em&gt;&lt;/a&gt;（《&lt;a href="http://www.oursci.org/lib/paradox/index.html" target="_blank"&gt;从惊讶到思考——数学悖论奇景&lt;/a&gt;》）第六章《&lt;a href="http://www.oursci.org/lib/paradox/0080.html" target="_blank"&gt;超级任务&lt;/a&gt;》中。问题是这样描述的：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;一盏灯由一个开关控制。把灯开 1 分钟，再关 ½ 分钟，再开 ¼ 分钟，再关 ⅛ 分钟，……如此进行下去。试问，两分钟后灯是开着还是关着？&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;许多时候，这个问题和芝诺悖论（&lt;a href="http://en.wikipedia.org/wiki/Zeno's_paradoxes" target="_blank"&gt;Zeno's Paradoxes&lt;/a&gt;）中的阿喀琉斯悖论（Achilles and the Tortoise）联系在一起。阿喀琉斯悖论说的是古希腊神话英雄阿喀琉斯（Ἀχιλλεύς，Achilles）和乌龟赛跑，阿喀琉斯让乌龟先跑一段距离，然后从后面追赶。假定阿喀琉斯起跑时，乌龟已爬到 A。当阿喀琉斯跑到 A 时，乌龟又爬到 B，当阿喀琉斯跑到 B 时，乌龟又爬到 C，……也就是说，乌龟总是爬在阿喀琉斯前面，从而得出阿喀琉斯永远赶不上乌龟的结论。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;阿喀琉斯悖论当然有违常理。级数计算表明，A, B, C, ... 组成的序列是收敛的，阿喀琉斯最终能追上乌龟。难道芝诺的推理有问题？没有！芝诺的推理逻辑是严密的，没有漏洞。那漏洞在哪呢？不少人认为芝诺的推理有一个隐含的假设，即空间的无限可分性。如果否定空间的无限可分性，那阿喀琉斯悖论就不攻自破了。我认为这种解释并不妥当，有两个原因。一是物理世界的空间是不是无限可分的，目前无从知晓；二是即使空间是无限可分的，阿喀琉斯悖论也不成立。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;我们假设阿喀琉斯在 Z 处追上乌龟。如果空间是无限可分的，那么 A 和 Z 可以理解为实数轴上的两点。康托（Cantor）告诉我们，A 和 Z 之间有无穷多个点，并且这些点的个数和实数的基数一样，为 &lt;img src="http://ctt7zg.bay.livefilestore.com/y1pORmzTr0ZTeDNAOoMtbNlODifRCEYU11V5T5kg0SsVw8CQt4me-V0Hi2y7LLqad0brGLKMst41AI/c.gif"&gt;。另一方面，A, B, C, ... 也是个无穷序列，这个序列中的点的个数和自然数的基数相等，为 &lt;img src="http://ctt7zg.bay.livefilestore.com/y1pTFvr99Hcb2YD-Wuhwb1juN31lm2_PsXCIX02nbeakJy8XE6jwHtymbmTVrthrjhDhGT66lQre7A/alef0.gif"&gt;。这就引发了一个矛盾：芝诺试图用可数的 {A, B, C, ...} 去度量不可数的 [A, Z)。由于前者的基数比后者的小，用前者度量后者，结果只能是∞。这里的∞对应了阿喀琉斯永远赶不上乌龟。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;解决了阿喀琉斯悖论，我们回到汤姆孙灯问题。汤姆孙灯问题看起来和阿喀琉斯悖论有些相似，都涉及到无穷级数求和，共同的疑惑都是到达极限和之前存在着无休止的阻尼振荡运动，这个运动不会终结，所以问题看似不可解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;这种类比也许有理，但仅仅是表面现象，汤姆孙灯问题远没有阿喀琉斯悖论深刻和复杂。实际上，汤姆孙灯问题只是一个简单的函数求值问题。我们用 f(t) 表示 t 时刻汤姆孙灯的开关状态，f(t)=1 表示开，f(t)=0 表示关。显然，原题等价于求解 f(2) 的值。f(2) 是多少，我们不知道，因为原题只给出了 f(t), t∈[0,2) 的定义。也就是说，f(2) 是没有定义的！如此而已。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;我们又问，这样的话，我们就可以随意地定义 f(2) 为 0 或 1 了。那不是说，无论 f(2) 为何值，f(t) 总能依上面的开关规则过渡到 f(2)？换句话说，f(1.∞)&lt;sup&gt;【2】&lt;/sup&gt;既可以为 0，也可以为 1？这不是矛盾吗？&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;确是如此！因为当 t=1.∞ 时，开与关的时间间隔已经减小到 0 了。既然是 0，那此时无论灯是开着还是关着，都可以在没有时间损耗的前提下切换到另一状态。f(1.∞) 的确既等于 0，又等于 1。这违反了单值函数的定义，所以 f(t) 当 t→2&lt;sup&gt;-&lt;/sup&gt; 时的极限不存在。也就是 f(t) 在 t=2 附近不连续。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;至此，我们得到汤姆孙灯在两分钟这个时刻：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;(1) 其状态数学上无意义；&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;(2) 既是开着，也是关着。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;两个结果任选其一，都是正确的，含义不同罢了。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;对于第二个结果，也许有人会问：一盏灯怎么可能既是开着又是关着？是的，是有点超乎想象，但理论上确是可能的。如果再问：现实中这种情况也能发生吗？我想现实中不会存在这种开关不需要时间的灯。话说回来，如果这种开关出现在微观世界里，那不好说了，也许量子真有能耐改变了状态却不消耗时间。之所以这么说，因为我感觉这一概念似乎有助于解释奇异的电子双缝实验。&lt;/div&gt;
&lt;div style="font-size:1px;height:4px"&gt;&lt;/div&gt;
&lt;div style="border-right:#cccccc 1px solid;border-top:#cccccc 1px solid;border-left:#cccccc 1px solid;border-bottom:#cccccc 1px solid"&gt;
&lt;div style="border-right:#f6f6f6 4px solid;border-top:#f6f6f6 4px solid;border-left:#f6f6f6 4px solid;color:#666666;border-bottom:#f6f6f6 4px solid;background-color:#f6f6f6"&gt;
&lt;div style="text-indent:2em"&gt;【1】Thomson 这个名字有四种常见的译法：汤姆逊、汤姆孙、汤姆森和汤姆生，不知哪种是标准译名。比照 Edison 译为爱迪生，Simpson 译为辛普森，Amazon 译为亚马孙（逊），似乎后缀 -son / -zon 没有固定译法。汤姆生这个译名比较少见，汤姆森更适用于 Thomsen，亚马逊已被标准化为亚马孙。因此这里我选择了个人认为最合适的汤姆孙。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;【2】f(1.∞) 表示 lim f(t), t→2&lt;sup&gt;-&lt;/sup&gt;。&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e5%85%b3%e4%ba%8e%e6%b1%a4%e5%a7%86%e5%ad%99%e7%81%af%e9%97%ae%e9%a2%98%e7%9a%84%e8%a7%a3%e9%87%8a&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!685.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!685.entry</guid><pubDate>Tue, 04 Dec 2007 15:12:05 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!685/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!685.entry#comment</wfw:comment><dcterms:modified>2008-07-02T16:12:07Z</dcterms:modified></item><item><title>哈泽德的难题</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!580.entry</link><description>&lt;div&gt;&lt;a href="http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!580.entry"&gt;&lt;strong&gt;Hazard's Problem&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【摘要】本文给出了哈泽德覆面算题的解，并用计算机验证该结果。&lt;/div&gt;
&lt;div&gt;【分类】数学 » 算术 | 数学 » 数学游戏&lt;/div&gt;
&lt;div&gt;【标签】覆面算题 | Martin Gardner&lt;/div&gt;
&lt;div style="text-align:right"&gt;&lt;span style="border-right:#003366 1px solid;padding-right:6px;border-top:#003366 1px solid;padding-left:6px;padding-bottom:2px;border-left:#003366 1px solid;color:#ffffff;padding-top:2px;border-bottom:#003366 1px solid;background-color:#336699"&gt;2008-8-6&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;下面的乘法算式题（Cryptarithm Multiplication Problem）来自 Harry Hazard，收录于 &lt;a href="http://www.sciam.com/" target="_blank"&gt;&lt;em&gt;Scientific American&lt;/em&gt;&lt;/a&gt;（《科学美国人》）著名专栏作家 &lt;a href="http://en.wikipedia.org/wiki/Martin_Gardner" target="_blank"&gt;Martin Gardner&lt;/a&gt;（马丁·加德纳）主持的 &lt;a href="http://en.wikipedia.org/wiki/Martin_Gardner#Recreational_mathematics" target="_blank"&gt;Mathematical Games&lt;/a&gt; 1967 年的结集出版物 &lt;a href="http://www.amazon.com/numerology-Dr-Matrix-adventures-numerological/dp/B0006BRGQE/" target="_blank"&gt;&lt;em&gt;Numerology of Dr. Matrix&lt;/em&gt;&lt;/a&gt;。该书 1976 年再版时扩充并更名为 &lt;a href="http://www.amazon.com/Incredible-Dr-Matrix-Martin-Gardner/dp/068414669X/" target="_blank"&gt;&lt;em&gt;The Incredible Dr. Matrix&lt;/em&gt;&lt;/a&gt;，1985 年再次扩充并更名为 &lt;a href="http://www.amazon.com/Magic-Numbers-Matrix-Martin-Gardner/dp/0879752823/" target="_blank"&gt;&lt;em&gt;The Magic Numbers of Dr. Matrix&lt;/em&gt;&lt;/a&gt;。&lt;/div&gt;
&lt;div style="text-align:center"&gt;
&lt;div style="margin-top:8px;width:6em"&gt;
&lt;div style="padding-right:2px;text-align:right"&gt;LYNDON&lt;/div&gt;
&lt;div style="padding-left:2px;float:left"&gt;×&lt;/div&gt;
&lt;div style="padding-right:2px;float:right"&gt;B&lt;/div&gt;
&lt;div style="clear:both;font-size:1px;padding-top:3px;height:4px"&gt;
&lt;div style="height:1px;background-color:black"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="padding-right:2px;text-align:right"&gt;JOHNSON&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;算式中，相同的字母代表相同的数字，不同的字母代表不同的数字。&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;这道题有几个新巧的地方。首先，它在题面上嵌入了美国总统 Lyndon Baines Johnson（林登·贝恩斯·约翰逊）的名字；其次，从命题到解答，它仅仅涉及非常浅显的算术知识，但这并不意味着求解过程也同样简单。实际上，整个求解过程颇为繁琐；最后，更加难得的是，它竟然有唯一的答案，这多少有些出人意表。&lt;/div&gt;
&lt;div style="margin-top:8px;text-indent:2em"&gt;我们来试着解决这个问题。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;1&lt;/strong&gt; 已知：b,d,h,j,l,n,o,s,y 为互不相等的整数，且 0≤b,d,h,j,l,n,o,s,y≤9。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;2&lt;/strong&gt; 显然，b≠0,1，即 b≥2。否则，算式不成立。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3&lt;/strong&gt; 我们从低位开始依次建立等式。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.1&lt;/strong&gt; 考虑算式的最末位，有：nb=10x&lt;sub&gt;1&lt;/sub&gt;+n，即 n(b-1)=10x&lt;sub&gt;1&lt;/sub&gt;。因为 0≤n≤9，b≥2，n≠b，所以 (n,b) 可能的取值为 (0,2), (0,3), (0,4), (0,5), (0,6), (0,7), (0,8), (0,9), (2,6), (5,3), (4,6), (5,7), (5,9), (8,6)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.2&lt;/strong&gt; 考虑算式的末两位，有：(10o+n)b=100x&lt;sub&gt;2&lt;/sub&gt;+10o+n，即 (10o+n)(b-1)=100x&lt;sub&gt;2&lt;/sub&gt;。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.2.1&lt;/strong&gt; 若 n=0，则 10o(b-1)=100x&lt;sub&gt;2&lt;/sub&gt;，即 o(b-1)=10x&lt;sub&gt;2&lt;/sub&gt;。由 0≤o≤9，o≠n 得，(o,b) 可能的取值为 (2,6), (5,3), (4,6), (5,7), (5,9), (8,6)。即 (o,n,b) 可能的取值为 (2,0,6), (5,0,3), (4,0,6), (5,0,7), (5,0,9), (8,0,6)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.2.2&lt;/strong&gt; 若 b=6，则 (10o+n)×5=100x&lt;sub&gt;2&lt;/sub&gt;，即 10o+n=20x&lt;sub&gt;2&lt;/sub&gt;。由此可知 10|n，因为 0≤n≤9，所以 n=0。见 &lt;strong&gt;3.2.1&lt;/strong&gt;。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.2.3&lt;/strong&gt; 若 n=5，则 (10o+5)(b-1)=100x&lt;sub&gt;2&lt;/sub&gt;，即 (2o+1)(b-1)=20x&lt;sub&gt;2&lt;/sub&gt;。因为 2o+1 为奇数，所以 4|b-1。由 b≥2，b≠n 知 b=9。从而，o=2 或 7。即 (o,n,b) 可能的取值为 (2,5,9), (7,5,9)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;综合 &lt;strong&gt;3.2.1&lt;/strong&gt;、&lt;strong&gt;3.2.2&lt;/strong&gt; 及 &lt;strong&gt;3.2.3&lt;/strong&gt; 得，(o,n,b) 可能的取值为 (2,0,6), (5,0,3), (4,0,6), (5,0,7), (5,0,9), (8,0,6), (2,5,9), (7,5,9)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3&lt;/strong&gt; 考虑算式的末四位，有：(1000n+100d+10o+n)b=10000x&lt;sub&gt;3&lt;/sub&gt;+1000n+100s+10o+n，即 100db+(1001n+10o)(b-1)=10000x&lt;sub&gt;3&lt;/sub&gt;+100s。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.1&lt;/strong&gt; 若 n=0，则 100db+10o(b-1)=10000x&lt;sub&gt;3&lt;/sub&gt;+100s，即 db+o(b-1)/10=100x&lt;sub&gt;3&lt;/sub&gt;+s，即 100|db+o(b-1)/10-s。因为 db+o(b-1)/10-s&amp;lt;100，所以 db+o(b-1)/10-s=0。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.1.1&lt;/strong&gt; 若 (o,b)=(2,6)，则 6d+1-s=0。因为 d≠n，所以 d≠0，从而 d=1，s=7。即 (d,s,o,n,b) 可能的取值为 (1,7,2,0,6)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.1.2&lt;/strong&gt; 若 (o,b)=(5,3)，则 3d+1-s=0。因为 d≠n，所以 d≠0，从而 d=1，s=4 或 d=2，s=7。即 (d,s,o,n,b) 可能的取值为 (1,4,5,0,3), (2,7,5,0,3)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.1.3&lt;/strong&gt; 若 (o,b)=(4,6)，则 6d+2-s=0。因为 d≠n，所以 d≠0，从而 d=1，s=8。(d,s,o,n,b) 可能的取值为 (1,8,4,0,6)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.1.4&lt;/strong&gt; 若 (o,b)=(5,7)，则 7d+3-s=0。因为 d≠n，所以 d≠0。无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.1.5&lt;/strong&gt; 若 (o,b)=(5,9)，则 9d+4-s=0。因为 d≠n，所以 d≠0。无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.1.6&lt;/strong&gt; 若 (o,b)=(8,6)，则 6d+4-s=0。因为 d≠n，所以 d≠0。无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.2&lt;/strong&gt; 若 (n,b)=(5,9)，则 900d+8(5005+10o)=10000x&lt;sub&gt;3&lt;/sub&gt;+100s，即 90d+4004+8o=1000x&lt;sub&gt;3&lt;/sub&gt;+10s，即 100|9d+(2002+4o)/5-s。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.2.1&lt;/strong&gt; 若 o=2，则 100|9d+402-s。因为 393≤9d+402-s≤483，所以 9d+402-s=400，即 9d+2-s=0。因为 s≠o，所以 s≠2。无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.3.2.2&lt;/strong&gt; 若 o=7，则 100|9d+406-s。因为 397≤9d+406-s≤487，所以 9d+406-s=400，即 9d+6-s=0。从而 d=0，s=6。即 (d,s,o,n,b) 可能的取值为 (0,6,7,5,9)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;综合 &lt;strong&gt;3.3.1&lt;/strong&gt; 及 &lt;strong&gt;3.3.2&lt;/strong&gt; 得，(d,s,o,n,b) 可能的取值为 (1,7,2,0,6), (1,4,5,0,3), (2,7,5,0,3), (1,8,4,0,6), (0,6,7,5,9)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.4&lt;/strong&gt; 考虑算式的末五位，有：(10000y+1000n+100d+10o+n)b=100000x&lt;sub&gt;4&lt;/sub&gt;+10000h+1000n+100s+10o+n，即 10000yb+100db+(1001n+10o)(b-1)=100000x&lt;sub&gt;4&lt;/sub&gt;+10000h+100s。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.4.1&lt;/strong&gt; 若 n=0，则 10000yb+100db+10o(b-1)=100000x&lt;sub&gt;4&lt;/sub&gt;+10000h+100s，即 yb+(db+o(b-1)/10-s)/100=10x&lt;sub&gt;4&lt;/sub&gt;+h。由 &lt;strong&gt;3.3.1&lt;/strong&gt; 知 db+o(b-1)/10-s=0，所以 10|yb-h。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.4.1.1&lt;/strong&gt; 若 b=6，则 10|6y-h。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.4.1.1.1&lt;/strong&gt; 若 (d,s,o)=(1,7,2)，因为 y≠b，y≠s，h≠n，y≠h，所以 (y,h) 可能的取值为 (3,8), (9,4)。即 (y,h,d,s,o,n,b) 可能的取值为 (3,8,1,7,2,0,6), (9,4,1,7,2,0,6)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.4.1.1.2&lt;/strong&gt; 若 (d,s,o)=(1,8,4)，因为 y≠d，h≠s，h≠o，h≠n，y≠h，所以 (y,h) 可能的取值为 (7,2)。即 (y,h,d,s,o,n,b) 可能的取值为 (7,2,1,8,4,0,6)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.4.1.2&lt;/strong&gt; 若 b=3，则 10|3y-h。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.4.1.2.1&lt;/strong&gt; 若 (d,s,o)=(1,4,5)，因为 y≠b，y≠s，h≠b，h≠d，h≠s，y≠h，所以 (y,h) 可能的取值为 (2,6), (6,8), (9,7)。即 (y,h,d,s,o,n,b) 可能的取值为 (2,6,1,4,5,0,3), (6,8,1,4,5,0,3), (9,7,1,4,5,0,3)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.4.1.2.2&lt;/strong&gt; 若 (d,s,o)=(2,7,5)，因为 y≠b，y≠d，y≠s，h≠b，h≠d，h≠s，y≠h，所以 (y,h) 可能的取值为 (6,8), (8,4)。即 (y,h,d,s,o,n,b) 可能的取值为 (6,8,2,7,5,0,3), (8,4,2,7,5,0,3)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.4.2&lt;/strong&gt; 若 (d,s,o,n,b)=(0,6,7,5,9)，则 9y+4=10x&lt;sub&gt;4&lt;/sub&gt;+h。即 10|9y+4-h。因为 y≠d，y≠s，y≠n，h≠d，h≠s，h≠n，y≠h，所以 (y,h) 可能的取值为 (1,3), (3,1)。即 (y,h,d,s,o,n,b) 可能的取值为 (1,3,0,6,7,5,9), (3,1,0,6,7,5,9)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;综合 &lt;strong&gt;3.4.1&lt;/strong&gt; 及 &lt;strong&gt;3.4.2&lt;/strong&gt; 得，(y,h,d,s,o,n,b) 可能的取值为 (3,8,1,7,2,0,6), (9,4,1,7,2,0,6), (7,2,1,8,4,0,6), (2,6,1,4,5,0,3), (6,8,1,4,5,0,3), (9,7,1,4,5,0,3), (6,8,2,7,5,0,3), (8,4,2,7,5,0,3), (1,3,0,6,7,5,9), (3,1,0,6,7,5,9)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5&lt;/strong&gt; 考虑整个算式，有：(100000l+10000y+1000n+100d+10o+n)b=1000000j+100000o+10000h+1000n+100s+10o+n，即 100000lb+10000yb+100db+(1001n+10o)(b-1)=1000000j+100000o+10000h+100s。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.1&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(3,8,1,7,2,0,6)，则 6l=10j+1。因为左式为偶，右式为奇，所以无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.2&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(9,4,1,7,2,0,6)，则 6l=10j-3，因为左式为偶，右式为奇，所以无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.3&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(7,2,1,8,4,0,6)，则 6l=10j。因为 l≠j，所以 (l,j) 可能的取值为 (5,3)。即 (l,j,y,h,d,s,o,n,b)=(5,3,7,2,1,8,4,0,6)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.4&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(2,6,1,4,5,0,3)，则 3l=10j+5，即 l=5，j=1。因为 l≠o，所以无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.5&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(6,8,1,4,5,0,3)，则 3l=10j+4，即 l=8，j=2。因为 l≠h，所以无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.6&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(9,7,1,4,5,0,3)，则 3l=10j+3，即 l=1，j=0。因为 l≠d，所以无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.7&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(6,8,2,7,5,0,3)，则 3l=10j+4，即 l=8，j=2。因为 l≠h，所以无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.8&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(8,4,2,7,5,0,3)，则 3l=10j+3，即 l=1，j=0。因为 j≠n，所以无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.9&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(1,3,0,6,7,5,9)，则 9l=10j+6，即 l=4，j=3。因为 j≠h，所以无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;3.5.10&lt;/strong&gt; 若 (y,h,d,s,o,n,b)=(3,1,0,6,7,5,9)，则 9l=10j+4，即 l=6，j=5。因为 l≠s，所以无解。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;综合 &lt;strong&gt;3.5.1&lt;/strong&gt; 至 &lt;strong&gt;3.5.10&lt;/strong&gt; 可知，本题有唯一解 (l,j,y,h,d,s,o,n,b)=(5,3,7,2,1,8,4,0,6)，即：&lt;/div&gt;
&lt;div style="text-align:center"&gt;
&lt;div style="margin-top:8px;width:6em"&gt;
&lt;div style="padding-right:2px;text-align:right"&gt;570140&lt;/div&gt;
&lt;div style="padding-left:2px;float:left"&gt;×&lt;/div&gt;
&lt;div style="padding-right:2px;float:right"&gt;6&lt;/div&gt;
&lt;div style="clear:both;font-size:1px;padding-top:3px;height:4px"&gt;
&lt;div style="height:1px;background-color:black"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="padding-right:2px;text-align:right"&gt;3420840&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h5 style="margin-top:8px"&gt;❏验证程序&lt;/h5&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-top:8px;border-left:#999999 1px solid;width:6em;background-color:#dddddd;text-align:center"&gt;Python&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;border-left:#999999 1px solid;border-bottom:#999999 1px solid;font-family:Consolas, Courier New"&gt;
&lt;div style="border-right:#999999 1px solid;padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;width:2em;color:gray;padding-top:4px;text-align:right"&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;div&gt;9&lt;/div&gt;
&lt;div&gt;10&lt;/div&gt;
&lt;div&gt;11&lt;/div&gt;
&lt;div&gt;12&lt;/div&gt;
&lt;div&gt;13&lt;/div&gt;
&lt;div&gt;14&lt;/div&gt;
&lt;div&gt;15&lt;/div&gt;
&lt;div&gt;16&lt;/div&gt;
&lt;div&gt;17&lt;/div&gt;
&lt;div&gt;18&lt;/div&gt;
&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;
&lt;div style="padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;color:#333333;padding-top:4px"&gt;
&lt;div&gt;&lt;span style="color:#cc0000"&gt;# Hazard.py - Hazard's Problem&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cc0000"&gt;# Copyright © 2008 Roy Fang &amp;lt;royfang@hotmail.com&amp;gt;. All rights reserved.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;l = 10&lt;/div&gt;
&lt;div&gt;a = &lt;span style="color:#990099"&gt;range&lt;/span&gt;(l)&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#ff6600"&gt;def&lt;/span&gt; &lt;span style="color:#0000ff"&gt;permute&lt;/span&gt;(n):&lt;/div&gt;
&lt;div&gt;    &lt;span style="color:#ff6600"&gt;if&lt;/span&gt; n &amp;gt; 1:&lt;/div&gt;
&lt;div&gt;        &lt;span style="color:#ff6600"&gt;for&lt;/span&gt; i &lt;span style="color:#ff6600"&gt;in&lt;/span&gt; &lt;span style="color:#990099"&gt;range&lt;/span&gt;(n):&lt;/div&gt;
&lt;div&gt;            &lt;span style="color:#ff6600"&gt;if&lt;/span&gt; i &amp;gt; 0:&lt;/div&gt;
&lt;div&gt;                m = n - 1 &lt;span style="color:#ff6600"&gt;if&lt;/span&gt; n == 2 &lt;span style="color:#ff6600"&gt;or&lt;/span&gt; n % 2 &lt;span style="color:#ff6600"&gt;else&lt;/span&gt; i - (i == n - 1) &lt;/div&gt;
&lt;div&gt;                a[-n], a[-m] = a[-m], a[-n]&lt;/div&gt;
&lt;div&gt;            permute(n - 1)&lt;/div&gt;
&lt;div&gt;    &lt;span style="color:#ff6600"&gt;else&lt;/span&gt;:&lt;/div&gt;
&lt;div&gt;        atoi = &lt;span style="color:#ff6600"&gt;lambda&lt;/span&gt; *s: &lt;span style="color:#990099"&gt;reduce&lt;/span&gt;(&lt;span style="color:#ff6600"&gt;lambda&lt;/span&gt; x, y: x * 10 + y, s)&lt;/div&gt;
&lt;div&gt;        p = atoi(a[0], a[1], a[2], a[3], a[4], a[2])&lt;/div&gt;
&lt;div&gt;        q = a[5]&lt;/div&gt;
&lt;div&gt;        r = atoi(a[6], a[4], a[7], a[2], a[8], a[4], a[2])&lt;/div&gt;
&lt;div&gt;        &lt;span style="color:#ff6600"&gt;if&lt;/span&gt; p * q == r:&lt;/div&gt;
&lt;div&gt;            &lt;span style="color:#ff6600"&gt;print&lt;/span&gt; p, &lt;span style="color:#009900"&gt;'*'&lt;/span&gt;, q, &lt;span style="color:#009900"&gt;'='&lt;/span&gt;, r&lt;/div&gt;
&lt;div&gt;permute(l)&lt;/div&gt;&lt;/div&gt;
&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e5%93%88%e6%b3%bd%e5%be%b7%e7%9a%84%e9%9a%be%e9%a2%98&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!580.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!580.entry</guid><pubDate>Thu, 08 Nov 2007 19:34:52 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!580/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!580.entry#comment</wfw:comment><dcterms:modified>2008-08-05T17:29:59Z</dcterms:modified></item><item><title>无处不在的相似</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!439.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】数学 » 分形&lt;/div&gt;
&lt;div&gt;【标签】L 系统 | IFS&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;彭罗斯镶嵌&lt;/strong&gt;（&lt;a href="http://mathworld.wolfram.com/PenroseTiles.html" target="_blank"&gt;Penrose Tiles&lt;/a&gt;）：许多人通过罗杰·彭罗斯（Roger Penrose）的《皇帝新脑》（&lt;em&gt;The Emperor's New Mind&lt;/em&gt;）认识彭罗斯镶嵌。彭罗斯镶嵌是非周期平面镶嵌的例子，也是迄今这类镶嵌的最简形式——只用一对花砖即可非周期地铺满整个平面。下图的花砖被称为 thick rhombus 和 thin rhombus。书中还有一种镶嵌方法更为知名，其花砖被称为 kite 和 dart。实际上，这两种方法完全等价，并且可以相互转换。 
&lt;div style="margin-top:4px;margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pICdHKiMjkEVq9SIKvzG8pAVpghp-lHa96cqlWq0AawUs9cp93xdrdM5ME2yBz-HmNxKZzy5pLUc/penrose.gif" border=0&gt;&lt;/div&gt;
&lt;li&gt;&lt;strong&gt;希尔伯特曲线&lt;/strong&gt;（&lt;a href="http://mathworld.wolfram.com/HilbertCurve.html" target="_blank"&gt;Hilbert Curve&lt;/a&gt;）：完全覆盖平面的曲线。类似的还有皮亚诺曲线（&lt;a href="http://mathworld.wolfram.com/PeanoCurve.html" target="_blank"&gt;Peano Curve&lt;/a&gt;），只是皮亚诺曲线需要动画才有较好的视觉效果。 
&lt;div style="margin-top:4px;margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pPY45zguZ2txC8Guja6B5BTVuVV3MhYwDKS-9R26O06nBn6MZf_IS2tem4Ro4xGeaOvi4vrLCdmI/hilbert1.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pc13ybZqf1HIGypEu3c3R6e4lFyFrMOSzB2CRXMoiQRB6fOkw7mX9jdw3OuSGODtaTPKqGzhk-Zk/hilbert2.gif" border=0&gt;&lt;/div&gt;
&lt;li&gt;&lt;strong&gt;Koch 雪花&lt;/strong&gt;（&lt;a href="http://mathworld.wolfram.com/KochSnowflake.html" target="_blank"&gt;Koch Snowflake&lt;/a&gt;） 
&lt;div style="margin-top:4px;margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pArgxJ-KEv7-BWWuS-yOEPhZtk91oHJtOiF-Fkg1E6cFIaUkAABq1zblSaUgS8GgEOMPr9CfjkrM/snowflake.gif" border=0&gt;&lt;/div&gt;
&lt;li&gt;&lt;strong&gt;龙曲线&lt;/strong&gt;（&lt;a href="http://mathworld.wolfram.com/DragonCurve.html" target="_blank"&gt;Dragon Curve&lt;/a&gt;） 
&lt;div style="margin-top:4px;margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pojHkKEj1PH3CC0jDdGG4DUgjGBs-7nTPFG39x8Yi4lfKe3RxlVKZrNwJlVqBrPt2yPK8PGHOBPk/dragon.gif" border=0&gt;&lt;/div&gt;
&lt;li&gt;&lt;strong&gt;谢尔宾斯基曲线&lt;/strong&gt;（&lt;a href="http://mathworld.wolfram.com/SierpinskiSieve.html" target="_blank"&gt;Sierpinski Sieve&lt;/a&gt;、&lt;a href="http://mathworld.wolfram.com/SierpinskiCarpet.html" target="_blank"&gt;Sierpinski Carpet&lt;/a&gt;、&lt;a href="http://mathworld.wolfram.com/SierpinskiArrowheadCurve.html" target="_blank"&gt;Sierpinski Arrowhead Curve&lt;/a&gt;） 
&lt;div style="margin-top:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pdepDQ5ijGedhVF1QSGYXfnF8Lc-UxnXxS5a3tWsM5zJMuWHm6J47md6c1xumQq7-KjFAs-j2fAc/s-sieve.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pcV9TWEzimoYm63wvsgV126iLJfRl5navn97mjct70t_NWa8xiIDSo56nOcBfZbxPmG-02EnjOJQ/s-carpet.gif" border=0&gt;&lt;/div&gt;
&lt;div style="margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pICdHKiMjkEVNVR3vKgAUZw0QgnViclSCcIYfmGCDNNKrd2bcF2z4fGu_4ANLacZCAF7S2tKPwzI/s-arrowhead.gif" border=0&gt;&lt;/div&gt;
&lt;li&gt;&lt;strong&gt;更多曲线&lt;/strong&gt; 
&lt;div style="margin-top:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pArgxJ-KEv7-1hpetFRS9HbB3bjXnPbRtCSt55YJsihbPK5zEIWeiBJM6E2E0xktYhhtSI8LkAR8/spiral1.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pdepDQ5ijGeedUBwhxBMShDbYnCYt1gNbG__-ixTi3RoTaWVDI3IecqLhWJu-O_aqTGey4JnKfFU/spiral2.gif" border=0&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pcV9TWEzimoZnrdPiazrbx3eC92HOxxVireds_hgoQlRO4fDLeQK9rMj6osdcqHMDDTJsfnJc25c/snefnug1.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pArgxJ-KEv79q4KENAku6WckFNsgF_oZa1Exge7kgDz4Oul_1RkiL1R0di44HGGxzko1JlEdqWQ4/snefnug2.gif" border=0&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pRVELd2vJx71qDATAZ0UV2aYOZM9o_9skpBO5P29PDRbjy5Z3HLH8PSO7muDPHHXntTD617gd-Jw/curve1.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pRVELd2vJx72uKfQI-XxtF4aXjR77eER0wt_cl3xY9ojRwWiwEjQkACpf-ELaYu1PbkC0QngL0TE/curve2.gif" border=0&gt;&lt;/div&gt;
&lt;div style="margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pJ_ynGQixenOOXgjHFPG8PTovggjbRQOtzS2nPSWVpy-L3X0gHFaN7knXlrq7Co01TNWZ6M0MHxw/curve3.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pJ_ynGQixenNxtuOIxSs72K4FWrU9J80V0Z8ICFr8zHEqyoDm4G1qs4IJlAiAkpuyjW_AdC1f3CE/curve4.gif" border=0&gt;&lt;/div&gt;
&lt;li&gt;&lt;strong&gt;灌木&lt;/strong&gt; 
&lt;div style="margin-top:4px;margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1p3sq7CvwlxiSc5eJ3r97WT3nmeSMdL1o2XIXj55NVRqIuTCYiQg3fbSxk4fXQ5niiUJSbveWLVUQ/bush.gif" border=0&gt;&lt;/div&gt;
&lt;li&gt;&lt;strong&gt;蕨类植物&lt;/strong&gt;：&lt;a href="http://mathworld.wolfram.com/BarnsleysFern.html" target="_blank"&gt;Barnsley's Fern&lt;/a&gt; 群 
&lt;div style="margin-top:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pXGwOwlGksT1UU_xPCI80QdP2n4l0vuNAA5IjcQIgCJHwAlz-3tx_QrdPt0DVl8xrZ-7v4x88h9A/fern0.png" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1p0hC8yHiVm3d4O96DseKV-cUt9qfUsk4FAm2cfpTKukEJngn7Sl_2aK5HYex5s0vZixLVAN2ZtxI/windfern.gif" border=0&gt;&lt;/div&gt;
&lt;div style="margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pXGwOwlGksT3TdC4yiF6PcB9PwOc1n4pKqTrvRwHfpAhiB7nTEQo6VRp07IOhtgFazLcNl6NjtY8/fern1.png" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1plSw53lzsz0AjMTn_swvInKR9sa0IQslfKCqH8L6FNPFYCfhqXIkbQtPlQXgNimAkUkK1weNCgDI/fern2.png" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pJ4rnQVrCb_hjjNQgXBGRjHq06Cag0HrUs2jc6OW946TAO_mJ2p7pilnb_wSeWF-jeCJRjpyy5yw/fern3.png" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1p9px16PbTgFvkgbauxoWvJc9QHk82yz8rTcN---NvjOllrclNlB0jlYhsoYdQtAYtriNiSLFLVbc/fern4.png" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pYypmZXBcDMR6K9vPiyA84-5S2M8vA5Chhh5oQUdyyUwIGGiAyR--os1MUEGkwYYPx-B0gvxW3Es/fern5.png" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pEggAsD8W3RjqMRIgJTN9ATYVYDm_rGcmJBhwo7ystnaLeG5Vz3suMGD7k4i-uO6M4uBLDDKUahs/fern6.png" border=0&gt;&lt;/div&gt;
&lt;li&gt;&lt;strong&gt;树&lt;/strong&gt; 
&lt;div style="margin-top:4px;margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pNUv_oaJbvgjgW67CRGGQE8-BmN4mbQRUFTKdsePvSldliM4dqCL1d0xdCWZuXKwsoXOye8l01mI/tree1.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1prn5GQF1Shzn9VX4shnMWIugqCnUfxeT8swiWXephjPvH1rfjOb27adVlP8Uf_C7ERQaBR8B0i3M/tree2.gif" border=0&gt;&lt;/div&gt;
&lt;div style="font-size:1px;height:4px"&gt;&lt;/div&gt;
&lt;li&gt;&lt;strong&gt;山&lt;/strong&gt; 
&lt;div style="margin-top:4px;margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pICdHKiMjkEXqQ8yV6drzpcYA1-pRiS3TI1sRxRcKcSEMtfY10jOH14guc9Ro97g76l8HOUmoLgY/mountain.gif" border=0&gt;&lt;/div&gt;&lt;/ul&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e6%97%a0%e5%a4%84%e4%b8%8d%e5%9c%a8%e7%9a%84%e7%9b%b8%e4%bc%bc&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!439.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!439.entry</guid><pubDate>Tue, 30 May 2006 04:47:34 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!439/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!439.entry#comment</wfw:comment><dcterms:modified>2008-07-02T16:55:08Z</dcterms:modified></item><item><title>屏幕刻度尺</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!433.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】计算机 » 软件 » 图形图像&lt;/div&gt;
&lt;div&gt;【标签】刻度尺&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;漂亮的半透明&lt;a href="http://ctt7zg.bay.livefilestore.com/y1pFGhuf7bvURa8Kpv3PpVFqPutNBNuLnC-ESmDZfzZgp__hOMpt0fUg8GD5RSpt3QPLDWHQomn1P2ORQFwsuaVdA/Ruler.exe"&gt;屏幕刻度尺&lt;/a&gt;。程序设计参考了 Jeff Key 的&lt;a href="http://www.sliver.com/dotnet/ruler/" target="_blank"&gt;同题作品&lt;/a&gt;。&lt;/div&gt;
&lt;div style="margin-top:4px;margin-bottom:4px;margin-left:2em"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1peRXuisETB_7-Q-8gwQHH8QQe5QR1DKc4AmChE1t8mOvN9oFzJxuu2Y22eE6mObC_YRBfztrJUfRtrnnkj2PhEQ/ruler.jpg" border=0&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;本软件需要 &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;amp;displaylang=zh-cn" target="_blank"&gt;Microsoft .NET Framework 2.0&lt;/a&gt; 支持。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e5%b1%8f%e5%b9%95%e5%88%bb%e5%ba%a6%e5%b0%ba&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!433.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!433.entry</guid><pubDate>Sat, 20 May 2006 00:43:55 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!433/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!433.entry#comment</wfw:comment><dcterms:modified>2008-07-02T17:14:33Z</dcterms:modified></item><item><title>不规范的隐式类型转换</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!409.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】计算机 » 编程语言&lt;/div&gt;
&lt;div&gt;【标签】C# | Java | 隐式转换&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;C# 2.0 有一值得商榷的类型转换问题。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;我们知道，double 到 int 的转换必须是显式的，否则会出现编译错误。但是下面的语句却可以正常编译而得不到任何错误或警告信息。&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-top:4px;margin-left:2em;border-left:#999999 1px solid;width:6em;background-color:#dddddd;text-align:center;font-variant:small-caps"&gt;C#&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-bottom:4px;margin-left:2em;border-left:#999999 1px solid;border-bottom:#999999 1px solid"&gt;
&lt;div style="border-right:#999999 1px solid;padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;width:2em;color:gray;padding-top:4px;text-align:right"&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;
&lt;div style="padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;color:#333333;padding-top:4px"&gt;
&lt;div&gt;&lt;span style="color:#0000ff"&gt;foreach&lt;/span&gt; (&lt;span style="color:#0000ff"&gt;int&lt;/span&gt; value &lt;span style="color:#0000ff"&gt;in&lt;/span&gt; &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#0000ff"&gt;double&lt;/span&gt;[] { &lt;span style="color:#993300"&gt;0.5&lt;/span&gt; })&lt;/div&gt;
&lt;div&gt;{&lt;/div&gt;
&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;
&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;查看 IL 可知，编译器在此进行了隐式转换：&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-top:4px;margin-left:2em;border-left:#999999 1px solid;width:6em;background-color:#dddddd;text-align:center;font-variant:small-caps"&gt;IL&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-bottom:4px;margin-left:2em;border-left:#999999 1px solid;border-bottom:#999999 1px solid"&gt;
&lt;div style="border-right:#999999 1px solid;padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;width:2em;color:gray;padding-top:4px;text-align:right"&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;
&lt;div style="padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;color:#333333;padding-top:4px"&gt;
&lt;div&gt;&lt;span style="color:#0000ff"&gt;ldc.r8&lt;/span&gt; &lt;span style="color:#993300"&gt;0.5&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#666666"&gt;...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#0000ff"&gt;ldelem.r8&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#0000ff"&gt;conv.i4&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;这似乎不符合 &lt;em&gt;C# Language Specification 3&lt;sup&gt;rd&lt;/sup&gt; Edition&lt;/em&gt; 13.2.1 的描述。&lt;/div&gt;
&lt;div style="margin-left:2em"&gt;
&lt;hr&gt;
&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;Java 5.0 也有类似的问题。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;下面这段代码无法通过编译。&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-top:4px;margin-left:2em;border-left:#999999 1px solid;width:6em;background-color:#dddddd;text-align:center;font-variant:small-caps"&gt;Java&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-bottom:4px;margin-left:2em;border-left:#999999 1px solid;border-bottom:#999999 1px solid"&gt;
&lt;div style="border-right:#999999 1px solid;padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;width:2em;color:gray;padding-top:4px;text-align:right"&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;
&lt;div style="padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;color:#333333;padding-top:4px"&gt;
&lt;div&gt;&lt;span style="color:#0000ff"&gt;int&lt;/span&gt; value = &lt;span style="color:#993300"&gt;1&lt;/span&gt;;&lt;/div&gt;
&lt;div&gt;value = value + &lt;span style="color:#993300"&gt;0.5&lt;/span&gt;;&lt;/div&gt;&lt;/div&gt;
&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;而与它等价的语法却可以顺利编译，也不会有任何警告信息。&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-top:4px;margin-left:2em;border-left:#999999 1px solid;width:6em;background-color:#dddddd;text-align:center;font-variant:small-caps"&gt;Java&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-bottom:4px;margin-left:2em;border-left:#999999 1px solid;border-bottom:#999999 1px solid"&gt;
&lt;div style="border-right:#999999 1px solid;padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;width:2em;color:gray;padding-top:4px;text-align:right"&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;
&lt;div style="padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;color:#333333;padding-top:4px"&gt;
&lt;div&gt;&lt;span style="color:#0000ff"&gt;int&lt;/span&gt; value = &lt;span style="color:#993300"&gt;1&lt;/span&gt;;&lt;/div&gt;
&lt;div&gt;value += &lt;span style="color:#993300"&gt;0.5&lt;/span&gt;;&lt;/div&gt;&lt;/div&gt;
&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;查看 Bytecode 可知，编译器在此也进行了隐式转换：&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-top:4px;margin-left:2em;border-left:#999999 1px solid;width:6em;background-color:#dddddd;text-align:center;font-variant:small-caps"&gt;Bytecode&lt;/div&gt;
&lt;div style="border-right:#999999 1px solid;border-top:#999999 1px solid;margin-left:2em;border-left:#999999 1px solid;border-bottom:#999999 1px solid"&gt;
&lt;div style="border-right:#999999 1px solid;padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;width:2em;color:gray;padding-top:4px;text-align:right"&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;
&lt;div style="padding-right:8px;padding-left:8px;float:left;padding-bottom:4px;color:#333333;padding-top:4px"&gt;
&lt;div&gt;&lt;span style="color:#666666"&gt;iconst_1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#666666"&gt;istore_0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#0000ff"&gt;iload_0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#0000ff"&gt;i2d&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#666666"&gt;ldc2_w 0.5&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#666666"&gt;dadd&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#0000ff"&gt;d2i&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#666666"&gt;istore_0&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;color:#999999;text-align:right"&gt;最后修订：2008-6-4&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e4%b8%8d%e8%a7%84%e8%8c%83%e7%9a%84%e9%9a%90%e5%bc%8f%e7%b1%bb%e5%9e%8b%e8%bd%ac%e6%8d%a2&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!409.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!409.entry</guid><pubDate>Thu, 09 Feb 2006 23:29:49 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!409/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!409.entry#comment</wfw:comment><dcterms:modified>2008-06-19T18:59:10Z</dcterms:modified></item><item><title>天平分堆问题</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!405.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】数学 » 组合数学 | 数学 » 数学游戏&lt;/div&gt;
&lt;div&gt;【标签】天平 | 砝码 | 分堆问题&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;有这样一个问题：现有一台无刻度的天平和质量为 2 克、7 克的砝码各一只。要求只称三次，将 140 克的盐分为 50 克和 90 克两堆。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;这道题找出一个答案并不难，难在要找出所有答案。我们来试着解决这个问题。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;容易知道，类似的天平称重问题一般涉及两类已知量，一类是可分合的量，如题中的盐；另一类是不可变的量，如题中的砝码。每一次称重，我们所做的操作无非是以下二者之一：(1) 将物品置于天平两端，物品总量已知；(2) 只将物品置于天平一端。不论哪项操作，都允许在天平两端放上零个或多个砝码。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;假定当前分堆集合为 S&lt;sub&gt;n&lt;/sub&gt;，原始砝码集合为 W&lt;sub&gt;0&lt;/sub&gt;，我们选择 S&lt;sub&gt;n&lt;/sub&gt; 的子集 P 进行新的分堆，用 t 表示 P 的总质量，t&amp;gt;0。而不在 P 中的 S&lt;sub&gt;n&lt;/sub&gt; 的分堆可以临时作为砝码使用，即 W&lt;sub&gt;n&lt;/sub&gt;=W&lt;sub&gt;0&lt;/sub&gt;∪(S&lt;sub&gt;n&lt;/sub&gt;-P)。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;再设称重时天平左端物品质量为 x，砝码为 a，右端物品质量为 y，砝码为 b，那么天平平衡的条件是 x+a=y+b。不妨设 x≥y，从而 a≤b。因为 x=0 及 x=t 无意义，我们有 0&amp;lt;x&amp;lt;t。于是上面两种称重方法可以表示为两个方程组：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;① x+a=y+b, x+y=t, y&amp;gt;0&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;② x+a=y+b, 0&amp;lt;x&amp;lt;t, y=0&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;解得：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;① x=(t+(b-a))/2, y=(t-(b-a))/2, y&amp;gt;0&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;② x=b-a, 0&amp;lt;x&amp;lt;t, y=0&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;令 r=b-a，解简化为：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;① x=(t+r)/2, y=(t-r)/2, y&amp;gt;0&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;② x=r, 0&amp;lt;x&amp;lt;t, y=0&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;从而得到新的分堆：Q={x,y} 或 Q={x,t-x}，且 S&lt;sub&gt;n+1&lt;/sub&gt;=S&lt;sub&gt;n&lt;/sub&gt;-P+Q。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;回到原题，根据前面分析可知，S&lt;sub&gt;0&lt;/sub&gt;={140}，W&lt;sub&gt;0&lt;/sub&gt;={2,7}，R&lt;sub&gt;0&lt;/sub&gt;={0,2,5,7,9}。将 S、R 代入方程组①②得：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;(X,Y)={(70,70),(71,69),(72½,67½),(73½,66½),(74½,65½),(2,0),(5,0),(7,0),(9,0)}&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;这就是第一次称重能得到的全部分堆。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;构造新的 S 和 R，重复解方程组①②得到第二、三次分堆。结果如下：&lt;/div&gt;
&lt;table style="margin-top:4px;margin-bottom:4px;margin-left:2em;color:#666666;border-collapse:collapse;text-align:center" bordercolor="#cccccc" cellspacing=0 cellpadding=0 width="80%" border=1&gt;
&lt;tbody&gt;
&lt;tr bgcolor="#e8e8e8"&gt;
&lt;td width="25%"&gt;0 
&lt;td width="25%"&gt;1 
&lt;td width="25%"&gt;2 
&lt;td width="25%"&gt;3 
&lt;tr&gt;
&lt;td&gt;S={140}&lt;br&gt;R={0,2,5,7,9} 
&lt;td&gt;(x,y)=(70,70)&lt;br&gt;S={70,70}&lt;br&gt;R={0,2,5,7,9,61,63,65,&lt;br&gt;68,70,72,75,77,79} 
&lt;td&gt;(x,y)=(35,35)&lt;br&gt;S={35,35,70}&lt;br&gt;R={0,2,5,7,9,26,28,30,&lt;br&gt;33,35,37,40,42,44,61,&lt;br&gt;63,65,68,70,72,75,77,&lt;br&gt;79,96,98,100,103,105,&lt;br&gt;107,110,112,114} 
&lt;td&gt;(x,y)=(17½,17½)&lt;br&gt;S={17½,17½,35,70} 
&lt;tr&gt;
&lt;td colspan=4&gt;此处略去 39770 行……&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-indent:2em"&gt;最后，从第三次称重后的 S 中取出和为 50（或 90）的若干分堆，即是问题的答案，共 63 解。&lt;/div&gt;
&lt;table style="margin-top:4px;margin-bottom:4px;margin-left:2em;color:#666666;border-collapse:collapse;text-align:center" bordercolor="#cccccc" cellspacing=0 cellpadding=0 width="80%" border=1&gt;
&lt;tbody&gt;
&lt;tr bgcolor="#e8e8e8"&gt;
&lt;td width="10%"&gt;  
&lt;td width="30%"&gt;1 
&lt;td width="30%"&gt;2 
&lt;td width="30%"&gt;3 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;1 
&lt;td&gt;(5,135) 
&lt;td&gt;(5,14,121) 
&lt;td&gt;(5,14,50,71) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;2 
&lt;td&gt;(5,135) 
&lt;td&gt;(5,64,71) 
&lt;td&gt;(5,14,50,71) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;3 
&lt;td&gt;(5,135) 
&lt;td&gt;(5,64,71) 
&lt;td&gt;(5,21,50,64) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;4 
&lt;td&gt;(7,133) 
&lt;td&gt;(7,12,121) 
&lt;td&gt;(7,12,50,71) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;5 
&lt;td&gt;(7,133) 
&lt;td&gt;(7,14,119) 
&lt;td&gt;(7,14,50,69) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;6 
&lt;td&gt;(7,133) 
&lt;td&gt;(7,62,71) 
&lt;td&gt;(7,12,50,71) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;7 
&lt;td&gt;(7,133) 
&lt;td&gt;(7,62,71) 
&lt;td&gt;(7,21,50,62) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;8 
&lt;td&gt;(7,133) 
&lt;td&gt;(7,63,70) 
&lt;td&gt;(7,27,43,63) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;9 
&lt;td&gt;(7,133) 
&lt;td&gt;(7,64,69) 
&lt;td&gt;(7,14,50,69) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;10 
&lt;td&gt;(7,133) 
&lt;td&gt;(7,64,69) 
&lt;td&gt;(7,19,50,64) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;11 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,11,120) 
&lt;td&gt;(9,11,50,70) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;12 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,16,115) 
&lt;td&gt;(9,16,25,90) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;13 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,16,115) 
&lt;td&gt;(9,16,34,81) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;14 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,18,113) 
&lt;td&gt;(9,18,23,90) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;15 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,18,113) 
&lt;td&gt;(9,18,32,81) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;16 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,18,113) 
&lt;td&gt;(9,18,50,63) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;17 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,60,71) 
&lt;td&gt;(9,30,41,60) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;18 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,61,70) 
&lt;td&gt;(9,11,50,70) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;19 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,61,70) 
&lt;td&gt;(9,20,50,61) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;20 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,63,68) 
&lt;td&gt;(9,13,50,68) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;21 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,63,68) 
&lt;td&gt;(9,18,50,63) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;22 
&lt;td&gt;(9,131) 
&lt;td&gt;(9,63,68) 
&lt;td&gt;(9,27,41,63) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;23 
&lt;td&gt;(65½,74½) 
&lt;td&gt;(18,56½,65½) 
&lt;td&gt;(18,32,33½,56½) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;24 
&lt;td&gt;(66½,73½) 
&lt;td&gt;(16,57½,66½) 
&lt;td&gt;(16,32½,34,57½) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;25 
&lt;td&gt;(69,71) 
&lt;td&gt;(5,64,71) 
&lt;td&gt;(5,14,50,71) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;26 
&lt;td&gt;(69,71) 
&lt;td&gt;(5,64,71) 
&lt;td&gt;(5,21,50,64) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;27 
&lt;td&gt;(69,71) 
&lt;td&gt;(7,62,71) 
&lt;td&gt;(7,12,50,71) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;28 
&lt;td&gt;(69,71) 
&lt;td&gt;(7,62,71) 
&lt;td&gt;(7,21,50,62) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;29 
&lt;td&gt;(69,71) 
&lt;td&gt;(7,64,69) 
&lt;td&gt;(7,14,50,69) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;30 
&lt;td&gt;(69,71) 
&lt;td&gt;(7,64,69) 
&lt;td&gt;(7,19,50,64) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;31 
&lt;td&gt;(69,71) 
&lt;td&gt;(9,60,71) 
&lt;td&gt;(9,30,41,60) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;32 
&lt;td&gt;(69,71) 
&lt;td&gt;(11,60,69) 
&lt;td&gt;(11,21,39,69) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;33 
&lt;td&gt;(69,71) 
&lt;td&gt;(11,60,69) 
&lt;td&gt;(11,30,39,60) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;34 
&lt;td&gt;(69,71) 
&lt;td&gt;(30,39,71) 
&lt;td&gt;(11,30,39,60) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;35 
&lt;td&gt;(69,71) 
&lt;td&gt;(30,39,71) 
&lt;td&gt;(21,30,39,50) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;36 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,38,71) 
&lt;td&gt;(12,19,38,71) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;37 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,38,71) 
&lt;td&gt;(12,31,38,59) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;38 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,38,71) 
&lt;td&gt;(19,19,31,71) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;39 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,38,71) 
&lt;td&gt;(19,31,38,52) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;40 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,38,71) 
&lt;td&gt;(21,31,38,50) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;41 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,38,71) 
&lt;td&gt;(31,50,59) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;42 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,38,71) 
&lt;td&gt;(38,50,52) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;43 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,40,69) 
&lt;td&gt;(10,31,40,59) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;44 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,40,69) 
&lt;td&gt;(19,21,31,69) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;45 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,40,69) 
&lt;td&gt;(19,31,40,50) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;46 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,40,69) 
&lt;td&gt;(31,50,59) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;47 
&lt;td&gt;(69,71) 
&lt;td&gt;(31,40,69) 
&lt;td&gt;(40,50,50) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;48 
&lt;td&gt;(69,71) 
&lt;td&gt;(32,37,71) 
&lt;td&gt;(18,32,37,53) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;49 
&lt;td&gt;(69,71) 
&lt;td&gt;(32,39,69) 
&lt;td&gt;(11,21,39,69) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;50 
&lt;td&gt;(69,71) 
&lt;td&gt;(33,38,69) 
&lt;td&gt;(12,21,38,69) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;51 
&lt;td&gt;(69,71) 
&lt;td&gt;(33,38,69) 
&lt;td&gt;(12,33,38,57) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;52 
&lt;td&gt;(69,71) 
&lt;td&gt;(33,38,69) 
&lt;td&gt;(17,33,38,52) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;53 
&lt;td&gt;(69,71) 
&lt;td&gt;(33,38,69) 
&lt;td&gt;(19,33,38,50) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;54 
&lt;td&gt;(69,71) 
&lt;td&gt;(33,38,69) 
&lt;td&gt;(33,50,57) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;55 
&lt;td&gt;(69,71) 
&lt;td&gt;(33,38,69) 
&lt;td&gt;(38,50,52) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;56 
&lt;td&gt;(70,70) 
&lt;td&gt;(7,63,70) 
&lt;td&gt;(7,27,43,63) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;57 
&lt;td&gt;(70,70) 
&lt;td&gt;(9,61,70) 
&lt;td&gt;(9,11,50,70) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;58 
&lt;td&gt;(70,70) 
&lt;td&gt;(9,61,70) 
&lt;td&gt;(9,20,50,61) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;59 
&lt;td&gt;(70,70) 
&lt;td&gt;(34,36,70) 
&lt;td&gt;(16,34,36,54) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;60 
&lt;td&gt;(70,70) 
&lt;td&gt;(35,35,70) 
&lt;td&gt;(15,20,35,70) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;61 
&lt;td&gt;(70,70) 
&lt;td&gt;(35,35,70) 
&lt;td&gt;(15,35,35,55) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;62 
&lt;td&gt;(70,70) 
&lt;td&gt;(35,35,70) 
&lt;td&gt;(20,35,35,50) 
&lt;tr&gt;
&lt;td bgcolor="#e8e8e8"&gt;63 
&lt;td&gt;(70,70) 
&lt;td&gt;(35,35,70) 
&lt;td&gt;(35,50,55)&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-indent:2em"&gt;【问题延续】如何利用这台的天平和 2 克、5 克的砝码。只称三次，将 237 克的盐分为 80 克和 157 克两堆？&lt;/div&gt;
&lt;div style="margin-top:8px;color:#999999;text-align:right"&gt;最后修订：2008-6-5&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e5%a4%a9%e5%b9%b3%e5%88%86%e5%a0%86%e9%97%ae%e9%a2%98&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!405.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!405.entry</guid><pubDate>Wed, 08 Feb 2006 00:00:18 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!405/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!405.entry#comment</wfw:comment><dcterms:modified>2008-06-23T15:42:01Z</dcterms:modified></item><item><title>朝花夕拾</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!329.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】计算机 » 软件&lt;/div&gt;
&lt;div&gt;【标签】世界国旗 | 电子邮件图标 | 屏幕放大镜&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;收拾陈年代码，感叹尽是黔之驴一类的蠢物。当时好事为之，毕则无可用，束之高阁。尘积霉滋，虫蚀鼠啮，日渐散佚，乃至殆尽。今借新年暖阳，拾其善者而曝之，聊尽凉主寸心。&lt;/div&gt;
&lt;ul style="margin-left:2.5em"&gt;
&lt;li&gt;&lt;strong&gt;World Flag&lt;/strong&gt;：世界国旗区旗。尽可能遵照各国国旗法规定，包括尺寸、配色、图案等。优先采用数学运算，法定造型不详或资料缺乏的，退用矢量模拟。支持无失真缩放、旋转及其它变型。 
&lt;div style="margin-top:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1ptAZ0GuLFMhZGD6rafJsMpvwMtzRRsLPBtencZpwlu-7gtiv7G6y8zlUKeuXNjsTQPtQex1EoRXs/cnflag.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pOw8Ey-KEh8O8AYAQlzMnYFFIdiQHYLqP-As5u2YAZ8duawFUrQ9RUWWz66iC8puaQyjAgr3thrc/caflag.gif" border=0&gt;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pOw8Ey-KEh8ODZIXXH1WoP5mwJP8yQfGRUDJF7we0n5UdKrqR8zyLuwMTp-T3FnXYYEWUml3Io3U/hkflag.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pGkxihAvNRpVd08hSxT6lr8eEZzpuzz_SjCywo7oHA4O1vIJ8UpnmIrOcxlQ0QB3v1875uD1LaIo/usflag.gif" border=0&gt;&lt;/div&gt;
&lt;div style="margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pr87ydHfEmq1Q7SAW83CVI0J4BNQl3f9PWVAUB9h49UyH2rI9n6tnlomW_nFHwgA4dXYRY8hj87U/frflag.gif" border=0&gt;&lt;/div&gt;
&lt;div&gt;绘制五星红旗时有两点颇感到意外：&lt;/div&gt;
&lt;ol style="margin-left:2em"&gt;
&lt;li&gt;中华人民共和国国旗法只规定国旗旗面为红色，没有说明是哪一种红。据说有《国旗》和《国旗颜色标准样品》两项国标，网上无法查到。有一点几乎可以断言，这种红不是 RGB 值为 FF0000 的纯红。如果真是如此，香港特别行政区政府网站上的&lt;a href="http://www.protocol.gov.hk/flags/eng/r_flag/spec.html" target="_blank"&gt;香港区旗&lt;/a&gt;就是错误的，因为《区旗及区徽条例》规定，区旗旗面为红色，其色度值以中华人民共和国国旗红为标准； 
&lt;li&gt;可能考虑到绘制的方便，旗面上的四颗小星并不关于大星上下对称。&lt;/ol&gt;
&lt;li&gt;&lt;strong&gt;Mail Icon&lt;/strong&gt;：电子邮件图标。形如此空间首页档案下方的图样地址。这个小程序完全模仿 &lt;a href="http://services.nexodyne.com/email/" target="_blank"&gt;E-Mail Icon Generator&lt;/a&gt; 而作，甚至也写成 ISAPI 形式，以致无处安置。虽然提供某些前作不支持的域名，譬如搜狐，也允许自定义扩展，还设想实现更丰富的边框底纹效果，但终究是拾人牙慧缺乏创见的习作。 
&lt;li&gt;&lt;strong&gt;&lt;a href="http://ctt7zg.bay.livefilestore.com/y1pMUsjOJkuxlVw0PF_F7ujrDhd6djNFfWpq2IpPpZAXH_j2IdcuskMo3GvikxPQ1i2p7LByOTgWVTuKz7qFe85iA/Fairview.zip"&gt;Fairview&lt;/a&gt;&lt;/strong&gt;：屏幕放大镜。相对于汗牛充栋的同类软件，技术上，采用钩子比定时器高效简洁些。但也有缺点，不能自觉感应屏幕变化。功能上，常用于对页面布局和图像色彩进行微调。 
&lt;div style="margin-top:4px;margin-bottom:4px"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pm5TYlQ1WqIvyU-GTgjPVWjYYOlToyNniBdE3-lJ3AT8BDlOg4etMoi-_nPpZMobqK-Bb_XOuEgU/spring.gif" border=0&gt;&lt;/div&gt;&lt;/ul&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e6%9c%9d%e8%8a%b1%e5%a4%95%e6%8b%be&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!329.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!329.entry</guid><pubDate>Mon, 30 Jan 2006 00:59:58 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!329/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!329.entry#comment</wfw:comment><dcterms:modified>2008-07-02T19:49:06Z</dcterms:modified></item><item><title>英文文档中的中文乱码</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!308.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】计算机 » 编码&lt;/div&gt;
&lt;div&gt;【标签】乱码 | 抯 | 字符编码&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;浏览英文网页，冷不丁会遇上个把中文乱码，或者残缺的 HTML 标签。这种情况一般出现在省字号（Apostrophe）和引号的位置上。解决的办法是将页面编码改为西欧字符。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;之所以如此，原因在于不同字符集对扩展 ASCII 码的解释不同。以省字号为例，省字号实际上就是后单引号，即值为 A1AFH 的 GB2312 全角字符“’”，而不是值为 27H 的标准 ASCII 码字符“'”。&lt;a href="http://www.microsoft.com/globaldev/reference/sbcs/1252.mspx" target="_blank"&gt;Windows-1252&lt;/a&gt;（通常浏览器以 Windows-1252 替代西欧字符集 ISO-8859-1）中，省字号的 ASCII 码值为 92H。当操作系统缺省语言为简体中文时，浏览器将 ASCII 码值 92H 视为 &lt;a href="http://www.microsoft.com/globaldev/reference/dbcs/936.mspx" target="_blank"&gt;GBK&lt;/a&gt; 字符的高字节，连同紧挨着省字号的字节一起，被解释为一个汉字显示出来。因此，英文页面中的’s（9273H）在简体中文下显示为“抯”。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;双引号和连字符也是这样。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e8%8b%b1%e6%96%87%e6%96%87%e6%a1%a3%e4%b8%ad%e7%9a%84%e4%b8%ad%e6%96%87%e4%b9%b1%e7%a0%81&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!308.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!308.entry</guid><pubDate>Tue, 10 Jan 2006 02:51:35 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!308/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!308.entry#comment</wfw:comment><dcterms:modified>2008-06-19T18:34:21Z</dcterms:modified></item><item><title>数据共享与信息关联</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!137.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】计算机 » 信息学&lt;/div&gt;
&lt;div&gt;【标签】数据 | 共享 | 关联&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;用 BitTorrent 和 eMule 并行下载同一文档，初衷只是慢中取快。但当传输行进到一定时刻，两份不完全拷贝必定相互包含对方尚未完成的数据块，此时自然希望能有工具将二者的有效成分拼接起来。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;略进一步，仅仅拼接——包括同属残块（如 BitTorrent 之间）和异属残块（如 eMule 与 FlashGet 之间）的拼接（这里之所以称“属”而不称“种”，是因为同一类软件往往有多种衍生品和版本，它们的数据组织方式不尽相同）——尚显不足，有时还需要对不同数据残块进行转换，特别当一类数据源撤消而另一类数据源存在时。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;更进一步，下载过程一般包含三个阶段的工作：连接、传输和数据组织。数据组织位于末端，在此桥接最为简便，但效率也是最低。于是考虑这样一个整合平台，能同时支持各类连接和传输协议，能实时进行异种数据片的校验和包装，能在全网视野下维持各片数据的动态均衡，甚至借助空闲的公用服务器和带宽进行数据中转。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;再深一层，上面的平台已具有简单分布式操作系统的特征，而且既可以采用点对点对等网络模式，也可以设立中央计算机进行任务分配和均衡负载。但是，这里缺少一个环节，就是如何收集散落在网络空间里的数据源。一个直观的想法是建立专用搜索引擎，使用爬虫汇聚和更新实时信息，并借助缓存在一定时段内维持其有效性。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;继续挖掘，依靠爬虫收集信息显然是被动的，难以避免信息完整性和时效性的问题。这就要求建立一种机制，能够主动接收数据源发布的信息，利用集群系统辅以网格计算技术完成异构环境下的信息采集、调度和管理，并解决数据安全等问题。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;未曾结束，上面描述的信息是静态的、独立的，相互间缺少联系，然而现实不是这样。譬如一份文档，可以以文本形式存在，也可以表现为格式文件，还可以加密压缩。再如一本书，可以分为若干章节，各章又包含若干页面。这些页面可以独立存在于数据源中，也可以作为全书的一部分存在于数据源。这两个例子说明，数据源间存在多种层次多种表现形式，这就需要一种策略，能够对数据进行智能分层分类，自动抽取摘要，选择性滤除冗余信息，并对相关数据进行相似性估计。这一点上，Ontology 元数据系统和形式概念分析（Formal Concept Analysis）技术也许能部分地解决问题。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;陆与陆本是相连的，然而粘合处深埋水底，于是我们在河上搭桥。桥面太窄，流量受限，又不能及远，于是我们在桥间建岛。桥和岛多了，相近的彼此相连，于是形成新的陆地。陆地不断扩张，久而久之，其间不再有空隙，于是地球成为一块实地。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e6%95%b0%e6%8d%ae%e5%85%b1%e4%ba%ab%e4%b8%8e%e4%bf%a1%e6%81%af%e5%85%b3%e8%81%94&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!137.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!137.entry</guid><pubDate>Mon, 03 Oct 2005 00:02:49 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!137/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!137.entry#comment</wfw:comment><dcterms:modified>2008-06-19T18:35:01Z</dcterms:modified></item><item><title>标识符命名规则</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!131.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】计算机 » 编程语言&lt;/div&gt;
&lt;div&gt;【标签】标识符 | 命名&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;计算机语言发展至今，标识符命名逐渐摆脱了早期不区分大小写的书写样式，以及微软借 Windows 平台推荐和推广的匈牙利命名法（Hungarian Notation），形成目前主流的命名规则，包括以下四种样式：完全大写、完全小写、Pascal 大小写和 Camel 大小写。所谓 Pascal 大小写即组成标识符的每个单词的首字母大写，其余字母小写的书写约定；而 Camel 大小写与 Pascal 大小写相似，区别仅在于其标识符的首字母恒为小写。此外，作为上述规则的补充约定，对于双字母的缩写单词，Pascal 大小写要求它们全部大写，而 Camel 大小写则要求它们出现在标识符首部时全部小写，否则全部大写。需要强调，这条规则仅适用于缩写的双字母单词，象“To”、“Is”、“As”这样原生的双字母单词，不在此列。这点在 &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconcapitalizationstyles.asp" target="_blank"&gt;MSDN&lt;/a&gt; 中并未明确指出。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;作为约定俗成，Java 语言中，完全大写用于常量的命名，完全小写用于包的命名，Pascal 大小写用于类和接口的命名，Camel 大小写则用于方法、局部变量和参数的命名。与此相较，C# 语言中，完全大写和完全小写不被使用。偶尔地，为保持与 C/C++ 语言的兼容，常量和枚举值可能采用完全大写的样式。除了保护字段、私有字段、局部常量、局部变量和参数采用 Camel 大小写外，名空间、类、结构、接口、异常、委托、特征、枚举类型、枚举值、事件、公共字段、静态字段、方法、属性和索引器均采用 Pascal 大小写。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;撇开完全大写和完全小写的情形不谈，显而易见，Java 语言依据语义层次命名标识符：对于类型级别的标识符采用 Pascal 大小写，而对于对象级别的标识符则采用 Camel 大小写。这符合 OO 的抽象思想。与此不同，C# 依据可见性命名标识符：对于外部可见的标识符采用 Pascal 大小写，而对于外部不可见的标识符则采用 Camel 大小写。这符合 OO 的封装原则。孰优孰劣，殊难定论。若从学术角度探讨，Java 语言的命名规则似乎更为本质一些；但若从习俗角度论述，则 C# 语言的命名规则更显得亲和。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;遗憾的是，尽管两类规则各执一辞，各自成理，但都同样存在逻辑缺陷。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;Java 语言中，类的一般方法采用 Camel 大小写，但同样是方法的构造方法却因为要和类同名而不得不采用 Pascal 大小写。这显是 C++ 语言的遗风，只不知 Java 语言的设计者何以不借鉴 Pascal 语言为构造方法单独设计关键字以求得形式上的一致。C# 语言没有这一问题，但情况更糟。前文提及，C# 语言中，类的字段由于可见性的不同，可能采用 Pascal 大小写或者 Camel 大小写。但与字段相类的方法却不这样，其一律采用 Pascal 大小写。并且，由于嵌套类也可被修饰为保护型和私有型，那么，是不是它们的类名也应当采用 Camel 大小写？&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;此外，C# 语言虽然摒弃了匈牙利命名法，却保留字母 I 作为接口的前缀和字母 T 作为模板的前缀。类似的例外还出现在类的私有变量命名上，即便并非微软建议的&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconNamingGuidelines.asp" target="_blank"&gt;规则&lt;/a&gt;，当前一种颇为流行的&lt;a href="http://www.idesign.net/" target="_blank"&gt;做法&lt;/a&gt;是为其添加前缀 m_，以区别于构造方法初始化列表中的参数名。这里的 m 表示 member，显然是 MFC 的命名风格。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;瑕不掩瑜。回想起历史上关于变量名首字母是否应大写的问题曾引发旷日持久的激烈争论，如今这两类命名法却被优美地结合在一处。天下大势，分久必合，合久必分，诚如是也。&lt;/div&gt;
&lt;div style="margin-top:8px;color:#999999;text-align:right"&gt;最后修订：2008-6-12&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e6%a0%87%e8%af%86%e7%ac%a6%e5%91%bd%e5%90%8d%e8%a7%84%e5%88%99&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!131.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!131.entry</guid><pubDate>Thu, 01 Sep 2005 03:59:19 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!131/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!131.entry#comment</wfw:comment><dcterms:modified>2008-06-19T18:52:27Z</dcterms:modified></item><item><title>实形有别</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!125.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】计算机 » 编程语言&lt;/div&gt;
&lt;div&gt;【标签】形参 | 实参 | Parameter | Argument&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;计算机语言中，Argument 和 Parameter 都有参数的意思，但两者有何区别，这个问题长时间困扰着我。依据 MSDN，命令行参数一般写作 Command-Line Arguments，main(int argc, char* argv[]) 和 Main(string[] args) 的函数原型也表达了同样的意思。但是，C# 定义方法的可变数目参数的关键字却是 params，而 .NET Framework 中有个异常类的名称又为 ArgumentException。这似乎表明这两个词可以互用。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;偶然地，我在 &lt;em&gt;C# Language Specification&lt;/em&gt; 定义栏里发现这样两段说明：&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;Argument&lt;/strong&gt; - an expression in the comma-separated list bounded by the parentheses in a method or instance constructor call expression or bounded by the square brackets in an element access expression. It is also known as an &lt;em&gt;&lt;strong&gt;actual argument&lt;/strong&gt;&lt;/em&gt;.&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;Parameter&lt;/strong&gt; - a variable declared as part of a method, instance constructor, operator, or indexer definition, which acquires a value on entry to that function member. It is also known as a &lt;strong&gt;&lt;em&gt;formal parameter&lt;/em&gt;&lt;/strong&gt;.&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;也就是说，Argument 表示实参的“参”，而 Parameter 表示形参的“参”。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;听起来很有道理。对照上面例子，我恍然大悟，Main() 的 args 虽然出现在形参位置上，但它表示的却是命令行参数这个实参。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;真是漂亮的结论！我几乎就要断言。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;且等一等。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;我接着翻阅 James Gosling 等的 &lt;em&gt;The Java Language Specification&lt;/em&gt;。AWESOME！同 C# 的一样，这份规范书也严格遵循两个词的不同含义用法。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;再查 Bjarne Stroustrup 的 &lt;em&gt;The C++ Programming Language&lt;/em&gt;。不妙！变数出现了，书中无论实参形参，均写作 Argument。同时，还有这样的小说明：parameters (formal arguments)。这是不是说 Argument 可以替代 Parameter，而反之不可以？&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;转到 MSDN，情况更糟，大量存在 actual parameter 和 formal argument 的用法。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;继续搜索 Google，休矣！两种用法的比例竟然相当。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;默然良久……&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;从前述资料看，我想，Argument 和 Parameter 在一般语言环境下，确是可以互换，所以统一译为参数没有错误。但在严谨的学术氛围里，特别是近年，引申自数学，两个词还是有明确的区别：Argument 表示自变量，Parameter 则表示参变量。在侯捷的『英中繁简编程术语对照』也可以发现，Argument 台译为引数（极可能源来日译），Parameter 才译作参数。应当承认，这种分辨是有益的。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;行文接近尾声的时候，我想到 .NET 中的另两个词：Property 和 Attribute。.NET 问世之初，这两个词的译法相当混乱。因为在以往计算机领域，它们的标准译名均为属性。现在中文 MSDN 把前者译为属性，后者译为特征，算是一种妥协的规范。但在 XPath 相关文档中，Attribute 仍被译为属性。历史问题真是无可奈何以极。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e5%ae%9e%e5%bd%a2%e6%9c%89%e5%88%ab&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!125.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!125.entry</guid><pubDate>Sun, 17 Jul 2005 20:28:26 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!125/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!125.entry#comment</wfw:comment><dcterms:modified>2008-06-19T19:11:05Z</dcterms:modified></item><item><title>世界地理</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!115.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】计算机 » 图形学 | 地图学 » 球面投影&lt;/div&gt;
&lt;div&gt;【标签】三维地球&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;试着转转 &lt;a href="http://worldwind.arc.nasa.gov/" target="_blank"&gt;NASA World Wind&lt;/a&gt;，不意有了照虎画猫的想法。于是从最初的原理开始，单单空间变换方程的推导就耗费墨水若干。这样努力的结果就是现在的 &lt;a href="http://ctt7zg.bay.livefilestore.com/y1pZBDCgkrdHDJBmXfx6hu8jCfzEszE6s4wtID-FTQ6Tlz1zz5X-xgEdprgzhOLfk3QccLLAKbOzworfqAEtAL-LA/WorldView.exe"&gt;World View&lt;/a&gt;，纯软件运算，未借助 DirectX 和 OpenGL，故对 CPU 有所要求。在我 2600+ 及 512M 的机器上，原始窗口动作尚称流畅，全屏则明显滞钝。这使得计划中的边缘抗锯齿和高阶插值无法虑及，旋转惯性亦将搁置。&lt;/div&gt;
&lt;div style="margin-top:4px;margin-bottom:4px;margin-left:2em"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1p0V2ruP-8E3h4Za59q3s46IEGyJuTnpacVrQGQ-wzCncTlYAPgJhs79tSo95ocFdZzx8u1RUtT_KzCQrv-rHW1w/day.gif" border=0&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pGo_L-Bstz8ZLsF2s61CK6XZMizxljR7lILvDYDM0bmypME7YcSo69bLYXdQYoqkrGiK0l6hQk4zAgqiT6Il2lg/night.gif" border=0&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;标准测试图样可从这里下载，一是 &lt;a href="http://earthobservatory.nasa.gov/Newsroom/BlueMarble/Images/land_shallow_topo_2048.jpg" target="_blank"&gt;Earth in True Color&lt;/a&gt;，一是 &lt;a href="http://earthobservatory.nasa.gov/Newsroom/BlueMarble/Images/land_ocean_ice_lights_2048.jpg" target="_blank"&gt;Earth at Night&lt;/a&gt;。如果想使用自己的图片，理想的效果要求图片尺寸大于窗口尺寸，长宽比为 2:1，左右边界颜色当无缝衔接，上下边界颜色呈弧状积聚，至极点处，对应的边线将收缩为一点。&lt;/div&gt;
&lt;h5&gt;❏修订历史&lt;/h5&gt;
&lt;div style="text-indent:2em"&gt;1.1 (2005-6-28)：无极缩放；调整控制键；调整程序结构。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;1.0 (2005-6-22)：自由旋转。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e4%b8%96%e7%95%8c%e5%9c%b0%e7%90%86&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!115.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!115.entry</guid><pubDate>Wed, 22 Jun 2005 06:05:42 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!115/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!115.entry#comment</wfw:comment><dcterms:modified>2008-07-02T18:36:13Z</dcterms:modified></item><item><title>麻将九听牌型</title><link>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!110.entry</link><description>&lt;div style="margin-bottom:4px;color:#999999;font-variant:small-caps"&gt;
&lt;div&gt;【分类】数学 » 组合数学 | 计算机 » 算法&lt;/div&gt;
&lt;div&gt;【标签】九听 | 九莲宝灯&lt;/div&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;麻将基本听牌牌型中，有一类牌型能听遍一门花色的全部九张牌。上学有个时期对这类牌型感兴趣，手工构造了几种，但不完整。今天写个程序把十三张、十六张麻将所有听牌牌型穷举一遍，生成五十五万多行的数据，从中找出全部九听牌型。&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;十三张麻将九听牌型&lt;/strong&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;九莲宝灯（1112345678999）&lt;/div&gt;
&lt;div style="margin-top:4px;margin-bottom:4px;margin-left:2em"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pat3iBDX5_qUJuGkTi09XjkPHAP2hHOUk1QMkja0X7e6nnRo7N4nfl0Zpb9lmJBWBRTX42FjgOA8/9t13.gif" border=0&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;&lt;strong&gt;十六张麻将九听牌型&lt;/strong&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;第一组（1112233445678999）&lt;/div&gt;
&lt;div style="margin-top:4px;margin-bottom:4px;margin-left:2em"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1ph7OkXmFYq5Y2CTu8flBERBGO0s7HtvePN8wDo0jdmKx13F1wgZMMsbbN76p-ON-UewQIJQ6Y9TM/9t16a.gif" border=0&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;第二组（1112345677788899）&lt;/div&gt;
&lt;div style="margin-top:4px;margin-bottom:4px;margin-left:2em"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pMVzgN35mbqzItUZMUvQoL6ZTakEfdDfqNQ88sfdqDQBj9Jp19Y4WXU9nC5LUxDQxrC356rhshUQ/9t16b.gif" border=0&gt;&lt;/div&gt;
&lt;div style="text-indent:2em"&gt;第三组（1112223334567888）&lt;/div&gt;
&lt;div style="margin-top:4px;margin-bottom:4px;margin-left:2em"&gt;&lt;img src="http://ctt7zg.bay.livefilestore.com/y1pMVzgN35mbqx_8AbZV3Him7M_k6VRqaFILGJkFyJ9Il-i83cQhMi_qIwKDIhEcVoCAV74mf4nyrM/9t16c.gif" border=0&gt;&lt;/div&gt;
&lt;div style="margin-top:8px;color:#999999"&gt;
&lt;div style="text-align:right"&gt;最后修订：2008-6-4&lt;/div&gt;
&lt;hr&gt;
【注】本文麻将单牌图像来自&lt;a href="http://zh.wikipedia.org/wiki/%E5%9B%BD%E6%A0%87%E9%BA%BB%E5%B0%86" target="_blank"&gt;维基百科&lt;/a&gt;，属公共领域资源，不受版权保护。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=6049878559561471276&amp;page=RSS%3a+%e9%ba%bb%e5%b0%86%e4%b9%9d%e5%90%ac%e7%89%8c%e5%9e%8b&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royfang.spaces.live.com&amp;amp;GT1=royfang"&gt;</description><comments>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!110.entry#comment</comments><guid isPermaLink="true">http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!110.entry</guid><pubDate>Thu, 26 May 2005 08:05:04 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royfang.spaces.live.com/blog/cns!53F57C7F0CE9D52C!110/comments/feed.rss</wfw:commentRss><wfw:comment>http://royfang.spaces.live.com/Blog/cns!53F57C7F0CE9D52C!110.entry#comment</wfw:comment><dcterms:modified>2008-07-02T19:54:51Z</dcterms:modified></item></channel></rss>