<?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/57131/rss</id><updated>2012-05-14T12:06:44Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/57131/rss"/><entry><id>http://www.cnblogs.com/facingwaller/archive/2012/03/10/2388579.html</id><title type="text">【欧拉题四】三位数乘积所得的最大回文数</title><summary type="text">题目A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 9199. Find the largest palindrome made from the product of two 3-digit numbers.代码usingSystem;usingSystem.Collections.Generic;/***从X1=999,X2=999*判断乘积是否回文转换成字符串，*依次减X1和X2**...</summary><published>2012-03-09T18:11:00Z</published><updated>2012-03-09T18:11:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2012/03/10/2388579.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2012/03/10/2388579.html"/><content type="html">&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;题目&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;p&gt;A  palindromic number reads the same both ways. The largest palindrome made from  the product of two 2-digit numbers is 9009 = 91&amp;nbsp;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; vertical-align: middle; border-left-width: 0px" border="0" alt="&amp;#215;" src="http://projecteuler.net/images/symbol_times.gif" width="9" height="9" data-ke-src="http://projecteuler.net/images/symbol_times.gif" /&gt;99.&lt;/p&gt; &lt;p&gt;Find  the largest palindrome made from the product of two 3-digit numbers.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;代码&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; color: #0000ff; "&gt;using&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&amp;nbsp;System;&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&amp;nbsp;*&amp;nbsp;&lt;br /&gt;&amp;nbsp;*&amp;nbsp;从&amp;nbsp;X1=999&amp;nbsp;,X2=999&lt;br /&gt;&amp;nbsp;*&amp;nbsp;判断乘积是否回文转换成字符串，&amp;nbsp;&lt;br /&gt;&amp;nbsp;*&amp;nbsp;依次减&amp;nbsp;X1和X2&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;*&amp;nbsp;&lt;br /&gt;&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;namespace&lt;/span&gt;&amp;nbsp;OulerProblem&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&amp;nbsp;Problem4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;&amp;nbsp;q4&amp;nbsp;()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;gt;&amp;nbsp;list=&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;gt;&amp;nbsp;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;x1&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;999&lt;/span&gt;,&amp;nbsp;x2&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;999&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&amp;nbsp;isok&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;k&amp;nbsp;=&amp;nbsp;x1&amp;nbsp;;&amp;nbsp;k&amp;nbsp;&amp;gt;=&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;;&amp;nbsp;k--)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;j&amp;nbsp;=&amp;nbsp;x2&amp;nbsp;;&amp;nbsp;j&amp;nbsp;&amp;gt;=&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;;&amp;nbsp;j--)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;palNum&amp;nbsp;=&amp;nbsp;(k&amp;nbsp;*&amp;nbsp;j).ToString&amp;nbsp;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;isok&amp;nbsp;=&amp;nbsp;isStringP&amp;nbsp;(palNum);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(isok)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.Add(k*j);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.Sort();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;+list[list.Count-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;]&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&amp;nbsp;isStringP&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;palNum)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&amp;nbsp;isok&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;array1&amp;nbsp;=&amp;nbsp;palNum.ToCharArray&amp;nbsp;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;last&amp;nbsp;=&amp;nbsp;array1.Length&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;while&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;)&amp;nbsp;{&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;单个字符相等&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(array1&amp;nbsp;[i]&amp;nbsp;!=&amp;nbsp;array1&amp;nbsp;[last&amp;nbsp;-&amp;nbsp;i])&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(i&amp;nbsp;==&amp;nbsp;array1.Length&amp;nbsp;-&amp;nbsp;i&amp;nbsp;||&amp;nbsp;i&amp;nbsp;==&amp;nbsp;array1.Length&amp;nbsp;-&amp;nbsp;i&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;isok&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;isok;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;test&amp;nbsp;()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine&amp;nbsp;(isStringP&amp;nbsp;((99&amp;nbsp;*&amp;nbsp;91).ToString&amp;nbsp;()));&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;t1&amp;nbsp;=&amp;nbsp;DateTime.Now;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine&amp;nbsp;(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;+&amp;nbsp;q4&amp;nbsp;()&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;cast&amp;nbsp;time&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;+&amp;nbsp;(DateTime.Now&amp;nbsp;-&amp;nbsp;t1).TotalSeconds);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif; font-size: 16px; line-height: normal; background-color: #ffffff; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/facingwaller/aggbug/2388579.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/facingwaller/archive/2012/03/10/2388579.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/facingwaller/archive/2012/03/09/2388191.html</id><title type="text">【欧拉3】最大质因数</title><summary type="text">问题描述： The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? public class Q3 { /// &lt;summary&gt; /// 取得最大的质因数 ...</summary><published>2012-03-09T11:05:00Z</published><updated>2012-03-09T11:05:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2012/03/09/2388191.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2012/03/09/2388191.html"/><content type="html">&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;strong&gt;问题描述：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The prime factors of 13195 are 5, 7, 13 and 29.&lt;/p&gt;  &lt;p&gt;What is the largest prime factor of the number 600851475143 ?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;public class Q3 {&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /// &amp;lt;summary&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /// 取得最大的质因数    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /// &amp;lt;/summary&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /// &amp;lt;param name=&amp;quot;max&amp;quot;&amp;gt;The max.&amp;lt;/param&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static long q3(long max) {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //遍历可能的质因数2 到。。    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;long&amp;gt; math = new List&amp;lt;long&amp;gt;();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (long i = 2;max != 1; i++) {&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; while (max % i == 0) {   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; math.Add(i);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; max = max / i;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return math.Distinct().Max();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static void test() {   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var t1 = DateTime.Now;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot; &amp;quot; + q3(600851475143) + &amp;quot; cast time &amp;quot; + (DateTime.Now - t1).TotalSeconds);&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }   &lt;br /&gt;&amp;#160; }    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/facingwaller/201203/201203091904534908.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 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/facingwaller/201203/201203091904558548.png" width="244" height="161" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/facingwaller/aggbug/2388191.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/facingwaller/archive/2012/03/09/2388191.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/facingwaller/archive/2012/03/08/2384589.html</id><title type="text">Problem 2</title><summary type="text"/><published>2012-03-07T22:12:00Z</published><updated>2012-03-07T22:12:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2012/03/08/2384589.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2012/03/08/2384589.html"/><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:&lt;/p&gt;  &lt;p&gt;1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...&lt;/p&gt;  &lt;p&gt;By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.&lt;/p&gt;  &lt;p&gt;提醒：even-valued 是偶数的意思，英文不好的同学表示：-_-|||&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;最简单的解答&lt;/strong&gt;&lt;/p&gt;  public static long q2(int max) {&lt;br/&gt;            long s1 = 1;&lt;br/&gt;            long s2 = 2;&lt;br/&gt;&lt;br/&gt;            long sum = 2;&lt;br/&gt;            while (s2 &amp;lt;= max) {&lt;br/&gt;                s1 = s1 + s2;//(s3)&lt;br/&gt;                s2 = s1 + s2;//(s4 = s3 + s2)&lt;br/&gt;                if (s1 &amp;lt;= max &amp;amp;&amp;amp; s1 % 2 == 0) {&lt;br/&gt;                    sum += s1;&lt;br/&gt;                }&lt;br/&gt;                if (s2 &amp;lt;= max &amp;amp;&amp;amp; s2 % 2 == 0) {&lt;br/&gt;                    sum += s2;&lt;br/&gt;                }&lt;br/&gt;            }&lt;br/&gt;            return sum;&lt;br/&gt;        }&lt;br/&gt;&lt;br/&gt;        public static void test() {&lt;br/&gt;            var t1 = DateTime.Now;&lt;br/&gt;            Console.WriteLine(" " + q2(4000000) + " cast time " + (DateTime.Now - t1).TotalSeconds);&lt;br/&gt;&lt;br/&gt;        }&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;运行结果 &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/facingwaller/201203/201203080549597579.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/facingwaller/201203/201203080550003369.png" width="605" height="397" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;当然还有很多可以简化复杂的方法。&lt;/p&gt;&lt;p&gt;第一点：比如对%2，如果c#运行的时候，没有对其特别优化（判断最后一位是否是0），则可以考虑使用规律来减少判断。规律是：&lt;/p&gt;&lt;p&gt;1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...&lt;/p&gt;&lt;p&gt;S1奇数，S2偶数，S3奇=奇+偶，S4奇数=奇数+偶数，S5=偶数。。。&lt;/p&gt;&lt;p&gt;也就是说，从2开始，每隔2个就是一个偶数。&lt;/p&gt;&lt;p&gt;甚至可以得出一个偶数的递推公式。&lt;/p&gt;&lt;p&gt;O1=S2=2;&lt;/p&gt;&lt;p&gt;O2=S5=S3+S4;&lt;/p&gt;&lt;p&gt;O3=S8=S6+S7;&lt;/p&gt;&lt;p&gt;.......&lt;/p&gt;&lt;p&gt;O2=O1+1&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp; O1=O1*2+1=。。。&lt;/p&gt;&lt;p&gt;O3=O2+S4+O2&lt;/p&gt;&lt;p&gt;....&lt;/p&gt;&lt;p&gt;好吧。。最终可以得出一个通项公式；&lt;/p&gt;&lt;p&gt;参考这里 &lt;a href="http://www.cnblogs.com/zhouyinhui/archive/2011/01/06/1929153.html"&gt;http://www.cnblogs.com/zhouyinhui/archive/2011/01/06/1929153.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;挖个坑。有时间再填满中间漏掉的推理。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/facingwaller/aggbug/2384589.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/facingwaller/archive/2012/03/08/2384589.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/facingwaller/archive/2012/03/03/2377999.html</id><title type="text">统计数字</title><summary type="text">题目 一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排，每个页码都不含多余的前导数字0。例如第6页用6表示而不是06或006。数字统计问题要求对给...</summary><published>2012-03-02T20:19:00Z</published><updated>2012-03-02T20:19:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2012/03/03/2377999.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2012/03/03/2377999.html"/><content type="html">&lt;p&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: 21px; font-weight: bold; line-height: 31px; "&gt;题目&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排，每个页码都不含多余的前导数字0。例如第6页用6表示而不是06或006。数字统计问题要求对给定书的总页码，计算出书的全部页码中分别用到多少次数字0,1,2,3,.....9。 &lt;/p&gt;  &lt;p&gt;来源:王晓东编著的《算法设计与实验题解》&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;网上有几篇相关的文章：&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;文章1&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;来自&lt;a href="http://blog.csdn.net/jcwKyl/article/details/3009244"&gt;http://blog.csdn.net/jcwKyl/article/details/3009244&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; 这个题目有个最容易想到的n*log10(n)的算法。这是自己写的复杂度为O(n*log10(n))的代码：&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;void statNumber(int n) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i, t; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int count[10] = {0}; &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 1; i &amp;lt;= n; i++) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t = i; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(t) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[t%10]++; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t/=10; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 10; i++) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%d/n", count[i]); &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;仔细考虑m个n位十进制数的特点，在一个n位十进制数的由低到高的第i个数位上，总是连续出现10^i个0，然后是10^i个1&amp;#8230;&amp;#8230;一直到10^i个9，9之后又是连续的10^i个0，这样循环出现。找到这个规律，就可以在常数时间内算出第i个数位上每个数字出现的次数。而在第i个数位上，最前面的10^i个0是前导0，应该把它们减掉。&lt;/p&gt;  &lt;p&gt;这样，可以只分析给定的输入整数n的每个数位，从面可以得到一个log10(n)的算法，代码如下：&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;void statNumber(int n) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int m, i, j, k, t, x, len = log10(n); &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char d[16]; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int pow10[12] = {1}, count[10] = {0}; &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 1; i &amp;lt; 12; i++) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pow10[i] = pow10[i-1] * 10; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprintf(d, "%d", n); &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m = n+1; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt;= len; i++) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = d[i] - '0'; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t = (m-1) / pow10[len-i];&amp;nbsp; &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[x] += m - t * pow10[len-i];&amp;nbsp; &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t /= 10; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = 0; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(j &amp;lt;= x-1) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[j] += (t + 1) * pow10[len-i]; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j++; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(j &amp;lt; 10) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[j] += t * pow10[len - i]; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j++; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[0] -= pow10[len-i]; /* 第i个数位上前10^i个0是无意义的 */ &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(j = 0; j &amp;lt; 10; j++) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%d/n", count[j]); &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;} &lt;/li&gt;    &lt;li&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;通过对随机生成的测试数据的比较，可以验证第二段代码是正确的。   &lt;br /&gt;对两段代码做效率测试，第一次随机产生20万个整数，结果在我的电脑上，第二段代码执行1.744秒。第一段代码等我吃完钣回来看还是没反应，就强行关了它。    &lt;br /&gt;第二次产生了1000个整数，再次测试，结果第一段代码在我的电脑上执行的时间是    &lt;br /&gt;10.1440秒，而第二段代码的执行时间是0.0800秒。    &lt;br /&gt;其原因是第一段代码时间复杂度为O(n*log10(n))，对m个输入整数进行计算，则需要的时间为 1*log10(1) + 2*log10(2) + ... + m*log10(m)， 当n &amp;gt; 10时，有    &lt;br /&gt;n*log10(n) &amp;gt; n，所以上式的下界为11+12+....+m，其渐近界为m*m。对于20万个测试数据，其运行时间的下界就是4*10^10。    &lt;br /&gt;同样可得第二段代码对于n个输入数据的运行时间界是n*log10(n)的。 &lt;/p&gt;  &lt;p&gt;上面的代码中有个pow10数组用来记录10^i，但10^10左右就已经超过了2^32，但是题目给定的输入整数的范围在10^9以内，所以没有影响。   &lt;br /&gt;原著中给出的分析如下：    &lt;br /&gt;考察由0,1,2...9组成的所有n位数。从n个0到n个9共有10^n个n位数。在这10^n个n位数中，0,1,2.....9第个数字使用次数相同，设为f(n)。f(n)满足如下递推式：    &lt;br /&gt;n&amp;gt;1:    &lt;br /&gt;f(n) = 10f(n-1)+10^(n-1)    &lt;br /&gt;n = 1:    &lt;br /&gt;f(n) =1    &lt;br /&gt;由此可知，f(n) = n*10^(n-1)。    &lt;br /&gt;据此，可从高位向低位进行统计，再减去多余的0的个数即可。&lt;/p&gt;  &lt;p&gt;著者的思想说的更清楚些应该是这样：&lt;/p&gt;  &lt;p&gt;对于一个m位整数，我们可以把0到n之间的n+1个整数从小到大这样来排列：&lt;/p&gt;  &lt;p&gt;000......0&lt;/p&gt;  &lt;p&gt;.............&lt;/p&gt;  &lt;p&gt;199......9&lt;/p&gt;  &lt;p&gt;200......0&lt;/p&gt;  &lt;p&gt;299......9&lt;/p&gt;  &lt;p&gt;.........&lt;/p&gt;  &lt;p&gt;这样一直排到自然数n。对于从0到199......9这个区间来说，抛去最高位的数字不看，其低m-1位恰好&lt;/p&gt;  &lt;p&gt;就是m-1个0到m-1个9共10^(m-1)个数。利用原著中的递推公式，在这个区间里，每个数字出现的次数&lt;/p&gt;  &lt;p&gt;（不包括最高位数字）为(m-1)*10^(m-2)。假设n的最高位数字是x，那么在n之间上述所说的区间共有&lt;/p&gt;  &lt;p&gt;x个。那么每个数字出现的次数x倍就可以统计完这些区间。再看最高位数字的情况，显然0到x-1这些&lt;/p&gt;  &lt;p&gt;数字在最高位上再现的次数为10^(m-1)，因为一个区间长度为10^(m-1)。而x在最高位上出现次数就是&lt;/p&gt;  &lt;p&gt;n%10^(m-1)+1了。接下来对n%10^(m-1)，即n去掉最高位后的那个数字再继续重复上面的方法。直到&lt;/p&gt;  &lt;p&gt;个位，就可以完成题目要求了。&lt;/p&gt;  &lt;p&gt;比如，对于一个数字34567，我们可以这样来计算从1到34567之间所有数字中每个数字出现的次数：   &lt;br /&gt;从0到9999，这个区间的每个数字的出现次数可以使用原著中给出的递推公式，即每个数字出现4000次。&lt;/p&gt;  &lt;p&gt;从10000到19999，中间除去万位的1不算，又是一个从0000到9999的排列，这样的话，从0到34567之间&lt;/p&gt;  &lt;p&gt;的这样的区间共有3个。所以从00000到29999之间除万位外每个数字出现次数为3*4000次。然后再统计&lt;/p&gt;  &lt;p&gt;万位数字，每个区间长度为10000，所以0,1,2在万位上各出现10000次。而3则出现4567+1=4568次。&lt;/p&gt;  &lt;p&gt;之后，抛掉万位数字，对于4567，再使用上面的方法计算，一直计算到个位即可。&lt;/p&gt;  &lt;p&gt;下面是自己的实现代码：&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;void statNumber_iterative(int n) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int len, i, k, h, m; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int count[10] = {0}; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int pow10[12] = {1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000}; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char d[16]; &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; len = log10(n);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* len表示当前数字的位权 */ &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m = len; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprintf(d, "%d", n); &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; k = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* k记录当前最高位数字在d数组中的下标 */ &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; h = d[k] - '0';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* h表示当前最高位的数字 */ &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n %= pow10[len];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 去掉n的最高位 */ &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(len &amp;gt; 0) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(h == 0) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[0] += n + 1; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h = d[++k] - '0'; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --len; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n %= pow10[len]; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 10; i++) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[i] += h * len * pow10[len-1]; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; h; i++) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[i] += pow10[len]; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[h] += n + 1; &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --len; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; h = d[++k] - '0'; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n %= pow10[len]; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt;= h; i++) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[i] += 1; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 减去前导0的个数 */ &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt;= m; i++) {&amp;nbsp;&amp;nbsp; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[0] -= pow10[i]; &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 10; i++) { &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%d/n", count[i]); &lt;/li&gt;    &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;    &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;文章2&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blog.sina.com.cn/s/blog_6f883b5e0100siih.html" href="http://blog.sina.com.cn/s/blog_6f883b5e0100siih.html"&gt;http://blog.sina.com.cn/s/blog_6f883b5e0100siih.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;程序实例1：   &lt;br /&gt;思想：穷举法，就是对从1开始到n进行每个数字的拆分，对每个数字拆分一位就对应统计一次。    &lt;br /&gt;程序实例2：    &lt;br /&gt;思想：排列组合    &lt;br /&gt;原著中给出的解答思想；    &lt;br /&gt;考察由0,1,2...9组成的所有n位数。从n个0到n个9共有10^n个n位数。在这10^n个n位数中，0,1,2.....9第个数字使用次数相同，设为f(n)。f(n)满足如下递推式：    &lt;br /&gt;f(n) = 10f(n-1)+10^(n-1)&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;(n&amp;gt;1)    &lt;br /&gt;f(n) =1&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;(n=1)    &lt;br /&gt;由此可知，f(n)=n*10^(n-1)。    &lt;br /&gt;据此，可从高位向低位进行统计，再减去多余的0的个数即可。&lt;/p&gt;  &lt;p&gt;从个位开始统计   &lt;br /&gt;对于第k位有数字为c情况，需要考虑四个方面：    &lt;br /&gt;(1) 第k位是c的时候，前k-1位里面各个位增加了多少？    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c*(k-1)*10^(k-2)    &lt;br /&gt;(2) 第k位中比c小的各个数字增加各出现多少次？    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10^(k-1)    &lt;br /&gt;(3) 第k位中此数字增加了多少次？    &lt;br /&gt;1+(k-1位对应的数字)，例如：325，第三位的3数字增加出现了1+25=26    &lt;br /&gt;(4) 抠除此时出现的第k位为0的数字？    &lt;br /&gt;由于(2)里面增加了以0开始的数字，所以现在抠除，即从0数字出现次数，减去10^(k-1)    &lt;br /&gt;这些是怎么来的呢？(-----可参见《编程之美》--1的数目)    &lt;br /&gt;附上pascal程序：    &lt;br /&gt;&amp;nbsp; program count;    &lt;br /&gt;var a:array[0..9]of longint;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n,t,s,i,j,k,c,s2:longint;s1:string;    &lt;br /&gt;begin    &lt;br /&gt; readln(n);    &lt;br /&gt; t:=0;str(n,s1);//----------//t表示n的位数，为便于操作将n转化为字符串    &lt;br /&gt; while n&amp;lt;&amp;gt;0 do    &lt;br /&gt;&amp;nbsp; begin n:=n div 10;inc(t);end;//------------//求位数    &lt;br /&gt; for i:=1 to t do//------------//枚举位数    &lt;br /&gt;&amp;nbsp; begin    &lt;br /&gt;&amp;nbsp;&amp;nbsp; val(s1[t+1-i],c);//------------//提取第i位的数字c。注意枚举的i跟实际字符串中的位置有一定出入要用s1[t+1-i]，而不是s1[i]！    &lt;br /&gt;&amp;nbsp;&amp;nbsp; s:=1;for j:=1 to i-1 do s:=s*10;//------------//s=10^(i-1)    &lt;br /&gt;&amp;nbsp;&amp;nbsp; for k:=0 to 9 do    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a[k]:=a[k]+(i-1)*c*(s div 10);//------------//上述第一个方面：第k位是c的时候，前k-1位里面各个数字增加的个数    &lt;br /&gt;&amp;nbsp;&amp;nbsp; for k:=0 to c-1 do    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a[k]:=a[k]+s;//------------//上述第二个方面： 第k位中比c小的各个数字增加的个数    &lt;br /&gt;&amp;nbsp;&amp;nbsp; val(copy(s1,t-i+2,i-1),s2);//------------//这里要注意截取第i位后的数时(即前i-1位的数)，字符串copy处理要从t-i+2(因为第i为对应其中第t-i+1)，长度为i-1！！！用字符串这里比较容易错！    &lt;br /&gt;&amp;nbsp;&amp;nbsp; a[c]:=a[c]+s2+1;//------------//上述第三个方面：第k位中此数字增加的个数    &lt;br /&gt;&amp;nbsp;&amp;nbsp; a[0]:=a[0]-s;//------------//上述第四个方面：挖掉多余的0    &lt;br /&gt;&amp;nbsp; end;    &lt;br /&gt; for i:=0 to 9 do writeln(a[i]);    &lt;br /&gt;end.&lt;/p&gt;&lt;img src="http://www.cnblogs.com/facingwaller/aggbug/2377999.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/facingwaller/archive/2012/03/03/2377999.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/facingwaller/archive/2011/12/17/2287974.html</id><title type="text">拜访chris和他们的易启互动</title><summary type="text">有幸认识chris，知道他是高手了，便向他请教如何学习silverlight，他给我的建议让我很受用：1 从底层开始看起，比如 object，2 看官方帮助文档 。我也是受了他的影响，“自底向上”，把silverlight的帮助文档都看了一遍，自觉收获不少。</summary><published>2011-12-17T10:07:00Z</published><updated>2011-12-17T10:07:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2011/12/17/2287974.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2011/12/17/2287974.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;引言：去年在深蓝色右手的&lt;/span&gt;silverlight&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;游戏培训中，有幸认识&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，知道他是高手了，便向他请教如何学习&lt;/span&gt;silverlight&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，他给我的建议让我很受用：&lt;/span&gt;1 &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;从底层开始看起，比如&lt;/span&gt; object&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，&lt;/span&gt;2 &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;看官方帮助文档&lt;/span&gt; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;。我也是受了他的影响，&amp;#8220;自底向上&amp;#8221;，把&lt;/span&gt;silverlight&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;的帮助文档都看了一遍，自觉收获不少。&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;国内做&lt;/span&gt;silverlight&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;游戏比较好的应该大多在银光群里，应该都知道做&lt;/span&gt;silverlight&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;挺猛的&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;了。&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;是桂电的一个毕业生，毕业后跟&lt;/span&gt;2&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;个同学一起做了一个叫做易启互动的公司（&lt;/span&gt;17hd.cn&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;）。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-family:黑体;"&gt;环境&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;上一周就想约见&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，本来约在周末，因为&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;比较忙，推到了周二。下午我跟朋友骑车去&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;的&amp;#8220;公司&amp;#8221;，到之前，朋友就跟我说来着，他期望的公司是公司和住的地方在一起，醒来就可以工作，累了就去睡。去到&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;的&amp;#8220;公司&amp;#8221;，还真是的，办公室就是民宅，周围的几间房都租下来供同事住了。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;略胖，没带眼镜，很随和，但又很稳妥的感觉，也许因为刚毕业不久，没有以前见&lt;/span&gt;XX&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;工程师那种代沟的感觉。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;在一间略显狭窄的办公室里容纳了&lt;/span&gt;5&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;个人的工作空间，典型的小公司。进去之后，首先引用我眼球的便是办公桌上的两个连着摆的大显示器。。我只看到了&lt;/span&gt;2&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;个办公桌上有，但是。。好吧，真的很喜欢大大的显示器，然后看到的是一个新招员工上摆放的书，&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;一本是&lt;/span&gt;LINQ&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，一本书&lt;/span&gt;CLR VIA C#&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，我特意看了此书，较新，应该没怎么看，还有一本银光志，一本&amp;#8220;欧莱雅&amp;#8221;的&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XNA&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;的，立马心里打分，刷刷的上去了一些。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-family:黑体;"&gt;三块业务&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;都是偏技术的同学，同时搞&lt;/span&gt;silverlight&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;的，还同时桂林的，不免多了一些亲近。简单的介绍之后，就开始了解他们的工作。本来也是来玩，或者说参观。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;外挂&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;首先给我展示的是他的&lt;/span&gt;XX&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;外挂，通常外挂给我印象就是&lt;/span&gt;C++&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;、或者老的&lt;/span&gt;dephi VB&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;什么的写的，但他用的是&lt;/span&gt;C# WPF&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;弄的，我就问他为什么不用&lt;/span&gt;C++&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，然后得到我很感慨的回答。&amp;#8220;&lt;/span&gt;C++&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;哪有&lt;/span&gt;C#&lt;span style="font-family: 宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;写得爽啊&amp;#8221;。哎，是啊，用过一段时间&lt;/span&gt;J2EE&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，就我感觉的，少了&lt;/span&gt;Linq&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，少了匿名对象，写起来累得要死。然后他给我演示在游戏中录制脚本，自动行动，&lt;/span&gt;debug&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;查看游戏里各个对象的属性，&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;整个重建了一遍&lt;/span&gt;model&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;，我对外挂不太了解，但还是感觉能分析出来肯定不容易。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;目前第一版的功能主要是自动采集功能。下一版本将会？自动打怪？呵呵。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;外包，&lt;/span&gt;silverlight&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;和其他&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;这是一个他们做了半年多的项目，目前的&lt;/span&gt;1&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;期差不多完成了，在写文档，准备交接。这个是一个&lt;/span&gt;silverlight&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;版本的&lt;/span&gt;PPT&lt;span style="font-family: 宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;。看点是：轻松、&amp;#8220;富控件&amp;#8221;地制作，交互式的体验，在线与本地的播放。所以其功能是很复杂。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;小公司，尤其是技术密集型，为了维持生存通常会做很多外包的工作，他们也是，从大学生走过来，接了很多的外包，比如桂林工商银行两年了，都委托他们开发年终小游戏，用来供客户&amp;#8220;玩游戏，得现金奖励&amp;#8221;。再比如南宁市请他们做的一个&amp;#8220;优惠券&amp;#8221;的程序。都展示我看的时候，我惊奇的发现，他们制造游戏的音乐、可玩性，画面的美观，画面切换的动画，都挺好的。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;自主游戏&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;目前只有这一个，这个是模仿一个老赌博游戏了，目前已经在论坛宣传了，已经有好几百人通过论坛等宣传下载了。可以在这里&lt;/span&gt;http://17hd.cn/ &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;去在线体验。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;img src="http://t2.qpic.cn/mblogpic/c6fd2822b72d0b1f2fcc/460" width="374" height="601" alt="" /&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;我相信这一块，将是他们的重头戏。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-family:黑体;"&gt;游戏小全能&amp;#8212;&amp;#8212;&lt;/span&gt;chris&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;前面已经稍作介绍了，此处的全能是指：游戏构思（策划）、美工、编程。&lt;/span&gt;Chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;和他的另外两个创始人都是玩游戏从小玩到大，所以对于玩家想要什么样的游戏，有着自己的想法；而且都是编程高手，从&lt;/span&gt;3&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;人半年赶出&lt;/span&gt;silverlight&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;版本的&lt;/span&gt;PPT&lt;span style="font-family: 宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;可见一斑，当然还包括他们做出的外挂；而且&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;本身也是强力美工，进办公室门口，我就见到一个&lt;/span&gt;wow&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;牛头人的手绘，原来是&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;的手笔，包括一些其他游戏的美工，都是&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;的美工。。。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;17&lt;span style="font-family:黑体;"&gt;互动带给我的思考&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;首先&lt;/span&gt;17hd&lt;span style="font-family: 宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;是个年轻的初创公司，在外包和外挂的业务下生存了下来，并在扩招中。其次该公司是一个技术密集型公司，当然&lt;/span&gt;chris&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;是个游戏小全能。最后该公司的基本路线：以外包和外挂积累自主游戏的开发经验和资金，最终实现自主游戏的研发。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;这是一条很正常，稳定的路线。首先保证了公司能够生存下去，同时也在朝着自己的目标前进。而他们以其自身的能力，本来可以更轻松的拿到更多的薪水&amp;#8212;&amp;#8212;这是一个靠希望生活的公司。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;最后回去的时候，我想，相比这样辛苦的开发，我更看好&amp;#8220;印钞机&amp;#8221;式的商业模式，自主开发和（至少部分）运营，当然现实总是很骨感。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; "&gt;另外&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;久不写博客了，我已经不习惯之前天马行空的表达想法、感受等的方式了。&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/facingwaller/aggbug/2287974.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/facingwaller/archive/2011/12/17/2287974.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/facingwaller/archive/2011/11/20/2256547.html</id><title type="text">《浪潮之巅》——初读</title><summary type="text">我理解的浪潮规律：科技革命会以一定的时间间隔（几年或者几十年）出现，一旦出现将冲垮上一次科技革命，并开辟一个全球性的新行业。</summary><published>2011-11-20T14:30:00Z</published><updated>2011-11-20T14:30:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2011/11/20/2256547.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2011/11/20/2256547.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: 14px; line-height: 21px; font-weight: normal; "&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-style:normal; font-size:22.0000pt; font-family:'宋体'; "&gt;第1章  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:22.0000pt; font-family:'宋体'; "&gt;科技&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:22.0000pt; font-family:'宋体'; "&gt;的&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:22.0000pt; font-family:'宋体'; "&gt;&amp;#8220;浪潮&amp;#8221;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;本文&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;介绍了代表每次&amp;#8220;浪潮&amp;#8221;的公司，浪潮的起因，浪潮的崛起和衰退。并通过抽象、分析或者直接引用得出了一些科技&amp;#8220;规律&amp;#8221;，将科技的规律总结为&amp;#8220;浪潮&amp;#8221;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;此处的浪潮可以理解为革命。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;我理解的浪潮规律：&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:12.0000pt; font-family:'宋体'; "&gt;科技革命会以一定的时间间隔（几年或者几十年）出现，一旦出现将冲垮上一次科技革命，并开辟一个全球性的新行业&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-style:normal; font-size:22.0000pt; font-family:'宋体'; "&gt;第2章  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:22.0000pt; font-family:'宋体'; "&gt;IT产业的规律&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;下面&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;总结了IT产业的生态链、&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;信息产业的规律性&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;、商业模式、特征（相对传统行业）、环境。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:16.0000pt; font-family:'Arial'; "&gt;2.1  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:16.0000pt; font-family:'黑体'; "&gt;IT产业的生态链&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;2.1.1  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;摩尔定律&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;每18个月，计算机等IT产品的性能能翻一番。或者说相同性能的计算机等IT产品，每18个月价钱会降一半。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;摩尔定律主导IT行业的发展：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Wingdings'; "&gt;n&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;IT公司必须在短时间内完成下一代产品的开发&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Wingdings'; "&gt;n&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;由于有了硬件支持，更多高硬件要求的应用涌现&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Wingdings'; "&gt;n&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;各&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;公司的研发必须针对多年后的市场。&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;2.1.2  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;安迪-比尔定律&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;计算机芯片（硬件）一旦更新升级软件就会随之升级。&amp;#8220;安迪提供什么，比尔拿走什么。&amp;#8221;迫使用户升级（购买）硬件，使得硬件公司继续创新。&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;2.1.3  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;反摩尔定律&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;一个IT公司如果今天和18个月前卖掉同样多的、同样的产品，它的营业额就要降一半。反摩尔定律逼着所有的硬件设备公司必须赶上摩尔定律规定的更新速度。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:16.0000pt; font-family:'Arial'; "&gt;2.2  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:16.0000pt; font-family:'黑体'; "&gt;信息产业的规律性&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;2.2.1  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;70-20-10&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;IT产业赢着通吃，其市场占有率一般为最大者70%，老二（有时候加上老三）占20%，其他的占10%。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;备注&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;：老大可以定制规则。&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;2.2.2  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;诺维格定律&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;一家公司的市场占有率超过50%后，就必须寻找新的市场。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;延伸：通常可以利用自己的已有优势延伸到其他临近市场。&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;2.2.3  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;基因决定论&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;一个在某个领域特别成果的大公司一定已经被优化得非常适应这个市场。使得他的转型变得非常困难。&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:16.0000pt; font-family:'Arial'; "&gt;2.3  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:16.0000pt; font-family:'黑体'; "&gt;商业模式&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;IT产业的商业模式通常减少了传统商业模式的步骤。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;1）IBM&amp;nbsp;：服务费。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;2）微软、甲骨文：卖软件&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;3）Google&amp;nbsp;：广告系统&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;4）Ebay&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;/阿里巴巴&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&amp;nbsp;：电子商务系统&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;5）戴尔&amp;nbsp;：微机直销系统&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:16.0000pt; font-family:'Arial'; "&gt;2.4  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:16.0000pt; font-family:'黑体'; "&gt;特征&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;2.4.1  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;软件的复制不需要成本&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;2.4.2  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;赢者通吃&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;....其他&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-style:normal; font-size:22.0000pt; font-family:'宋体'; "&gt;第3章  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:22.0000pt; font-family:'宋体'; "&gt;IT产业的环境&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:16.0000pt; font-family:'Arial'; "&gt;3.1  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:16.0000pt; font-family:'黑体'; "&gt;风险投资&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:16.0000pt; font-family:'Arial'; "&gt;3.2  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:16.0000pt; font-family:'黑体'; "&gt;人才&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:16.0000pt; font-family:'Arial'; "&gt;3.3  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:16.0000pt; font-family:'黑体'; "&gt;投资银行&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;政治与制度&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-style:normal; font-size:22.0000pt; font-family:'宋体'; "&gt;第五章  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:22.0000pt; font-family:'宋体'; "&gt;IT创业&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;总结关于IT公司创立、运营的经验（包括相关的系统：投资、股票等）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:16.0000pt; font-family:'Arial'; "&gt;5.1  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:16.0000pt; font-family:'黑体'; "&gt;创业团队的要求&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;5.1.1  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;创始人&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;1）实干家&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;2）熬得住。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;3）多面手&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;4）小而精的团队&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;5）&amp;#8220;金刚钻&amp;#8221;。不容易被别人学会模仿的技术&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;5.1.2  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;盈利的商业模式。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;商业头脑。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;5.1.3  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;判断力、执行力&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;5.1.4  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;外部环境。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;5.1.5  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;运气。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:16.0000pt; font-family:'Arial'; "&gt;5.1.2  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:16.0000pt; font-family:'黑体'; "&gt;投资的要求&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;5.2.1  &amp;nbsp;&lt;/span&gt;&lt;span style="font-weight: bold; font-size: 14pt; font-family: 宋体; "&gt;投资的项目要求&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;1被投公司的技术必须有质变或者革命。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;2被投的公司最好处在一个别人没有尝试过的行业。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;5.2.2  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;面试&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;1&amp;nbsp;公司的业务几句话讲清。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;2&amp;nbsp;10亿美元以上的生意&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;3&amp;nbsp;项目的好处一目了然&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;4&amp;nbsp;绝活&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;5&amp;nbsp;花小钱赚大钱。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;5.2.3  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;对创始人的要求&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;1&amp;nbsp;思路开阔，脑瓜灵活，能证明自己比对手强。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;2&amp;nbsp;公司和创始人基因要好&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;3&amp;nbsp;动作快，只有这样才能打败大公司&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="mso-spacerun:'yes'; font-weight:normal; font-style:normal; font-size:14.0000pt; font-family:'Arial'; "&gt;5.2.4  &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;书面&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; "&gt;材料&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;1&amp;nbsp;公司的目的&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;2&amp;nbsp;要解决的问题和解决办法，说清楚对用户的好处。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;3&amp;nbsp;为什么现在创业，证明市场已经成熟。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;4&amp;nbsp;市场规模&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;5&amp;nbsp;对手分析&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;6&amp;nbsp;产品及开发计划&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;7&amp;nbsp;商业模式&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;8&amp;nbsp;创始人及团队介绍。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 宋体; font-size: 16px; line-height: 24px; "&gt;9&amp;nbsp;要多少钱，为什么，怎么花。&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/facingwaller/aggbug/2256547.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/facingwaller/archive/2011/11/20/2256547.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/facingwaller/archive/2011/11/12/2246465.html</id><title type="text">《计算机程序的构造和解析》第一章复习笔记</title><summary type="text">一个好的编程语言不只是指挥电脑去实现任务。更是作为一个框架，通过它来组织我们思考实现任务计算的过程。</summary><published>2011-11-12T08:07:00Z</published><updated>2011-11-12T08:07:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2011/11/12/2246465.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2011/11/12/2246465.html"/><content type="html">&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 21px; font-weight: bold; line-height: 31px; "&gt;前言&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;一个好的编程语言不只是指挥电脑去实现任务。更是作为一个框架，通过它来组织我们思考实现任务计算的过程。&lt;/div&gt;&lt;div&gt;这样，当我们描述一个语言的时候，我们应该额外去关注如何组织简单的思想去表达复杂的想法。每个强大的语言都有3个机制去实现它。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;1 基本表达式（primitive expressions）。他表达了整个语言最简单的个体，也就是最基本的组成部分。&lt;/div&gt;&lt;div&gt;2 组合的方法（means of combination）。将简单单元结合成复杂的结构的方法。&lt;/div&gt;&lt;div&gt;3 抽象的方法（abstraction），作为单元来命名和操作混合元素（此处的混合元素包括混合的数据结构和方法）。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;@在此处，用系统的观点看，1个是组份，第二个是关系，第三个是方法/动作。&lt;/div&gt;&lt;div&gt;以C语言来看，其&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;基本的表达式是由基本语法所能够写出来的基本表达式语句和基本的数据结构。&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;组合的方法是使用结构体(思想)的方法来组装最简单的数据结构。&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&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;div&gt;&lt;/div&gt;&lt;div&gt;这一章，我们将只处理简单的数字数据，以便我们集中精力在构造过程。后面的章节，我们将看到一样的规则去构造过程来操作数据。&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;1.1.1表达式&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;lisp使用前缀表达。可以接受多个参数。参数也可以是表达式。可以嵌套多层。&lt;/div&gt;&lt;div&gt;(* 25 4 12)&lt;/div&gt;&lt;div&gt;(+ (* 3 5) (- 10 6))&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;1.1.2命名和环境&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;使用define 作为 起别名/定义变量 的关键词。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;(define size 2)&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1.1.4 &amp;nbsp;复合过程&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;过程定义的一般形式：&lt;/div&gt;&lt;div&gt;(define (&amp;lt;name&amp;gt; &amp;lt;formal parameters&amp;gt;))&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;1.1.5 过程应用的代换模型&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;为了求值1个组告式(其运算符是一个复合过程的名字) ，解释器的工作方式将完全按照1.1 .3节中所描述的那样， 用与以运算符名为基本过程的组合式一样的计算过程。也就是说，&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;/div&gt;&lt;div&gt;应用序求值：先求值参数而后应用。（lisp采用的方法：避免对于表达式重复求职）&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;1.1.6条件表达式和谓词&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;写法1&lt;/div&gt;&lt;div&gt;(define (abs x)&lt;/div&gt;&lt;div&gt;&amp;nbsp; (cond ((&amp;gt; x 0) x)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((= x 0) 0)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((&amp;lt; x 0) (- x))))&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;如果无法匹配则返回未定义&lt;/div&gt;&lt;div&gt;写法2&lt;/div&gt;&lt;div&gt;(define (abs x)&lt;/div&gt;&lt;div&gt;&amp;nbsp; (cond ((&amp;lt; x 0) (- x))&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (else x)))&lt;/div&gt;&lt;div&gt;写法3&lt;/div&gt;&lt;div&gt;(define (abs x)&lt;/div&gt;&lt;div&gt;&amp;nbsp; (if (&amp;lt; x 0) (- x)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; x))&lt;/div&gt;&lt;div&gt;三个 逻辑 符合谓词&lt;/div&gt;&lt;div&gt;(and &amp;lt;e1&amp;gt; ... &amp;lt;en&amp;gt;)&amp;nbsp;&lt;/div&gt;&lt;div&gt;(or &amp;lt;e1&amp;gt; ... &amp;lt;en&amp;gt;)&lt;/div&gt;&lt;div&gt;(not &amp;lt;e1&amp;gt; ... &amp;lt;en&amp;gt;)&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;1.3 用高阶函数做抽象&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1.3.1 过程作为参数&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;将函数名作为函数的参数传递，类似C中的函数指针和C#中的委托。&lt;/div&gt;&lt;div&gt;lisp里不需要检查函数的参数列表、类型。&lt;/div&gt;&lt;div&gt;此处的sum term next 即 为过程参数&lt;/div&gt;&lt;div&gt;(define (sum term a next b)&lt;/div&gt;&lt;div&gt;(if(&amp;gt;ab)&lt;/div&gt;&lt;div&gt;o&lt;/div&gt;&lt;div&gt;(+ (term a)&lt;/div&gt;&lt;div&gt;(sum term (next a) next b))))&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;1.3.2 用lambda构造过程&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;类似c#的lambda，直接构造一个匿名过程，通常作为参数供别人使用。&lt;/div&gt;&lt;div&gt;{lambda (x) (+ x 4))&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;1.3.3 过程作为返回值&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;过程在lisp里如数据一样，可以作为参数传递。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;(defineine (average-damp f)&lt;/div&gt;&lt;div&gt;(lambda (x) (average x (f x))))&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/facingwaller/aggbug/2246465.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/facingwaller/archive/2011/11/12/2246465.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/facingwaller/archive/2011/11/01/OOD_Introduction.html</id><title type="text">OO学习之二——面向对象分析（OOD）的介绍</title><summary type="text">Object Oriented Design是一种软件设计方法，是一种工程化规范。软件系统的逻辑模型。它界定了系统完成其功能的逻辑</summary><published>2011-11-01T11:11:00Z</published><updated>2011-11-01T11:11:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2011/11/01/OOD_Introduction.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2011/11/01/OOD_Introduction.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;一、面向对象分析（OOD）的定义&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;Object Oriented Design&lt;/div&gt;&lt;div&gt;是一种软件设计方法，是一种工程化规范。&lt;/div&gt;&lt;div&gt;软件系统的逻辑模型。它界定了系统完成其功能的逻辑&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;二、OOD的其他&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;设计面向对象的软件是困难的，设计可复用的面向对象的软件更加困难。&lt;/div&gt;&lt;p&gt;（1）你必须找到适当的对象、以适当的粒度将它们转化为类的因子、定义类接口和继承层次以及建立它们之间的关键关系。&lt;/p&gt;&lt;p&gt;（2）你的设计应该针对于手边的问题，但也应足够通用化以适应将来的问题和需求。&lt;/p&gt;&lt;p&gt;（3）你也应避免重复设计，至少应使重设计减少到最小程度。有经验的面向对象设计者将告诉你虽然不是不可能在第一次就达到&lt;/p&gt;&lt;div&gt;目标，但可复用的灵活的设计是困难的。在设计完成前，他们通常尝试复用几次，并每次做一些修改。软件系统的逻辑模型。&lt;/div&gt;&lt;p&gt;它界定了系统完成其功能的逻辑。&lt;/p&gt;&lt;div&gt;1 传统方法和OO 方法&lt;/div&gt;&lt;div&gt;2 设计问题&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;Meyer［MEY90］建议了可为模块化体系结构导出的 5 种基本&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;设计原则：(1)语义模块单元；(2)很少的接口；(3)小的接口(弱耦合)；(4)显式的接口；以及(5)信息隐蔽。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;三、系统设计过程&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;1 划分分析模型&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;1 并发性和子系统分配&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;2 任务管理构件&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;3 数据管理构件&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;4 人机界面构件&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt; 5 资源管理构件&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt; 6 子系统间通信&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;四、对象设计过程&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;1 对象描述&lt;/div&gt;&lt;div&gt;2 设计算法和数据结构&amp;nbsp;&lt;/div&gt;&lt;div&gt;3 程序构件和接口&lt;/div&gt;&lt;div&gt;5 设计模式&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;OOAD 的目标是设法生成一个高质量的软件&amp;#8216;蓝图&amp;#8217;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/facingwaller/aggbug/2230756.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/facingwaller/archive/2011/11/01/OOD_Introduction.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/facingwaller/archive/2011/10/31/OOA_Introduction.html</id><title type="text">OO学习之一——面向对象分析（OOA）的介绍</title><summary type="text">OO学习之一——面向对象分析（OOA）的介绍</summary><published>2011-10-31T12:26:00Z</published><updated>2011-10-31T12:26:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2011/10/31/OOA_Introduction.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2011/10/31/OOA_Introduction.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: 21px; font-weight: bold; line-height: 31px; "&gt;一、面向对象分析&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;1【定义】&lt;/p&gt;&lt;div&gt;&lt;div&gt;Object Oriented Analyzing&amp;nbsp;&lt;/div&gt;&lt;div&gt;OOA是一种将现实世界中的问题映射到问题域的方法。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;2【目的、意义】&lt;/div&gt;&lt;div&gt;明确用户的功能需求,及满足用户所需的系统部件及其结构。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;3 【输入】&lt;/div&gt;&lt;div&gt;用户需求。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;4 【输出】&lt;/div&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&gt;&lt;div&gt;3【标准】&lt;/div&gt;&lt;div&gt;1)为完成用户要求系统应提供哪些功能?&amp;nbsp;&lt;/div&gt;&lt;div&gt;2)系统应有哪些对象构成?&amp;nbsp;&lt;/div&gt;&lt;div&gt;3)每个对象应有哪些属性和服务?&amp;nbsp;&lt;/div&gt;&lt;div&gt;4)对象间应有怎样的联系?&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;4【手段】&lt;/div&gt;&lt;div&gt;详见[1]。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;5【边界】&lt;/div&gt;&lt;div&gt;&amp;nbsp;OOA 使用面向对象的建模技术，将现实世界映射为完整的面向对象的模型。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;二、领域分析&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;1【概览】&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;面向对象系统的分析可以在不同的抽象层次上进行。&lt;/div&gt;&lt;div&gt;1在商业或企业级，OOA技术可以同信息工程方法，(第 10 章)结合，来定义模拟全部业务的类、对象、&lt;/div&gt;&lt;div&gt;关系和行为，这个层次的 OOA类似于信息策略计划；&lt;/div&gt;&lt;div&gt;2在业务范围层次，可以定义一个描述某特殊的业务范围(或某产品或系统范畴)的工作的对象模型；&lt;/div&gt;&lt;div&gt;3在应用层次，对象模型着重于特定的客户需求，因为那些需求将影响应用的实现。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;2【领域分析方法】【2】&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&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;3【目标】&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;发现或创建那些可广泛应用的类，使得它们可以被复用。&amp;nbsp;&lt;/div&gt;&lt;div&gt;4【过程】&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;1 界定将被调查的领域。分析员必须首先隔离感兴趣的业务范围、系统类型或产品范畴。接着，必须从中抽出OO 和非 OO 的&amp;#8220;项&amp;#8221;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;2 将从领域中抽取出来的项分类。&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;3 收集领域中应用的代表性样本。&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;4 分析样本中的每个应用。&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;&amp;#183;标识候选的可复用对象。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;&amp;#183;指明对象被标识为可复用的理由。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;&amp;#183;定义对对象的适应性修改(可能也是可复用的)。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;&amp;#183;估算在领域中可利用对象复用的应用的百分率。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;&amp;#183;用名字标识对象，并运用配置管理技术(第 9 章)来控制它们。&amp;nbsp;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;三、分析模型的类属成分&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;包括 &amp;nbsp;交互图、顺序图&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;四、OOA 过程&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;从理解系统的使用方式开始，如果系统是人机交互的，则考虑被人使用的方式；&lt;/div&gt;&lt;div&gt;如果系统是涉及过程控制的，则考虑被机器使用的方式；或者如果系统协调和控制应用，&lt;/div&gt;&lt;div&gt;考虑被其他程序使用的方式。定义了使用场景后，即开始软件的建模过程。&amp;nbsp;&lt;/div&gt;&lt;div&gt;1 使用实例，确定角色。&lt;/div&gt;&lt;div&gt;2 类&amp;#8212;责任&amp;#8212;协作者建模&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;制品：指定类名，类的职责（属性和方法）和协作者&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;Ambler［AMB95］对 CRC 建模的描述如下：&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;CRC 模型实际上是一组表示类的标准的索引卡片的集合。卡片被分成三个部&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;分，在卡片的顶部为类的名字，在卡片体的左边列出类的责任，在右边列出协作者。&amp;nbsp;&lt;/div&gt;&lt;div&gt;3 定义（类之间的）层次和结构&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;层次（一般-特殊结构gen－spec）&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;结构(whole－part)结构&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;4 定义主题和子系统【划分library 类库】&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;当类的某个子集相互协作以完成一组内聚的责任时，它们常被称为主题(subjects)［COA91］ 或子系统［WIR90］。&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;（类库之间协作，以实现契约，就其封装性来说，类似于类）&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;五 对象-关系模型（确定多重性关系）&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;1 利用CRC的类与协作确定是否有关系。&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;2 根据职责确定多重性&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;六 对象-行为模型（状态图）&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;1.评估所有的使用实例(20.4.1 节)以完全地理解系统中交互的序列。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;2.标识驱动交互序列的事件，理解这些事件如何和特定的对象相关联。&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;3.为每个使用实例创建事件轨迹［RAM91］。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;4.为系统建造状态&amp;#8212;变迁图。&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;/span&gt;5.复审对象&amp;#8212;行为模型以验证精确性和一致性。&amp;nbsp;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;【1】 软件工程&amp;#8212;&amp;#8212;实践者的研究方法&lt;/div&gt;&lt;div&gt;【2】Firesmith［FIR93］&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;fieldset&gt;本系列为整理实习期间的面向对象开发的学习笔记。流于浅薄，见笑之处还望斧正。&lt;/fieldset&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/facingwaller/aggbug/2230699.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/facingwaller/archive/2011/10/31/OOA_Introduction.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/facingwaller/archive/2011/10/07/2200744.html</id><title type="text">关于人生的随想</title><summary type="text">人的一生应该如何度过？这是一个永恒的话题。 保尔说过： 人最宝贵的东西是生命，生命对于每个人只有一次。人的一生应该怎样度过呢？当你回首往事的时候，不因虚度年华而悔恨，也因碌碌无为而羞愧。 乔布斯说： I have looked in the mirror every morning and asked myself: "If today were the last day of my life, would I want to do what I am about to do today?" 我在每天早晨都会对着镜子问自己:“如...</summary><published>2011-10-07T11:51:00Z</published><updated>2011-10-07T11:51:00Z</updated><author><name>撞破南墙</name><uri>http://www.cnblogs.com/facingwaller/</uri></author><link rel="alternate" href="http://www.cnblogs.com/facingwaller/archive/2011/10/07/2200744.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/facingwaller/archive/2011/10/07/2200744.html"/><content type="html">该文只有注册用户登录后才能阅读。&lt;a href='http://www.cnblogs.com/facingwaller/archive/2011/10/07/2200744.html' target='_blank'&gt;阅读全文&lt;/a&gt;。</content></entry></feed>
