<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://aspnet.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2faspnet.spaces.live.com%2fcategory%2f%e7%a6%bb%e6%95%a3%e6%95%b0%e5%ad%a6%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>Microsoft.NET BLOG(YunYang): 离散数学</title><description /><link>http://aspnet.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=cat%25E7%25A6%25BB%25E6%2595%25A3%25E6%2595%25B0%25E5%25AD%25A6</link><language>en-US</language><pubDate>Thu, 04 Sep 2008 09:37:07 GMT</pubDate><lastBuildDate>Thu, 04 Sep 2008 09:37:07 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://aspnet.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-5487770763778616419</live:id><live:alias>aspnet</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>二元树的应用</title><link>http://aspnet.spaces.live.com/Blog/cns!B3D78590D833939D!422.entry</link><description>&lt;p style=""&gt;&lt;b&gt;&lt;span style="color:black;font-family:宋体"&gt;&lt;font size=3&gt;二元树的应用&lt;span lang=EN-US&gt;----&lt;/span&gt;前缀码&lt;span lang=EN-US&gt;(&lt;/span&gt;哈夫曼编码&lt;span lang=EN-US&gt;)&lt;/span&gt;。&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;
&lt;p style="text-indent:21pt"&gt;&lt;span style="color:black;font-family:宋体"&gt;&lt;font size=3&gt;在通讯系统中，常用二进制来表示字符。但由于字符出现的频率不一样以及为了保密的原因，能否用不等长的二进制数表示不同的字符，使传输的信息所用的总码元尽可能少呢？&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="text-indent:21pt"&gt;&lt;span style="color:black;font-family:宋体"&gt;&lt;font size=3&gt;但是不等长的编码方案给编码和译码带来了困难。为了解决这个问题，需要引入前缀码（哈夫曼编码）。&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="text-indent:21pt"&gt;&lt;span style="color:black;font-family:宋体"&gt;&lt;font size=3&gt;设&lt;span lang=EN-US&gt;ab…cd&lt;/span&gt;为一个长为&lt;span lang=EN-US&gt;n&lt;/span&gt;的字符串，则&lt;span lang=EN-US&gt;a,ab,…,ab…c&lt;/span&gt;分别为它的长为&lt;span lang=EN-US&gt;1,2,…,n-1&lt;/span&gt;的前缀&lt;span lang=EN-US&gt;(Prefix)&lt;/span&gt;。&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="text-indent:21pt"&gt;&lt;span style="color:black;font-family:宋体"&gt;&lt;font size=3&gt;设&lt;span lang=EN-US&gt;A&lt;/span&gt;是一个字符串集，若其中的任一字符串都不是其它字符串的前缀，则称&lt;span lang=EN-US&gt;A&lt;/span&gt;为一个前缀码&lt;span lang=EN-US&gt;(&lt;/span&gt;哈夫曼编码&lt;span lang=EN-US&gt;)(Prefixed Code)&lt;/span&gt;。若组成&lt;span lang=EN-US&gt;A&lt;/span&gt;的字符串的只有字符&lt;span lang=EN-US&gt;0&lt;/span&gt;和&lt;span lang=EN-US&gt;1&lt;/span&gt;，则称&lt;span lang=EN-US&gt;A&lt;/span&gt;为二元前缀码&lt;span lang=EN-US&gt;(Binary Prefixed Code)&lt;/span&gt;。如&lt;span lang=EN-US&gt;{000&lt;/span&gt;，&lt;span lang=EN-US&gt;001&lt;/span&gt;，&lt;span lang=EN-US&gt;01&lt;/span&gt;，&lt;span lang=EN-US&gt;10&lt;/span&gt;，&lt;span lang=EN-US&gt;110&lt;/span&gt;，&lt;span lang=EN-US&gt;111}&lt;/span&gt;是一个二元前缀码，而&lt;span lang=EN-US&gt;{000&lt;/span&gt;，&lt;span lang=EN-US&gt;001&lt;/span&gt;，&lt;span lang=EN-US&gt;01&lt;/span&gt;，&lt;span lang=EN-US&gt;10&lt;/span&gt;，&lt;span lang=EN-US&gt;11&lt;/span&gt;，&lt;span lang=EN-US&gt;111}&lt;/span&gt;不是一个二元前缀码。&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="text-indent:21pt"&gt;&lt;span style="color:black;font-family:宋体"&gt;&lt;font size=3&gt;那么如何构造一个二元前缀码并用它进行编码和译码呢？&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="text-indent:21pt"&gt;&lt;span style="color:black;font-family:宋体"&gt;&lt;font size=3&gt;我们利用二元树来产生一个二元前缀码：&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="text-indent:28.5pt"&gt;&lt;font size=3&gt;&lt;span lang=EN-US style="color:black;font-family:宋体"&gt;1 &lt;/span&gt;&lt;span style="color:black;font-family:宋体"&gt;构造一棵二元树，树根的左侧用&lt;span lang=EN-US&gt;0&lt;/span&gt;标记，右侧用&lt;span lang=EN-US&gt;1&lt;/span&gt;标记；&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;p style="text-indent:28.5pt"&gt;&lt;font size=3&gt;&lt;span lang=EN-US style="color:black;font-family:宋体"&gt;2 &lt;/span&gt;&lt;span style="color:black;font-family:宋体"&gt;分支点&lt;span lang=EN-US&gt;v&lt;/span&gt;的左侧&lt;span lang=EN-US&gt;(&lt;/span&gt;右侧&lt;span lang=EN-US&gt;)&lt;/span&gt;的标记就是标记&lt;span lang=EN-US&gt;v&lt;/span&gt;的二进制数最右端加上&lt;span lang=EN-US&gt;0(1)&lt;/span&gt;；&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;p style="text-indent:28.5pt"&gt;&lt;font size=3&gt;&lt;span lang=EN-US style="color:black;font-family:宋体"&gt;3 &lt;/span&gt;&lt;span style="color:black;font-family:宋体"&gt;任一片树叶的标记串不是其它树叶的标记串的前缀；&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;p style="text-indent:28.5pt"&gt;&lt;font size=3&gt;&lt;span lang=EN-US style="color:black;font-family:宋体"&gt;4 &lt;/span&gt;&lt;span style="color:black;font-family:宋体"&gt;将所有树叶的标记串取来就可构成一个二元前缀码。&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;p style=""&gt;&lt;span style="color:black;font-family:宋体"&gt;&lt;font size=3&gt;然后对要发送的信息中的每个字符分别用这个二元前缀码中的字符串代表，当然应该用越长的字符串代表出现频率越最低的字符串。&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="text-indent:24pt"&gt;&lt;span style="color:black;font-family:宋体"&gt;&lt;font size=3&gt;当接收方接到发送方发过去的信息（实际上是二进制位组成的一个序列），他也将按照那棵标记过的二元树来进行译码，还原出真正的信息。过程如下：&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="text-indent:24pt"&gt;&lt;font size=3&gt;&lt;span style="color:black;font-family:宋体"&gt;接收方一边接收一边译码，从第一个接收的二进制位开始，按接收到的是&lt;span lang=EN-US&gt;0&lt;/span&gt;还是&lt;span lang=EN-US&gt;1&lt;/span&gt;，分别从当前结点的左子树和右子树往下走。如果遇到一片树叶，说明已得到一个字符的码元。从下一个接收的位开始又从根结点起重复上述过程。&lt;/span&gt;&lt;span lang=EN-US style="color:black;font-family:宋体"&gt;&lt;/span&gt;&lt;/font&gt;
&lt;p style="text-indent:21pt"&gt;&lt;font size=3&gt;&lt;font color="#000000"&gt;&lt;span style="font-family:宋体"&gt;如我们由一棵二元树得到一个二元前缀码&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;{010(&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;确&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;011(&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;实&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;11(&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;爱&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;10(&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;我&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;00(&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;你&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;)}&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;对应的二元树，现将下列二进制串“&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;101100100100111100&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;”译码。译码的结果是：&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;11&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;00&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;010&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;011&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;11&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Times New Roman"&gt;00&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;。翻译成中文就是“我爱你，我确实爱你。”&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5487770763778616419&amp;page=RSS%3a+%e4%ba%8c%e5%85%83%e6%a0%91%e7%9a%84%e5%ba%94%e7%94%a8&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=aspnet.spaces.live.com&amp;amp;GT1=aspnet"&gt;</description><comments>http://aspnet.spaces.live.com/Blog/cns!B3D78590D833939D!422.entry#comment</comments><guid isPermaLink="true">http://aspnet.spaces.live.com/Blog/cns!B3D78590D833939D!422.entry</guid><pubDate>Mon, 30 Apr 2007 08:32: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://aspnet.spaces.live.com/blog/cns!B3D78590D833939D!422/comments/feed.rss</wfw:commentRss><wfw:comment>http://aspnet.spaces.live.com/Blog/cns!B3D78590D833939D!422.entry#comment</wfw:comment><dcterms:modified>2007-04-30T08:32:05Z</dcterms:modified></item><item><title>来篇--命题之美</title><link>http://aspnet.spaces.live.com/Blog/cns!B3D78590D833939D!372.entry</link><description>&lt;div&gt;计算机技术之力当然来源于美妙的离散数学...&lt;/div&gt;
&lt;div&gt;回忆两个命题的示范.&lt;/div&gt;
&lt;div&gt;我说&amp;quot;我现在是在说谎&amp;quot;....&lt;/div&gt;
&lt;div&gt;如何理解它?它是有效命题吗?&lt;/div&gt;
&lt;div&gt;是,它是...来看证明:&lt;/div&gt;
&lt;div&gt;假设 &amp;quot;我现在是在说谎&amp;quot;是假,那么说明我说的话的确是真是的,的确是坦白了.&lt;/div&gt;
&lt;div&gt;假设&amp;quot;我现在是在说谎&amp;quot;是真,那么说明我在此时此刻确实在述说一个谎言.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;以上得证为有效命题.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;感觉如何?再来一道.&lt;/div&gt;
&lt;div&gt;一个理发师说&amp;quot;我从来只给不自己理发的人理发&amp;quot;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;假设 &amp;quot;我从来只给不自己理发的人理发&amp;quot;是假,那么理发师坚守了自己的规定把包括自己在内的人的头都理了,所以为真.&lt;/div&gt;
&lt;div&gt;假设 &amp;quot;我从来只给不自己理发的人理发&amp;quot;是真,那么理发师也属于不自己理发的,那也包括在内,完了..理不下去了..显然得到假.&lt;/div&gt;
&lt;div&gt;以上得证为有效命题.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;悖论的小东西体现了计算机原理多少的是与或非..有意思.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt; PS:再感叹一下,今天被一个兄弟的行为感动了.也许是我平时看事情比较清楚,我很少被感动.在生活中往往那些平凡,靠自己能力去生活的人会让我由衷的尊重和敬佩他们,好人一生平安!&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5487770763778616419&amp;page=RSS%3a+%e6%9d%a5%e7%af%87--%e5%91%bd%e9%a2%98%e4%b9%8b%e7%be%8e&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=aspnet.spaces.live.com&amp;amp;GT1=aspnet"&gt;</description><comments>http://aspnet.spaces.live.com/Blog/cns!B3D78590D833939D!372.entry#comment</comments><guid isPermaLink="true">http://aspnet.spaces.live.com/Blog/cns!B3D78590D833939D!372.entry</guid><pubDate>Sun, 25 Feb 2007 19:07:27 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://aspnet.spaces.live.com/blog/cns!B3D78590D833939D!372/comments/feed.rss</wfw:commentRss><wfw:comment>http://aspnet.spaces.live.com/Blog/cns!B3D78590D833939D!372.entry#comment</wfw:comment><dcterms:modified>2007-02-25T19:20:51Z</dcterms:modified></item></channel></rss>