<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_刘杨</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/64324/rss</id><updated>2011-11-18T08:59:31Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/64324/rss"/><entry><id>http://www.cnblogs.com/foamliu/archive/2011/11/03/2222138.html</id><title type="text">甘肃青海行</title><summary type="text">旅行的目标是为了从身边的繁琐细节拔出，换一个角度审视自己的生活，洗去疲惫和冷漠，重新出发。行程：10月4日出发，虹桥机场飞到兰州中川机场，转机飞到嘉峪关，沙洲夜市晚餐，住宿。10月5日游览魏晋墓、嘉峪关关城、长城第一墩等景点。10月6日早火车到敦煌，下午游览莫高窟、鸣沙山和月牙泉。10月7日包车游雅丹地貌、玉门关阳关遗址、汉长城遗址。10月8日凌晨飞回兰州，打车到市区住宿。吃中饭，神州租车提了一辆标志207（三厢），开车到西宁住宿。10月9日开车环湖自驾，晚上住宿刚查。10月10日开回西宁，游览塔尔寺。10月11日开回兰州中川机场，还车，飞回上海。一听的士师傅说：嘉峪关市中心区10公里见方，人</summary><published>2011-11-03T10:19:00Z</published><updated>2011-11-03T10:19:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/11/03/2222138.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/11/03/2222138.html"/><content type="html">&lt;p&gt;旅行的目标是为了从身边的繁琐细节拔出，换一个角度审视自己的生活，洗去疲惫和冷漠，重新出发。&lt;/p&gt;&lt;p&gt;行程：&lt;/p&gt;&lt;p&gt;10月4日出发，虹桥机场飞到兰州中川机场，转机飞到嘉峪关，沙洲夜市晚餐，住宿。&lt;/p&gt;&lt;p&gt;10月5日游览魏晋墓、嘉峪关关城、长城第一墩等景点。&lt;/p&gt;&lt;p&gt;10月6日早火车到敦煌，下午游览莫高窟、鸣沙山和月牙泉。10月7日包车游雅丹地貌、玉门关阳关遗址、汉长城遗址。&lt;/p&gt;&lt;p&gt;10月8日凌晨飞回兰州，打车到市区住宿。吃中饭，神州租车提了一辆标志207（三厢），开车到西宁住宿。&lt;/p&gt;&lt;p&gt;10月9日开车环湖自驾，晚上住宿刚查。&lt;/p&gt;&lt;p&gt;10月10日开回西宁，游览塔尔寺。&lt;/p&gt;&lt;p&gt;10月11日开回兰州中川机场，还车，飞回上海。&lt;/p&gt;&lt;p&gt;一&lt;/p&gt;&lt;p&gt;听的士师傅说：嘉峪关市中心区10公里见方，人口约二十万，工业主要有酒（泉）钢（铁）。旅游景点有：嘉峪关关城、万里长城第一墩、悬臂长城、魏晋古墓群、黑山岩画等。一行辛苦，晚上沙洲夜市吃纸烧烤犒赏一下自己：）&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232306241573.png"&gt;&lt;img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232306251049.png" alt="image" width="212" height="99" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;5号早晨包车出发，首先是看魏晋墓彩绘砖壁画。魏晋墓群在嘉峪关东北戈壁滩上。可能因为干燥，壁画历经千年仍色彩清晰，对古代民俗服饰了解不多，也就走马观花。但也可以想见当初这里一派繁华的生活场景：吃烤肉、唱歌、跳舞、出行、打猎、耕地、采桑、养殖等。&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201110/20111023230633795.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232306375402.png" alt="image" width="404" height="187" border="0" /&gt;&lt;/a&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232306417816.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232306469216.png" alt="image" width="432" height="184" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;第一墩建于明朝，是明代万里长城最西边的一个墩台。矗立于讨赖河边近56米高的悬崖上：&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232307193240.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232307262047.png" alt="image" width="399" height="328" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;悬臂长城和由此远眺，一望无际的戈壁：&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232308294540.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232308327378.png" alt="image" width="288" height="187" border="0" /&gt;&lt;/a&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232308545230.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201110/20111023230859775.png" alt="image" width="402" height="190" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;天下雄关 -- 嘉峪关：&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232309316410.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201110/201110232309357919.png" alt="image" width="397" height="250" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/2222138.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/11/03/2222138.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/foamliu/archive/2011/11/02/2233440.html</id><title type="text">多数决博弈</title><summary type="text">想到一个多数决博弈题目，跟大家分享： 有N个游戏者（N为奇数），每人有M块钱，游戏规则是每人从白和黑中选择一个颜色，多数获胜，奖励一块钱；少数罚掉一块钱，直到有人出局为止。 模拟游戏：A，B，C三人各有2块钱，第一轮AB出白，C出黑，结果AB各有3块，C一块；第二轮AB出黑，C出白，结果AB各两块，C出局。 假设他们彼此间无法串通、合谋乃至传递消息，请问大家的最佳策略为何？</summary><published>2011-11-02T10:21:00Z</published><updated>2011-11-02T10:21:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/11/02/2233440.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/11/02/2233440.html"/><content type="html">&lt;p&gt;想到一个多数决博弈题目，跟大家分享：&lt;/p&gt;  &lt;p&gt;有N个游戏者（N为奇数），每人有M块钱，游戏规则是每人从白和黑中选择一个颜色，多数获胜，奖励一块钱；少数罚掉一块钱，直到有人出局为止。&lt;/p&gt;  &lt;p&gt;模拟游戏：A，B，C三人各有2块钱，第一轮AB出白，C出黑，结果AB各有3块，C一块；第二轮AB出黑，C出白，结果AB各两块，C出局。&lt;/p&gt;  &lt;p&gt;假设他们彼此间无法串通、合谋乃至传递消息，请问大家的最佳策略为何？ &lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/2233440.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/11/02/2233440.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/foamliu/archive/2011/09/14/2176582.html</id><title type="text">主观的概率</title><summary type="text">概率跟其它数学分支有个有趣的不同，即它的主观特性－即随观察者的不同而不同。比如明天某股票上涨的概率，对于我这门外汉，就是50%；对于技术派，可能就是60－80%；而对于有内幕消息的之情人，可能就是99.9%。</summary><published>2011-09-14T12:08:00Z</published><updated>2011-09-14T12:08:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/09/14/2176582.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/09/14/2176582.html"/><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;概率跟其它数学分支有个有趣的不同，即它的主观特性－即随观察者的不同而不同。比如明天某股票上涨的概率，对于我这门外汉，就是50%；对于技术派，可能就是60－80%；而对于有内幕消息的之情人，可能就是99.9%。&lt;/font&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/2176582.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/09/14/2176582.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/foamliu/archive/2011/09/08/2171038.html</id><title type="text">C#的构造函数</title><summary type="text">做项目时偶尔需要知道C#中构造函数的执行顺序，随手写了一段代码： 1: class Program 2: { 3: class A 4: { 5: static A() 6: { 7: Conso...</summary><published>2011-09-08T06:14:00Z</published><updated>2011-09-08T06:14:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/09/08/2171038.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/09/08/2171038.html"/><content type="html">&lt;p&gt;做项目时偶尔需要知道C#中构造函数的执行顺序，随手写了一段代码：&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="kwrd"&gt;class&lt;/span&gt; Program  &lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {  &lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;class&lt;/span&gt; A  &lt;span class="lnum"&gt;   4:  &lt;/span&gt;        {  &lt;span class="lnum"&gt;   5:  &lt;/span&gt;            &lt;span class="kwrd"&gt;static&lt;/span&gt; A()  &lt;span class="lnum"&gt;   6:  &lt;/span&gt;            {  &lt;span class="lnum"&gt;   7:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;&amp;quot;A static ctor&amp;quot;&lt;/span&gt;);  &lt;span class="lnum"&gt;   8:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; A()  &lt;span class="lnum"&gt;  11:  &lt;/span&gt;            {  &lt;span class="lnum"&gt;  12:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;&amp;quot;A ctor&amp;quot;&lt;/span&gt;);  &lt;span class="lnum"&gt;  13:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  15:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;class&lt;/span&gt; B : A  &lt;span class="lnum"&gt;  18:  &lt;/span&gt;        {  &lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  20:  &lt;/span&gt;            &lt;span class="kwrd"&gt;static&lt;/span&gt; B()  &lt;span class="lnum"&gt;  21:  &lt;/span&gt;            {  &lt;span class="lnum"&gt;  22:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;&amp;quot;B static ctor&amp;quot;&lt;/span&gt;);  &lt;span class="lnum"&gt;  23:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  24:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  25:  &lt;/span&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; B()  &lt;span class="lnum"&gt;  26:  &lt;/span&gt;                : &lt;span class="kwrd"&gt;base&lt;/span&gt;()  &lt;span class="lnum"&gt;  27:  &lt;/span&gt;            {  &lt;span class="lnum"&gt;  28:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;&amp;quot;B ctor&amp;quot;&lt;/span&gt;);  &lt;span class="lnum"&gt;  29:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  30:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  31:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  32:  &lt;/span&gt;        &lt;span class="kwrd"&gt;class&lt;/span&gt; C : B  &lt;span class="lnum"&gt;  33:  &lt;/span&gt;        {  &lt;span class="lnum"&gt;  34:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  35:  &lt;/span&gt;            &lt;span class="kwrd"&gt;static&lt;/span&gt; C()  &lt;span class="lnum"&gt;  36:  &lt;/span&gt;            {  &lt;span class="lnum"&gt;  37:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;&amp;quot;C static ctor&amp;quot;&lt;/span&gt;);  &lt;span class="lnum"&gt;  38:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  39:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  40:  &lt;/span&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; C()  &lt;span class="lnum"&gt;  41:  &lt;/span&gt;                : &lt;span class="kwrd"&gt;base&lt;/span&gt;()  &lt;span class="lnum"&gt;  42:  &lt;/span&gt;            {  &lt;span class="lnum"&gt;  43:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;&amp;quot;C ctor&amp;quot;&lt;/span&gt;);  &lt;span class="lnum"&gt;  44:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  45:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  46:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  47:  &lt;/span&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)  &lt;span class="lnum"&gt;  48:  &lt;/span&gt;        {  &lt;span class="lnum"&gt;  49:  &lt;/span&gt;            &lt;span class="kwrd"&gt;new&lt;/span&gt; C();  &lt;span class="lnum"&gt;  50:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  51:  &lt;/span&gt;    }&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;执行结果：&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201109/201109081031581364.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201109/201109081032042864.png" width="588" height="238" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;动态和静态构造函数在调用链上正好反序，想想也对，静态是一碰就会执行的嘛。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/2171038.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/09/08/2171038.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/foamliu/archive/2011/09/01/2162511.html</id><title type="text">流行的骰子赌博策略</title><summary type="text">有种流行的骰子赌博策略：假设你揣着s元赌本进入赌场，打算每次下注一元，重复的赌骰子大小，直到成功赢到w元或者把s元全部输光为止。你成功的概率有多大？假设赌博过程中某时点你有n元，则从此时成功赢到w元概率为p(n)，输掉s元概率为1-p(n)。由于下次有均等的机会输赢1元，则有(1)p(n)=(p(n-1)+p(n+1))/2;(2)p(0)=0;(3)p(s+w)=1.由（1)：p(n)=2p(n-1)-p(n-2), (4)递推方程（4）的特征方程为：x^2-2x+1=0, 特征解为x1=x2=1, 为重根，由北大《离散数学教程》P357定理22.5(谢谢江师弟)，通解为：p(n)=c1+c</summary><published>2011-09-01T14:11:00Z</published><updated>2011-09-01T14:11:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/09/01/2162511.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/09/01/2162511.html"/><content type="html">&lt;p&gt;有种流行的骰子赌博策略：&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;假设你揣着s元赌本进入赌场，打算每次下注一元，重复的赌骰子大小，直到成功赢到w元或者把s元全部输光为止。你成功的概率有多大？&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;假设赌博过程中某时点你有n元，则从此时成功赢到w元概率为p(n)，输掉s元概率为1-p(n)。由于下次有均等的机会输赢1元，则有(1)p(n)=(p(n-1)+p(n+1))/2;(2)p(0)=0;(3)p(s+w)=1.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;由（1)：p(n)=2p(n-1)-p(n-2), (4)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;递推方程（4）的特征方程为：x^2-2x+1=0, 特征解为x1=x2=1, 为重根，由北大《离散数学教程》P357定理22.5(谢谢江师弟)，通解为：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;p(n)=c1+c2n, (5)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;把（2），（3）代入（5)，得：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;c1=0, c1+(s+w)c2=1,(6)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;所以c1=0,c2=1/(s+w), (7)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;通解为：&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;p(n)=n/(s+w), 所以当赌本为s元时你成功的概率为p(s)=s/(s+w)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;除了上面的笨办法，江云还想出一个巧妙的解法：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;因为每轮输赢概率均为50%，可知整个博弈是公平的。于是有总的预期收益为0，所以p(-w)+(1-p)s=0,解得：p=s/(s+w).是不是看起来清爽多了？ ：）&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/2162511.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/09/01/2162511.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/foamliu/archive/2011/08/30/2160119.html</id><title type="text">二枪手决斗均衡</title><summary type="text">二枪手各有一发子弹，逐渐走近，选择最佳时机开枪射击。假设二枪手在距离d时射中对方的概率分别为f1(d) 和 f2(d)，由最大距离D彼此走近，此时f1(D)=f2(D)=0; 当二人接触时，f1(0)=f2(0)=1。则D&gt;=d&gt;=0, 二人胜率0&lt;=y1,y2&lt;=1。把距离D分成N段，D=d0,d1,...,dN=0，易见：f1(dN)=f2(dN)=1。在距离di时，1先开枪,1胜率为f1(di), 2先开枪，1胜率为1-f2(di)。考虑dN：1，2先开枪1胜率分别为f1(dN）=1 和1-f2(dN)＝0 所以1 （实为双方）最优策略是先开枪。考虑：d(N-1)</summary><published>2011-08-30T14:44:00Z</published><updated>2011-08-30T14:44:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/08/30/2160119.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/08/30/2160119.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;二枪手各有一发子弹，逐渐走近，选择最佳时机开枪射击。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;假设二枪手在距离d时射中对方的概率分别为f1(d) 和 f2(d)，由最大距离D彼此走近，此时f1(D)=f2(D)=0; 当二人接触时，f1(0)=f2(0)=1。则D&amp;gt;=d&amp;gt;=0, 二人胜率0&amp;lt;=y1,y2&amp;lt;=1。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;把距离D分成N段，D=d0,d1,...,dN=0，易见：f1(dN)=f2(dN)=1。在距离di时，1先开枪,1胜率为f1(di), 2先开枪，1胜率为1-f2(di)。考虑dN：1，2先开枪1胜率分别为f1(dN）=1 和1-f2(dN)＝0 所以1 （实为双方）最优策略是先开枪。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;考虑：d(N-1), 1，2先开枪1胜率分别为 f1(d(N-1)）和 1-f2(d(N-1))。 对1，如果f1(d(N-1)）&amp;gt;=1-f2(d(N-1)),则应先开枪；对2，若f2(d(N-1)）&amp;gt;=1-f1(d(N-1))，则应先开枪; 易见二者等价，均为f1(d(N-1))+f2(d(N-1)）&amp;gt;=1 &lt;br /&gt;继续增加d，直到某点dk，此时f1(d(N-1))+f2(d(N-1)）=1，此时对1和2来说，是否先开枪不重要；而当距离继续增加是，不开枪是较优策略。于是我们有对1和2，当d0-dk-1时最优策略是不开枪；dk-dN最优策略是开枪。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;所以得到，无论二者枪法如何，都会在一个特定距离（dk）同时开枪！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201108/201108302301489248.png"&gt;&lt;img style="display: inline; border: 0px;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201108/201108302301532318.png" width="375" height="254" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Lucida Sans Typewriter;" face="Lucida Sans Typewriter"&gt;本解假定双方对彼此实力有清晰的了解，如果任何一人（例如1）高估了任何一方的实力，则f＝f1(d)+f2(d)会比实际（也是另一方分析结果）为高，因此与y=1交点要向右偏移，也就是会晚开枪；反之同理。 &lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/2160119.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/08/30/2160119.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/foamliu/archive/2011/08/02/2125203.html</id><title type="text">.NET 中的线程池和[ThreadStatic]属性</title><summary type="text">本文实验了一下.NET 中的线程池和[ThreadStatic]属性的作用：class Program{ [ThreadStatic] static int Number; static void Main(string[] args) { //for (int i = 0; i &lt; 10; i++) //{ // ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc)); //} for (int i = 0; i &lt; 10; i++) { Thread t = new Thread(delegate() { Threa</summary><published>2011-08-02T08:38:00Z</published><updated>2011-08-02T08:38:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/08/02/2125203.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/08/02/2125203.html"/><content type="html">&lt;p&gt;本文实验了一下.NET 中的线程池和[ThreadStatic]属性的作用：&lt;/p&gt;&lt;table style="width: 400px;" border="0" cellspacing="0" cellpadding="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="400"&gt;&lt;span style="color: blue;"&gt;class &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Program&lt;br/&gt;&lt;/span&gt;{&lt;br/&gt;    [&lt;span style="color: #2b91af;"&gt;ThreadStatic&lt;/span&gt;]&lt;br/&gt;    &lt;span style="color: blue;"&gt;static int &lt;/span&gt;Number;&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: blue;"&gt;static void &lt;/span&gt;Main(&lt;span style="color: blue;"&gt;string&lt;/span&gt;[] args)&lt;br/&gt;    {&lt;br/&gt;        &lt;span style="color: green;"&gt;//for (int i = 0; i &amp;lt; 10; i++)&lt;br/&gt;        //{&lt;br/&gt;        //    ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc));&lt;br/&gt;        //}&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;for &lt;/span&gt;(&lt;span style="color: blue;"&gt;int &lt;/span&gt;i = 0; i &amp;lt; 10; i++)&lt;br/&gt;        {&lt;br/&gt;            &lt;span style="color: #2b91af;"&gt;Thread &lt;/span&gt;t = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Thread&lt;/span&gt;(&lt;span style="color: blue;"&gt;delegate&lt;/span&gt;()&lt;br/&gt;            {&lt;br/&gt;                ThreadProc(&lt;span style="color: blue;"&gt;null&lt;/span&gt;);&lt;br/&gt;            });&lt;br/&gt;            t.Start();&lt;br/&gt;        }&lt;br/&gt;        &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515;"&gt;"Press any key to exit."&lt;/span&gt;);&lt;br/&gt;        &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.Read();&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: blue;"&gt;static void &lt;/span&gt;ThreadProc(&lt;span style="color: #2b91af;"&gt;Object &lt;/span&gt;stateInfo)&lt;br/&gt;    {&lt;br/&gt;        &lt;span style="color: #2b91af;"&gt;Interlocked&lt;/span&gt;.Increment(&lt;span style="color: blue;"&gt;ref &lt;/span&gt;Number);&lt;br/&gt;        &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(Number);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201108/201108021639056896.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201108/201108021639125547.png" width="397" height="257" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;图一&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201108/201108021639137989.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201108/201108021639153331.png" width="401" height="237" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;图二  &lt;br /&gt;上图分别为ThreadPool和不用的结果。由图二可见，由于 ThreadStatic属性的作用，尽管Number是静态变量，每个线程中都各自独立。而由图一，由于线程池会重用线程，只有4个独立的Number变量创建出来。因此对于线程池，每个线程结束时清理静态变量是非常重要的。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/2125203.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/08/02/2125203.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/foamliu/archive/2011/07/29/2121492.html</id><title type="text">纳什均衡</title><summary type="text">倘若有个姑娘想和你玩个游戏：让我们各自亮出硬币的一面，或正或反。如果都是正面，那么我给你3元，如果都是反面，我给你1元，剩下的情况你给我2元就可以了。该不该和她玩这个游戏呢？其实这里面藏着个很大的陷阱，连IQ228的人也判断错了。 下面是笔者做的答案：  ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ 假设...</summary><published>2011-07-29T13:40:00Z</published><updated>2011-07-29T13:40:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/07/29/2121492.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/07/29/2121492.html"/><content type="html">&lt;p&gt;倘若有个姑娘想和你玩个游戏：让我们各自亮出硬币的一面，或正或反。如果都是正面，那么我给你3元，如果都是反面，我给你1元，剩下的情况你给我2元就可以了。该不该和她玩这个游戏呢？其实这里面藏着个很大的陷阱，连IQ228的人也判断错了。&lt;/p&gt;  &lt;p&gt;下面是笔者做的答案：&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝&lt;/p&gt;  &lt;p&gt;假设姑娘出正的概率为x，你出正的概率为y，则一局下来你期望能赚到：&lt;/p&gt;  &lt;p&gt;3xy+(1-x)(1-y)-2x(1-y)-2y(1-x) = 8xy-3x-3y+1&lt;/p&gt;  &lt;p&gt;假设有个纳什均衡点，则此点对x，y求导导数均为0。可解的x=3/8, y=3/8。此时函数值为-1/8，所以不该玩这个游戏。&lt;/p&gt;  &lt;p&gt;由下图可知，函数呈马鞍形，确实存在这样一个均衡点。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201107/201107292140009733.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/foamliu/201107/201107292140058648.png" width="519" height="397" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/2121492.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/07/29/2121492.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/foamliu/archive/2011/07/25/2116045.html</id><title type="text">一点突发奇想</title><summary type="text">1. 程序员更像是哪个职业呢？ 抛砖引玉： 1) 翻译：把人的语言翻译成机器的语言。 2) 建筑师：复用模式，构建复杂的系统。 3) 其它。。? 2. 如果有人对你说“这个世界是个游戏，我是avatar，而你是NPC”，你会问他什么问题来证伪他呢？ 这个跟图灵测试有点相似 图灵测试：仅仅通过文字沟通判断对方是否是程序 证伪avatar：仅仅通过文字沟通推翻自己是程序的断言 我们现在可以模拟《魔兽世...</summary><published>2011-07-25T04:13:00Z</published><updated>2011-07-25T04:13:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/07/25/2116045.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/07/25/2116045.html"/><content type="html">&lt;p&gt;1. 程序员更像是哪个职业呢？&lt;/p&gt;  &lt;p&gt;抛砖引玉：&lt;/p&gt;  &lt;p&gt;1) 翻译：把人的语言翻译成机器的语言。&lt;/p&gt;  &lt;p&gt;2) 建筑师：复用模式，构建复杂的系统。&lt;/p&gt;  &lt;p&gt;3) 其它。。?&lt;/p&gt;  &lt;p&gt;2. 如果有人对你说“这个世界是个游戏，我是avatar，而你是NPC”，你会问他什么问题来证伪他呢？&lt;/p&gt;  &lt;p&gt;这个跟图灵测试有点相似&lt;/p&gt;  &lt;p&gt;图灵测试：仅仅通过文字沟通判断对方是否是程序    &lt;br /&gt;证伪avatar：仅仅通过文字沟通推翻自己是程序的断言&lt;/p&gt;  &lt;p&gt;我们现在可以模拟《魔兽世界》这样一个香港大小的世界，假设随着技术进步，在这个世界里演化出有智慧的NPC，那么这些NPC对这个世界的追问可能跟我们现在对宇宙的追问相似。之所以对这个题目有兴趣是因为我相信 AI很可能首先出现在这样的虚拟环境中。如果NPC可以构筑一个描述我们世界的理论，那么我们也可以构筑一个描述上帝世界的理论。如果我们的世界是被上帝世界模拟的，那么就不会有平行宇宙。因为安装最基本的定义：被模拟的世界状态数在所有时间都小于等于模拟它的世界。另一方面，引入平行宇宙后会让上帝世界用于模拟我们的状态数急剧增加以至于代价过大。你看：A 我们的世界是否是被模拟的 足以产生一些结论 而通过验证这些结论 又可以支持或否定最初的断言。&lt;/p&gt;  &lt;p&gt;由于时间的相对性：我是NPC，我的时间和上层世界同步演进，现在是2011/7/28 下午4点，这时上层世界发生地震，自动保护系统把内存dump到硬盘，一切都被灰尘覆盖。。。   &lt;br /&gt;上层世界过了100年，有考古队挖出了这个硬盘，重新尝试加载，恢复系统运行，神奇般的，作为NPC的我，对此毫无知觉，继续之前的思考或游戏。我们只知道自己世界的时间，而自己的世界时间取决于运动。&lt;/p&gt;  &lt;p&gt;上层世界把我们的世界加速和减速我们仍然无法知道，甚至上层世界像倒带一样让我们退回到1911年辛亥革命，然后再重新过到现在，我们依然无法知觉。如果有人说来自上层，但又不能展示神迹，只能通过对话和对上层世界自洽的描述来让你信服，这可能么？我觉得这可以成为一个低成本却具相当深度的电影。有空咱们玩一个游戏，大家交替来做这样的人，回答大家的问题，看谁更值得信服描述更符合逻辑。&lt;/p&gt;  &lt;p&gt;老问题哈 黑客帝国 Matrix里的人能不能不借助外力对Matrix和外界进行一些靠谱的思考。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/2116045.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/07/25/2116045.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/foamliu/archive/2011/03/07/1976481.html</id><title type="text">推荐一篇文章&amp;lt;&amp;lt;Time, Clocks, and the Ordering of Events in a Distributed System&amp;gt;&amp;gt;</title><summary type="text">简述: 分布式系统包含一堆进程(processes)，进程间通过交换消息(message)彼此通讯。在分布式系统中，有时无法确定两个事件(event)的先后次序，所以先发生（happended before）关系在系统中只能是偏序（partial ordering）。分布式系统中的问题很多源于人们尚未意识到这点及其涵义。如前所述，假定系统由进程组成；而进程包含一个事件序列。即：若a先于b发生，则a在序列中比b靠前。因此在单一进程中的事件，其“先发生”是全序(total ordering)关系。假定进程收发消息也是事件，则可以用符号”-&gt;”指代”先发生”关系如下:定义:(1) 若a和b是同</summary><published>2011-03-07T14:33:00Z</published><updated>2011-03-07T14:33:00Z</updated><author><name>薛定谔的旺财（刘杨）</name><uri>http://www.cnblogs.com/foamliu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/foamliu/archive/2011/03/07/1976481.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/foamliu/archive/2011/03/07/1976481.html"/><content type="html">&lt;p&gt;简述: 分布式系统包含一堆进程(processes)，进程间通过交换消息(message)彼此通讯。在分布式系统中，有时无法确定两个事件(event)的先后次序，所以先发生（happended before）关系在系统中只能是偏序（partial ordering）。分布式系统中的问题很多源于人们尚未意识到这点及其涵义。&lt;/p&gt;&lt;p&gt;如前所述，假定系统由进程组成；而进程包含一个事件序列。即：若a先于b发生，则a在序列中比b靠前。因此在单一进程中的事件，其&amp;ldquo;先发生&amp;rdquo;是全序(total ordering)关系。假定进程收发消息也是事件，则可以用符号&amp;rdquo;-&amp;gt;&amp;rdquo;指代&amp;rdquo;先发生&amp;rdquo;关系如下:&lt;/p&gt;&lt;p&gt;定义:&lt;/p&gt;&lt;p&gt;(1) 若a和b是同一进程中的事件,a比b先发生,则a-&amp;gt;b;&lt;/p&gt;&lt;p&gt;(2) 若进程一发送一消息为事件a，进程二接收此消息为事件b，则a-&amp;gt;b;&lt;/p&gt;&lt;p&gt;(3) 若a-&amp;gt;b 和 b-&amp;gt;c 则 a-&amp;gt;c;&lt;/p&gt;&lt;p&gt;两事件a与b, 若a-&amp;gt;b 与 b-&amp;gt;a皆不成立, 则说二者同时发生 (concurrent)。&lt;/p&gt;&lt;p&gt;假定a-&amp;gt;a不成立, 即&amp;rdquo;先发生&amp;rdquo;关系是非自反的(irreflexive).&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/foamliu/201103/201103072233131226.png"&gt;&lt;img height="356" width="780" src="http://images.cnblogs.com/cnblogs_com/foamliu/201103/20110307223314222.png" alt="image" border="0" title="image" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;上面图1表现时空关系, 横向是空间,纵向为事件, 先发生事件标记在下,波浪线为消息。例如如图我们有: p1-&amp;gt;r4；而p3和q3则为同时关系。若您熟悉狭义相对论的时空表示，则看这幅图也不会觉得陌生。相对论中，事件的序（ordering）由能发送的消息定义（message that could be sent），而在此处，我们只考虑实际发送的消息（message that are sent）。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;逻辑时钟：&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;现在引入逻辑时钟：为进程P&lt;sub&gt;i&lt;/sub&gt;定义时钟C&lt;sub&gt;i&lt;/sub&gt;, 它为进程中的每个事件a都赋予一个数字C&lt;sub&gt;i&lt;/sub&gt;[a].&lt;/p&gt;&lt;p&gt;对任意事件a和b: 若a-&amp;gt;b 则C[a]&amp;nbsp; &amp;lt;&amp;nbsp; C[b]&lt;/p&gt;&lt;p&gt;注意反向未必成立.&lt;/p&gt;&lt;p&gt;易见:&lt;/p&gt;&lt;p&gt;C1. 若a和b是同一进程Pi的两个事件,且a先于b发生,则Ci[a]&amp;nbsp; &amp;lt;&amp;nbsp; Ci[b].&lt;/p&gt;&lt;p&gt;C2. 若Pi发送一消息为事件a, Pj接收同一消息为事件b, 则Ci[a]&amp;nbsp; &amp;lt;&amp;nbsp; Cj[b].&lt;/p&gt;&lt;p&gt;(未完待续)&lt;/p&gt;&lt;img src="http://www.cnblogs.com/foamliu/aggbug/1976481.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/foamliu/archive/2011/03/07/1976481.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
