<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>梁剑的Blog &#187; Mathematics</title>
	<atom:link href="http://icomes.net/category/%e6%8a%80%e6%9c%af%e7%ac%94%e8%ae%b0/mathematics/feed/" rel="self" type="application/rss+xml" />
	<link>http://icomes.net</link>
	<description>做有趣的事，做有用的人</description>
	<lastBuildDate>Sat, 05 Nov 2011 18:23:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>进化论中的概率论</title>
		<link>http://icomes.net/2009/01/19/%e8%bf%9b%e5%8c%96%e8%ae%ba%e4%b8%ad%e7%9a%84%e6%a6%82%e7%8e%87%e8%ae%ba/</link>
		<comments>http://icomes.net/2009/01/19/%e8%bf%9b%e5%8c%96%e8%ae%ba%e4%b8%ad%e7%9a%84%e6%a6%82%e7%8e%87%e8%ae%ba/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 17:02:44 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[技术笔记]]></category>
		<category><![CDATA[数学]]></category>
		<category><![CDATA[概率]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=276</guid>
		<description><![CDATA[这是今天看的第二篇和概率有关的文章——《数学之美番外篇：进化论中的概率论》。 文章的开始就提到了： 偶然性在进化中确实存在（例如，偶然性的突变可以产生新的特征），但是进化并不依赖偶然性来产生新的器官、蛋白质或其他实体。截然相反的是，自然选择，作为进化中已知的最主要机制，却会明确保留“需要的”（能适应的）特性，消除“不需要的”（无法适应的）特性。只要选择的影响力存在，自然选择就能把进化向一个方向推进，在出乎意料的短时间内产生复杂的结构。举个例子，现有由13个字母构成的序列“TOBEORNOTTOBE”，假设有几百万只猴子，每只猴子每秒钟挑一条短语，需要78,800年才能从26^13种可能中选出这样的排列。不过，Glendale College的Richard Hardison在20世纪80年代写过一个程序，它能够在随机产生序列的同时，保证那些已经出现在正确位置上的字母不会变化（这样做倒有点《汉姆雷特》 的味道。译注：这个句子看了大半天才明白，嘿嘿）。这个程序平均只需要336次迭代就能生成上文提到的短语，时间少于90秒。更神奇的是，把莎士比亚的整个剧本重新生成一遍也只需要四天半时间。 很好奇是否真的是336，所以也写了个程序 #include &#60;cstdlib&#62; #include &#60;iostream&#62; #include &#60;string&#62; &#160; using namespace std; &#160; int GenerateRandomString&#40;const string &#38;sTarget, const string &#38;sNow, string &#38;sResult&#41; &#123; char cBase = 'a'; int iCounter = 0; for&#40; unsigned int i = 0; i &#60; sTarget.size&#40;&#41;; i++ &#41; &#123; if&#40; sTarget&#91;i&#93; != sNow&#91;i&#93; &#41; &#123; int [...]]]></description>
			<content:encoded><![CDATA[<p>这是今天看的第二篇和概率有关的文章——<a href="http://blog.csdn.net/pongba/archive/2007/12/02/1912466.aspx" target="_blank">《数学之美番外篇：进化论中的概率论》</a>。</p>
<p>文章的开始就提到了：</p>
<blockquote><p>偶然性在进化中确实存在（例如，偶然性的突变可以产生新的特征），但是进化并不依赖偶然性来产生新的器官、蛋白质或其他实体。截然相反的是，自然选择，作为进化中已知的最主要机制，却会明确保留“需要的”（能适应的）特性，消除“不需要的”（无法适应的）特性。只要选择的影响力存在，自然选择就能把进化向一个方向推进，在出乎意料的短时间内产生复杂的结构。举个例子，现有由13个字母构成的序列“TOBEORNOTTOBE”，假设有几百万只猴子，每只猴子每秒钟挑一条短语，需要78,800年才能从26^13种可能中选出这样的排列。不过，Glendale College的Richard Hardison在20世纪80年代写过一个程序，它能够在随机产生序列的同时，保证那些已经出现在正确位置上的字母不会变化（这样做倒有点《汉姆雷特》 的味道。译注：这个句子看了大半天才明白，嘿嘿）。这个程序平均只需要336次迭代就能生成上文提到的短语，时间少于90秒。更神奇的是，把莎士比亚的整个剧本重新生成一遍也只需要四天半时间。</p></blockquote>
<p>很好奇是否真的是336，所以也写了个程序</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;cstdlib&gt;</span>
<span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;string&gt;</span>
&nbsp;
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> GenerateRandomString<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> string <span style="color: #000040;">&amp;</span>sTarget, <span style="color: #0000ff;">const</span> string <span style="color: #000040;">&amp;</span>sNow, string <span style="color: #000040;">&amp;</span>sResult<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">char</span> cBase <span style="color: #000080;">=</span> <span style="color: #FF0000;">'a'</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> iCounter <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span> <span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> sTarget.<span style="color: #007788;">size</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span> <span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span> sTarget<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> sNow<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#41;</span>
		<span style="color: #008000;">&#123;</span>
			<span style="color: #0000ff;">int</span> r <span style="color: #000080;">=</span> <span style="color: #0000dd;">rand</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">%</span> <span style="color: #0000dd;">26</span><span style="color: #008080;">;</span>	
			sResult<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>cBase<span style="color: #000040;">+</span>r<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>	
			iCounter<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
		<span style="color: #008000;">&#125;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">return</span> iCounter<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> CountDifference<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> string <span style="color: #000040;">&amp;</span>s1, <span style="color: #0000ff;">const</span> string <span style="color: #000040;">&amp;</span>s2, string <span style="color: #000040;">&amp;</span>s3<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> iCount <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> s1.<span style="color: #007788;">size</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;&amp;</span> i <span style="color: #000080;">&lt;</span> s2.<span style="color: #007788;">size</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span> <span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span> s1<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> s2<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">&amp;&amp;</span> s3<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> s1<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#41;</span>
		<span style="color: #008000;">&#123;</span>
			iCount<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
			s3<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> s1<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
		<span style="color: #008000;">&#125;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">return</span> iCount<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> evolution<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> iSeed<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	string sTarget <span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;tobeornotobe&quot;</span><span style="color: #008080;">;</span>
	string sNow<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span> <span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> sTarget.<span style="color: #007788;">size</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span> <span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		sNow <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #FF0000;">' '</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
&nbsp;
	<span style="color: #0000ff;">int</span> iNotMatch <span style="color: #000080;">=</span> sTarget.<span style="color: #007788;">size</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> iCounter <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> iRandTime <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">srand</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">time</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">NULL</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> getpid<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> iSeed<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span> iNotMatch <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">0</span> <span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		string sTemp <span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;             &quot;</span><span style="color: #008080;">;</span>
		iRandTime <span style="color: #000040;">+</span><span style="color: #000080;">=</span> GenerateRandomString<span style="color: #008000;">&#40;</span>sTarget, sNow, sTemp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>	
		<span style="color: #0000ff;">int</span> iMatch <span style="color: #000080;">=</span> CountDifference<span style="color: #008000;">&#40;</span>sTarget, sTemp, sNow<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		iNotMatch <span style="color: #000040;">-</span><span style="color: #000080;">=</span> iMatch<span style="color: #008080;">;</span>
		<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> iCounter<span style="color: #000040;">++</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;:t&quot;</span> <span style="color: #000080;">&lt;&lt;</span> iRandTime <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;t&quot;</span> <span style="color: #000080;">&lt;&lt;</span> iMatch <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;t&quot;</span> <span style="color: #000080;">&lt;&lt;</span> sTemp <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;t&quot;</span> <span style="color: #000080;">&lt;&lt;</span> sNow <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">return</span> iRandTime<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> c, <span style="color: #0000ff;">char</span> <span style="color: #000040;">**</span>v<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> iLoop <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span> c <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">?</span> <span style="color: #0000dd;">atoi</span><span style="color: #008000;">&#40;</span>v<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> <span style="color: #008080;">:</span> <span style="color: #0000dd;">100</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> iRandTime <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span> <span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> iLoop<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> i <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;----------------------------&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
		iRandTime <span style="color: #000040;">+</span><span style="color: #000080;">=</span> evolution<span style="color: #008000;">&#40;</span>i<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> iRandTime <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot; / &quot;</span> <span style="color: #000080;">&lt;&lt;</span> iLoop <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot; = &quot;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #0000ff;">double</span><span style="color: #008000;">&#40;</span>iRandTime<span style="color: #008000;">&#41;</span> <span style="color: #000040;">/</span> iLoop <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>而根据这个程序的结果，生成10000次”tobeornottobe”，平均每次需要331次随机，结果还是相当接近的，当然速度就快多了。<br />
另外，原文作者说他自己写的程序是82次，这应该是生成整个句子的次数，而不是random的次数吧。<br />
反映到上面的程序中，就是输出结果的行数均值，也和实际结果吻合。<br />
附上其中一次的结果：</p>
<pre>
1:	12	1	cmraiithaosb 	         o
2:	23	0	pvzordffr ha 	         o
3:	34	0	bxyneoxtr hx 	         o
4:	45	0	pdxyfkmly lc 	         o
5:	56	0	nifwqerkv tt 	         o
6:	67	0	khhcrjsep en 	         o
7:	78	0	huvvzxphl du 	         o
8:	89	0	ppkcrewns kt 	         o
9:	100	0	qzaqfoilf ky 	         o
10:	111	0	cghkflbzz vo 	         o
11:	122	1	wvopvraux df 	     r   o
12:	132	0	flvlw lwy yi 	     r   o
13:	142	0	wprip wsx db 	     r   o
14:	152	0	mpigu cub oo 	     r   o
15:	162	1	lmjwn fdt pd 	     r  to
16:	171	0	kwegg xz  fd 	     r  to
17:	180	0	vxaku tf  iv 	     r  to
18:	189	1	gtbka sm  vc 	  b  r  to
19:	197	0	ac gk qb  nd 	  b  r  to
20:	205	0	hz oc dx  gy 	  b  r  to
21:	213	0	lf xz sx  kz 	  b  r  to
22:	221	1	fe ph qo  hu 	  b  r oto
23:	228	0	pp ql b   qv 	  b  r oto
24:	235	0	ug yn g   vg 	  b  r oto
25:	242	0	uj my i   jt 	  b  r oto
26:	249	0	nq rd p   fg 	  b  r oto
27:	256	1	pw oo b   ta 	  b or oto
28:	262	0	xc x  g   jk 	  b or oto
29:	268	0	yt r  y   mt 	  b or oto
30:	274	0	el d  v   jz 	  b or oto
31:	280	0	ls l  e   wm 	  b or oto
32:	286	1	tt m  u   vn 	t b or oto
33:	291	0	 p d  z   wa 	t b or oto
34:	296	0	 r n  f   gb 	t b or oto
35:	301	1	 a t  r   se 	t b or oto e
36:	305	0	 q b  p   y  	t b or oto e
37:	309	0	 c p  e   x  	t b or oto e
38:	313	0	 e y  b   r  	t b or oto e
39:	317	0	 x p  s   f  	t b or oto e
40:	321	0	 l x  w   o  	t b or oto e
41:	325	0	 n n  i   l  	t b or oto e
42:	329	0	 q c  t   o  	t b or oto e
43:	333	0	 l b  t   y  	t b or oto e
44:	337	1	 i s  n   k  	t b ornoto e
45:	340	0	 s c      e  	t b ornoto e
46:	343	0	 m v      z  	t b ornoto e
47:	346	0	 x c      q  	t b ornoto e
48:	349	0	 r m      u  	t b ornoto e
49:	352	0	 x h      r  	t b ornoto e
50:	355	0	 z o      p  	t b ornoto e
51:	358	0	 y m      z  	t b ornoto e
52:	361	0	 e m      g  	t b ornoto e
53:	364	0	 q w      g  	t b ornoto e
54:	367	0	 q l      f  	t b ornoto e
55:	370	0	 t o      i  	t b ornoto e
56:	373	0	 k d      p  	t b ornoto e
57:	376	0	 q v      c  	t b ornoto e
58:	379	0	 z i      h  	t b ornoto e
59:	382	0	 n t      i  	t b ornoto e
60:	385	0	 a j      d  	t b ornoto e
61:	388	0	 q y      e  	t b ornoto e
62:	391	0	 s t      f  	t b ornoto e
63:	394	0	 a r      u  	t b ornoto e
64:	397	1	 o j      o  	tob ornoto e
65:	399	0	   b      a  	tob ornoto e
66:	401	2	   e      b  	tobeornotobe
</pre>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/01/19/%e8%bf%9b%e5%8c%96%e8%ae%ba%e4%b8%ad%e7%9a%84%e6%a6%82%e7%8e%87%e8%ae%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数学与程序员</title>
		<link>http://icomes.net/2009/01/18/%e6%95%b0%e5%ad%a6%e4%b8%8e%e7%a8%8b%e5%ba%8f%e5%91%98/</link>
		<comments>http://icomes.net/2009/01/18/%e6%95%b0%e5%ad%a6%e4%b8%8e%e7%a8%8b%e5%ba%8f%e5%91%98/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 08:56:43 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[数学]]></category>
		<category><![CDATA[贝叶斯]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=273</guid>
		<description><![CDATA[花了2个小时，细读《数学之美番外篇：平凡而又神奇的贝叶斯方法》。 第一感觉是：原来贝叶斯是这样用的。 很多已经被尘封，甚至是掩埋的概念再次出现在眼前：条件概率、最大似然、马尔可夫链…… 原来我仅仅是学过概率论和数理统计而已，根本不知道这些知识可以在计算机里有什么应用。 学校也仅仅是设立了这样的课程，并没有告诉我们这些课程和计算机有什么关系。 而事实上，概率论在计算机科学中可以应用的场景实在太多了。 拼写检查、中文分词、机器翻译、垃圾邮件过滤、语音识别…… 不过对于大多数的程序员来说，日常的工作都是任务驱动的， 所需要的知识也大多和系统、网络、工具、框架、业务等有关， 已经很难找到数学的用武之地了。 ps: 由于csdn的相册停止服务，文章中很多图片都看不到了。 这时候可以借助搜索引擎，找到转载的文章。]]></description>
			<content:encoded><![CDATA[<p>花了2个小时，细读<a href="http://blog.csdn.net/pongba/archive/2008/09/21/2958094.aspx">《数学之美番外篇：平凡而又神奇的贝叶斯方法》</a>。<br />
第一感觉是：原来贝叶斯是这样用的。</p>
<p>很多已经被尘封，甚至是掩埋的概念再次出现在眼前：条件概率、最大似然、马尔可夫链……</p>
<p>原来我仅仅是学过概率论和数理统计而已，根本不知道这些知识可以在计算机里有什么应用。<br />
学校也仅仅是设立了这样的课程，并没有告诉我们这些课程和计算机有什么关系。<br />
而事实上，概率论在计算机科学中可以应用的场景实在太多了。<br />
拼写检查、中文分词、机器翻译、垃圾邮件过滤、语音识别……</p>
<p>不过对于大多数的程序员来说，日常的工作都是任务驱动的，<br />
所需要的知识也大多和系统、网络、工具、框架、业务等有关，<br />
已经很难找到数学的用武之地了。</p>
<p>ps:</p>
<p>由于csdn的相册停止服务，文章中很多图片都看不到了。<br />
这时候可以借助搜索引擎，找到<a href="http://www.kuqin.com/math/20080921/19270.html" target="_blank">转载的文章</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/01/18/%e6%95%b0%e5%ad%a6%e4%b8%8e%e7%a8%8b%e5%ba%8f%e5%91%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

