﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Brian Warehouse-随笔分类-概念和技术</title><link>http://www.cppblog.com/Icho/category/14625.html</link><description>Some birds aren`t meant to be caged, their feathers are just too bright... ...</description><language>zh-cn</language><lastBuildDate>Wed, 18 Aug 2010 20:55:06 GMT</lastBuildDate><pubDate>Wed, 18 Aug 2010 20:55:06 GMT</pubDate><ttl>60</ttl><item><title>最形象的快排</title><link>http://www.cppblog.com/Icho/archive/2010/08/19/123901.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Wed, 18 Aug 2010 16:23:00 GMT</pubDate><guid>http://www.cppblog.com/Icho/archive/2010/08/19/123901.html</guid><wfw:comment>http://www.cppblog.com/Icho/comments/123901.html</wfw:comment><comments>http://www.cppblog.com/Icho/archive/2010/08/19/123901.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Icho/comments/commentRss/123901.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Icho/services/trackbacks/123901.html</trackback:ping><description><![CDATA[<img style="WIDTH: 449px; HEIGHT: 345px" border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/icho/quicksort.gif" width=449 height=345>
<img src ="http://www.cppblog.com/Icho/aggbug/123901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Icho/" target="_blank">Brian</a> 2010-08-19 00:23 <a href="http://www.cppblog.com/Icho/archive/2010/08/19/123901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NP 类问题</title><link>http://www.cppblog.com/Icho/archive/2010/08/17/123711.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Tue, 17 Aug 2010 05:59:00 GMT</pubDate><guid>http://www.cppblog.com/Icho/archive/2010/08/17/123711.html</guid><wfw:comment>http://www.cppblog.com/Icho/comments/123711.html</wfw:comment><comments>http://www.cppblog.com/Icho/archive/2010/08/17/123711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Icho/comments/commentRss/123711.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Icho/services/trackbacks/123711.html</trackback:ping><description><![CDATA[<p><strong>1. 计算复杂性&nbsp; O<br></strong>　　这是描述一种算法需要多少 Running time 的度量。（也有空间复杂性，但因为它们能相互转换，所以通常我们就说时间复杂性。对于大小为 n 的输入，我们用含 n 的简化式子来表达。（所谓简化式子，就是忽略系数、常数，仅保留最&#8220;大&#8221;的那部分）。 <br>　　比如找出 n 个数中最大的一个，很简单，就是把第一个数和第二个比，其中大的那个再和第三个比，依次类推，总共要比 n-1 次，我们记作 O(n) (对于 n 可以是很大很大的情况下，-1可以忽略不计了）。 <br>　　再比如从小到大排好的 n 个数，从中找出等于 x 的那个。一种方法是按着顺序从头到尾一个个找，最好情况是第一个就是 x，最坏情况是比较了 n 次直最后一个，因此最坏情况下的计算复杂度也是 O(n)。还有一种方法：先取中间那个数和 x 比较，如偏大则在前一半数中找，如偏小则在后一半数中找，每次都是取中间的那个数进行比较，则最坏情况是 lg(n)/lg2。忽略系数lg2，算法复杂度是O(lgn)。 <br>　　 <br><strong>2. 计算复杂性的排序</strong> <br>　　根据含 n 的表达式随 n 增大的增长速度，可以将它们排序：1 &lt; lg(n) &lt; n &lt; nlg(n) &lt; n^2 &lt; ... &lt; n^k (k是常数）&lt; ... &lt; 2^n （不用死记，想象它们的函数曲线，一看便明）。最后这个 2 的n 次方就是级数增长了，读过棋盘上放麦粒故事的人都知道这个增长速度有多快。而之前的那些都是 n 的多项式时间的复杂度。为什么我们在这里忽略所有的系数、常数，例如 2*n^3+9*n^2 可以被简化为 n^3？老师上课也没有说原因，所以我也不知道。但是如果对对 (2*n^3+9*n^2)/(n^3) 求导，结果是0，仔细想想，我也没有想出所以然来。 <br>　　 <br><strong>3. P 问题</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对一个问题，凡是能找到计算复杂度可以表示为多项式的确定算法，这个问题就属于 P (polynomial) 问题。 <br>　　 <br><strong>4. NP 问题</strong><br>　　NP 中的 N 是指非确定的(non-deterministic）算法，这是这样一种算法：</p>
<p>（1）猜一个答案。（2）验证这个答案是否正确。（3）只要存在某次验证，答案是正确的，则该算法得解。 <br>　　NP (non-deterministic polynomial)问题就是指，用这样的非确定的算法，验证步骤（2）有多项式时间的计算复杂度的算法。 <br>　　 <br><strong>5. 问题的归约<br></strong>　　想象一下函数的映射是怎么一回事吧。这个概念需要弄懂。 <br>　　大致就是这样：找从问题1的所有输入到问题2的所有输入的对应，如果相应的，也能有问题2的所有输出到问题1的所有输出的对应，则若我们找到了问题2的解法，就能通过输入、输出的对应关系，得到问题1的解法。由此我们说问题1可归约到问题2。</p>
<p>　　再给一个我找到的高端解释：</p>
<p style="TEXT-INDENT: 2em">问题归约是人求解问题常用的策略，其把复杂的问题变换为若干需要同时处理的较为简单的子问题后再加以分别求解。只有当这些子问题全部解决时，问题才算解决，问题的解答就由子问题的解答联合构成。问题归约可以递归地进行，直到把问题变换为本原问题的集合。所谓本原问题就是不可或不需再通过变换化简的"原子"问题，本原问题的解可以直接得到或通过一个"黑箱"操作得到。&nbsp;<br>　　 <br><strong>6. NP-Hard</strong><br>　　有这样一种问题，所有 NP 问题都可以归约到这种问题，我们称之为 NP-hard 问题。 <br>　　 <br><strong>7. NP完全问题 (NP-Complete)<br></strong>　　如果一个问题既是 NP 问题又是 NP-Hard 问题，则它是 NP-Complete 问题。可满足性问题就是一个 NP 完全问题，此外著名的给图染色、哈密尔顿环、背包、货郎问题都是 NP 完全问题。</p>
<img src ="http://www.cppblog.com/Icho/aggbug/123711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Icho/" target="_blank">Brian</a> 2010-08-17 13:59 <a href="http://www.cppblog.com/Icho/archive/2010/08/17/123711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse 打开时出现 JVM terminated. Exit code=-1 的解决办法</title><link>http://www.cppblog.com/Icho/archive/2010/08/17/123710.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Tue, 17 Aug 2010 05:56:00 GMT</pubDate><guid>http://www.cppblog.com/Icho/archive/2010/08/17/123710.html</guid><wfw:comment>http://www.cppblog.com/Icho/comments/123710.html</wfw:comment><comments>http://www.cppblog.com/Icho/archive/2010/08/17/123710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Icho/comments/commentRss/123710.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Icho/services/trackbacks/123710.html</trackback:ping><description><![CDATA[<div>
<p><span>解压缩版本的Eclipse打开时遇到此类问题：</span></p>
<p><span><img title="Eclipse 打开时出现 JVM terminated. Exit co<wbr>de=-1 的解决办法 - Icho - Brian Warehouse" border=0 alt="Eclipse 打开时出现 JVM terminated. Exit co<wbr>de=-1 的解决办法 - Icho - Brian Warehouse" src="http://img.blog.163.com/photo/IqUAjeIi89aNt3FH6gDVvQ==/5093571178556997635.jpg" small="0"></span></p>
<p>解决方法：</p>
<p>打开安装目录下的eclipse.config（或eclipse.ini）配置文件，大致的内容如下，</p>
<p>-startup</p>
<p>plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar</p>
<p>--launcher.library</p>
<p>plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519</p>
<p>-product</p>
<p>org.eclipse.epp.package.jee.product</p>
<p>--launcher.XXMaxPermSize</p>
<p>256M</p>
<p>-showsplash</p>
<p>org.eclipse.platform</p>
<p>--launcher.XXMaxPermSize</p>
<p>256m</p>
<p>-vmargs</p>
<p>-Dosgi.requiredJavaVersion=1.5</p>
<p>-Xms40m</p>
<p><strong><font color=#0000ff>-Xmx512m</font></strong></p>
<p><font color=#ff0000><strong>其中的&#8220;Xmx512m&#8221; 改成&#8220;Xmx256m&#8221;</strong></font></p>
</div>
<img src ="http://www.cppblog.com/Icho/aggbug/123710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Icho/" target="_blank">Brian</a> 2010-08-17 13:56 <a href="http://www.cppblog.com/Icho/archive/2010/08/17/123710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国内外著名或者非著名的OJ</title><link>http://www.cppblog.com/Icho/archive/2010/08/17/123705.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Tue, 17 Aug 2010 05:51:00 GMT</pubDate><guid>http://www.cppblog.com/Icho/archive/2010/08/17/123705.html</guid><wfw:comment>http://www.cppblog.com/Icho/comments/123705.html</wfw:comment><comments>http://www.cppblog.com/Icho/archive/2010/08/17/123705.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Icho/comments/commentRss/123705.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Icho/services/trackbacks/123705.html</trackback:ping><description><![CDATA[北大： <a href="http://acm.pku.edu.cn/JudgeOnline/"><font color=#282e0e>http://acm.pku.edu.cn/JudgeOnline/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;浙大： <a href="http://acm.zju.edu.cn/"><font color=#282e0e>http://acm.zju.edu.cn/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;同济： <a href="http://acm.tongji.edu.cn/"><font color=#282e0e>http://acm.tongji.edu.cn/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;吉林大学： <a href="http://acm.jlu.edu.cn/joj/"><font color=#282e0e>http://acm.jlu.edu.cn/joj/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;杭州电子科技： <a href="http://acm.hdu.edu.cn/"><font color=#282e0e>http://acm.hdu.edu.cn/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;天津大学： <a href="http://acm.tju.edu.cn/toj/"><font color=#282e0e>http://acm.tju.edu.cn/toj/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;哈工大： <a href="http://acm.hit.edu.cn/"><font color=#282e0e>http://acm.hit.edu.cn/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;武汉大学： <a href="http://acm.whu.edu.cn/"><font color=#282e0e>http://acm.whu.edu.cn/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;哈尔滨工程： <a href="http://acm.hrbeu.edu.cn/"><font color=#282e0e>http://acm.hrbeu.edu.cn/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;福建师范： <a href="http://acm.fjnu.edu.cn/"><font color=#282e0e>http://acm.fjnu.edu.cn/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;中科大： <a href="http://acm.ustc.edu.cn/"><font color=#282e0e>http://acm.ustc.edu.cn</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;厦门大学： <a href="http://acm.xmu.edu.cn/JudgeOnline/"><font color=#282e0e>http://acm.xmu.edu.cn/JudgeOnline/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;合肥工大： <a href="http://acm.tdzl.net/JudgeOnline/"><font color=#282e0e>http://acm.tdzl.net/JudgeOnline/</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;北大内部： <a href="http://ai.pku.cn/JudgeOnline"><font color=#282e0e>http://ai.pku.cn/JudgeOnline</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;华中科技： <a href="http://acm.hust.edu.cn/JudgeOnline"><font color=#282e0e>http://acm.hust.edu.cn/JudgeOnline</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;宁波理工： <a href="http://acm.nit.net.cn/"><font color=#282e0e>http://acm.nit.net.cn</font></a><br>&nbsp;&nbsp; 浙江工业： <a href="http://acm.zjut.edu.cn/"><font color=#282e0e>http://acm.zjut.edu.cn</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;南开大学： <a href="http://nkacm.cn/"><font color=#282e0e>http://nkacm.cn</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;VIJOS: <a href="http://www.vijos.cn/"><font color=#282e0e>http://www.vijos.cn</font></a><br>&nbsp;&nbsp;&nbsp;&nbsp;MyOJ: <a href="http://tzoi.dynserv.com/"><font color=#282e0e>http://tzoi.dynserv.com</font></a><br>&nbsp;&nbsp;&nbsp; Ural State University: <a href="http://acm.timus.ru/"><font color=#282e0e>http://acm.timus.ru</font></a><br>&nbsp;&nbsp;&nbsp; Saratov State University : <a href="http://acm.sgu.ru/"><font color=#282e0e>http://acm.sgu.ru</font></a><br>&nbsp;&nbsp;&nbsp; 美国官方USACO: <a href="http://ace.delos.com/usacogate/"><font color=#282e0e>http://ace.delos.com/usacogate/</font></a><br>&nbsp;&nbsp;&nbsp; 安徽师范大学 :<font color=#ff0000> 不好意思, 过于强大, 仅供内部使用</font>&nbsp;<br>
<p>&nbsp;&nbsp; 这是本人个人整理的，如想复制，请随便。</p>
<img src ="http://www.cppblog.com/Icho/aggbug/123705.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Icho/" target="_blank">Brian</a> 2010-08-17 13:51 <a href="http://www.cppblog.com/Icho/archive/2010/08/17/123705.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>牛顿法求平方根【转】</title><link>http://www.cppblog.com/Icho/archive/2010/08/17/123703.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Tue, 17 Aug 2010 05:49:00 GMT</pubDate><guid>http://www.cppblog.com/Icho/archive/2010/08/17/123703.html</guid><wfw:comment>http://www.cppblog.com/Icho/comments/123703.html</wfw:comment><comments>http://www.cppblog.com/Icho/archive/2010/08/17/123703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Icho/comments/commentRss/123703.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Icho/services/trackbacks/123703.html</trackback:ping><description><![CDATA[<p>求n的平方根，先假设一猜测值<co><wbr>DE&gt;<font face=NSimsun>X<sub>0</sub> = 1</font></co><wbr>DE&gt;，然后根据以下公式求出<co><wbr>DE&gt;<font face=NSimsun>X<sub>1</sub></font></co><wbr>DE&gt;，再将<co><wbr>DE&gt;<font face=NSimsun>X<sub>1</sub></font></co><wbr>DE&gt;代入公式右边，继续求出<co><wbr>DE&gt;<font face=NSimsun>X<sub>2</sub></font></co><wbr>DE&gt;&#8230;通过有效次迭代后即可求出n的平方根，<co><wbr>DE&gt;<font face=NSimsun>X<sub>k+1</sub></font></co><wbr>DE&gt;</p>
<p><font face=NSimsun><img title="牛顿法求平方根【转】 - Icho - Brian Warehouse" border=0 alt=x_(k+1)=1/2(x_k+n/(x_k)) src="http://pic.yupoo.com/punkid/5286852a16f4/chsf3aqv.jpg" width=111 height=37></font></p>
<p>先让我们来验证下这个巧妙的方法准确性，来算下2的平方根 (Computed by Mathomatic)</p>
<pre>1-&gt; x_new = ( x_old + y/x_old )/2
y
(x_old + -----)
x_old
#1: x_new = ---------------
2
1-&gt; calculate x_old 1
Enter y: 2
Enter initial x_old: 1
<strong> x_new = 1.5</strong>
1-&gt; calculate x_old 2
Enter y: 2
Enter initial x_old: 1
<strong> x_new = 1.4166666666667</strong>
1-&gt; calculate x_old 3
Enter y: 2
Enter initial x_old: 1
<strong> x_new = 1.4142156862745</strong>
1-&gt; calculate x_old 10
Enter y: 2
Enter initial x_old: 1
Convergence reached after 6 iterations.
<strong> x_new = 1.4142135623731</strong>
...</pre>
<p>可见，随着迭代次数的增加，运算值会愈发接近真实值。很神奇的算法，可是怎么来的呢? 查了下<a title="Wikipedia: Newton's method" href="http://en.wikipedia.org/wiki/Newton%27s_method"><font color=#282e0e>wikipedia</font></a>和<a title="Wolfram: Newton's Iteration" href="http://mathworld.wolfram.com/NewtonsIteration.html"><font color=#282e0e>wolfram</font></a>，原来算法的名字叫Newton&#8217;s Iteration (牛顿迭代法)。</p>
<p>下面是数理介绍，不喜欢数学的言下之意也就是绝大部分人可以略过了。</p>
<h3>简单推导</h3>
<p>假设<co><wbr>DE&gt;<font face=NSimsun>f(x)</font></co><wbr>DE&gt;是关于<co><wbr>DE&gt;<font face=NSimsun>X</font></co><wbr>DE&gt;的函数:</p>
<p><img title="牛顿法求平方根【转】 - Icho - Brian Warehouse" border=0 alt="An illustration of on<wbr>e iteration of Newton's method" src="http://pic.yupoo.com/punkid/1773352a25d8/9lcgjzet.jpg" width=300 height=247></p>
<p>求出<co><wbr>DE&gt;<font face=NSimsun>f(x)</font></co><wbr>DE&gt;的一阶导，即斜率:</p>
<p><img title="牛顿法求平方根【转】 - Icho - Brian Warehouse" border=0 alt="f'(x_{n}) = frac{ mathrm{rise} }{ mathrm{run} } = frac{ mathrm{Delta y} }{ mathrm{Delta x} } = frac{ f( x_{n} ) - 0 }{ x_{n} - x_{n+1} } = frac{0 - f(x_{n})}{(x_{n+1} - x_{n})},!" src="http://pic.yupoo.com/punkid/1847652a26a3/zcbz5a4b.jpg" width=409 height=48></p>
<p>简化等式得到:</p>
<p><img border=0 alt="x_(n+1)=x_n-(f(x_n))/(f^'(x_n)) " src="http://pic.yupoo.com/punkid/0290752a2462/t4yu9w45.jpg" width=108 height=37></p>
<p>然后利用得到的最终式进行迭代运算直至求到一个比较精确的满意值，为什么可以用迭代法呢?理由是中值定理(Intermediate Value Theorem):</p>
<blockquote>
<p>如果<co><wbr>DE&gt;<font face=NSimsun>f</font></co><wbr>DE&gt;函数在闭区间<co><wbr>DE&gt;<font face=NSimsun>[a,b]</font></co><wbr>DE&gt;内连续，必存在一点<co><wbr>DE&gt;<font face=NSimsun>x</font></co><wbr>DE&gt;使得<co><wbr>DE&gt;<font face=NSimsun>f(x) = c</font></co><wbr>DE&gt;，<co><wbr>DE&gt;<font face=NSimsun>c</font></co><wbr>DE&gt;是函数<co><wbr>DE&gt;<font face=NSimsun>f</font></co><wbr>DE&gt;在闭区间<co><wbr>DE&gt;<font face=NSimsun>[a,b]</font></co><wbr>DE&gt;内的一点</p>
</blockquote>
<p>我们先猜测一<co><wbr>DE&gt;<font face=NSimsun>X</font></co><wbr>DE&gt;初始值，例如1，当然地球人都知道除了1本身之外任何数的平方根都不会是1。然后代入初始值，通过迭代运算不断推进，逐步靠近精确值，直到得到我们主观认为比较满意的值为止。例如要求768的平方根，因为<co><wbr>DE&gt;<font face=NSimsun>25<sup>2</sup> = 625</font></co><wbr>DE&gt;，而<co><wbr>DE&gt;<font face=NSimsun>30<sup>2</sup> = 900</font></co><wbr>DE&gt;，我们可先代入一猜测值26，然后迭代运算，得到较精确值:27.7128。</p>
<p>回到我们最开始的那个&#8221;莫名其妙&#8221;的公式，我们要求的是<co><wbr>DE&gt;<font face=NSimsun>N</font></co><wbr>DE&gt;的平方根，令<co><wbr>DE&gt;<font face=NSimsun>x<sup>2</sup> = n</font></co><wbr>DE&gt;，假设一关于<co><wbr>DE&gt;<font face=NSimsun>X</font></co><wbr>DE&gt;的函数<co><wbr>DE&gt;<font face=NSimsun>f(x)</font></co><wbr>DE&gt;为:</p>
<p><co><wbr>DE&gt;<font face=NSimsun>f(X) = X<sup>2</sup> - n</font></co><wbr>DE&gt;</p>
<p>求<co><wbr>DE&gt;<font face=NSimsun>f(X)</font></co><wbr>DE&gt;的一阶导为:</p>
<p><co><wbr>DE&gt;<font face=NSimsun>f'(X) = 2X</font></co><wbr>DE&gt;</p>
<p>代入前面求到的最终式中:</p>
<p><co><wbr>DE&gt;<font face=NSimsun>X<sub>k+1</sub> = X<sub>k</sub> - (X<sub>k</sub><sup>2</sup> - n)/2X<sub>k</sub></font></co><wbr>DE&gt;</p>
<p>化简即得到我们最初提到的那个求平方根的神奇公式了:</p>
<p><img title="牛顿法求平方根【转】 - Icho - Brian Warehouse" border=0 alt=x_(k+1)=1/2(x_k+n/(x_k)) src="http://pic.yupoo.com/punkid/5286852a16f4/chsf3aqv.jpg" width=111 height=37></p>
<h3>用泰勒公式推导</h3>
<p>我之前介绍过在<em>The Art and Science of C</em>一书中有用到<a title="The Art and Science of C  阅读笔记 II" href="http://blog.punkid.cn/2007/07/19/the-art-and-science-of-c-note-two/"><font color=#282e0e>泰勒公式求平方根的算法</font></a>，其实牛顿迭代法也可以看作是泰勒公式(Taylor Series)的简化，先回顾下泰勒公式:</p>
<p><img border=0 alt="f(x_0+epsilon)=f(x_0)+f^'(x_0)epsilon+1/2f^('')(x_0)epsilon^2+.... " src="http://pic.yupoo.com/punkid/1697952a1ea6/0k7gu191.jpg" width=269 height=23></p>
<p>仅保留等式右边前两项:</p>
<p><img border=0 alt="f(x_0+epsilon) approx f(x_0)+f^'(x_0)epsilon." src="http://pic.yupoo.com/punkid/5762152a1f4e/y8nndhdy.jpg" width=160 height=16></p>
<p>令<co><wbr>DE&gt;<font face=NSimsun>f(X<sub>0</sub>+&#949;) = 0</font></co><wbr>DE&gt;，得到:</p>
<p><img border=0 alt="epsilon_0=-(f(x_0))/(f^'(x_0))" src="http://pic.yupoo.com/punkid/3476952a2106/n7gfjyvw.jpg" width=82 height=37></p>
<p>再令<co><wbr>DE&gt;<font face=NSimsun>X<sub>1</sub> = X<sub>0</sub> + &#949;<sub>0</sub></font></co><wbr>DE&gt;，得到<co><wbr>DE&gt;<font face=NSimsun>&#949;<sub>1</sub></font></co><wbr>DE&gt;&#8230;依此类推可知:</p>
<p><img border=0 alt="epsilon_n=-(f(x_n))/(f^'(x_n))" src="http://pic.yupoo.com/punkid/3903852a21fb/kwl644nf.jpg" width=82 height=37></p>
<p>转化为:</p>
<p><img border=0 alt="x_(n+1)=x_n-(f(x_n))/(f^'(x_n)) " src="http://pic.yupoo.com/punkid/0290752a2462/t4yu9w45.jpg" width=108 height=37></p>
<img src ="http://www.cppblog.com/Icho/aggbug/123703.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Icho/" target="_blank">Brian</a> 2010-08-17 13:49 <a href="http://www.cppblog.com/Icho/archive/2010/08/17/123703.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dempster-Shafer Theory</title><link>http://www.cppblog.com/Icho/archive/2010/08/17/123700.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Tue, 17 Aug 2010 05:38:00 GMT</pubDate><guid>http://www.cppblog.com/Icho/archive/2010/08/17/123700.html</guid><wfw:comment>http://www.cppblog.com/Icho/comments/123700.html</wfw:comment><comments>http://www.cppblog.com/Icho/archive/2010/08/17/123700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Icho/comments/commentRss/123700.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Icho/services/trackbacks/123700.html</trackback:ping><description><![CDATA[DS理论也被认为是信度函数理论，是主观概率（subjective probability）的贝叶斯理论的扩展。信度函数允许我们基于信度使用一个问题的概率来推导一个相关问题的概率。这些信度值可能有也可能没有概率的数学性质；他们与概率的差异大小将取决于这两个问题有多相关。
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; History..</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DS理论基于两个思想：1. the idea of obtaining degrees of belief for on<wbr>e question from subjective probabilities for a related question 获取一个问题对于另一个问题的信度值。2. Dempster's rule for combining such degrees of belief when they are based on independent items of evidence 当这些信度值都基于独立的证据时，把他们结合起来的D规则。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为了描述第一个思想，考虑我知道我的朋友Betty是否可靠的主观概率。我认为她可靠的概率是0.9，不可靠的概率是0.1。假设她告诉我一个树枝掉在了我的车上。当她可靠的时候，这个论断一定是真的，当她不可靠的时候这个论断却不一定是假的。所以当仅有她的证词的时候justifies0.9的信度有一个树枝掉在了我的车上了，但仅仅有0的信度值保证没有树枝掉在我的车上。这个零并不意味着我可以肯定没有树枝掉在我的车上，而概率零可以保证；它仅仅表示了Betty的证词没有给我任何理由相信没有树枝掉在我的车上。这个0.9和0在一起构成了一个信度函数（belief function）。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 假设，从另外一个方面，Betty和Sally互相矛盾——Betty说一个树枝掉在了我的车上，Sally说没有树枝掉在了我的车上。在这种情况下，他们不能都对，因为不可能两个人都是可靠的——只有可能有一个人是可靠的或者都不可靠。三种情况，只有Betty可靠，只有Sally可靠，或都不可靠，概率分别为0.09，0.09，0.01，给定不是都可靠的情况下，后验概率是9/19,9/19,1/19。（ 0.09/(0.09+0.09+0.01) ）所以我们有9/19的信度对于有一个树枝掉在了我的车上（Betty可靠）以及9/19的信度对于没有树枝掉在了我的车上（Sally可靠）。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 总的来说，我们要从另一个问题（证人是否可靠）的概率获取一个问题的信度（是否有树枝掉在了我的车上？）。Dempster规则首先有一个假设我们知道概率的问题都是独立的对于我们主观的概率判断，但这个独立性仅仅是一个priori；当在证据的不同部分发现冲突的时候就不在需要了（？）。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在一个具体问题中实现DS理论大致包括两个相关的问题。首先，我们必须把问题的不确定性分成证据的先验独立的部分。然后我们再运行Dempster规则。这两个问题和他们的解决方法都是非常相关的。把不确定性s分成独立的部分产生包含了证据（其中有不同但相关的问题）不同部分的结构，使用这个结构可以让计算可行。例如，假设Betty和Sally相互独立的作证他们听到了有贼到我的房间。他们可能都会把一只狗的噪声误以为成是一个贼，由于这种公共的不确定性，我不能直接使用D规则来把他们的信度结合起来。但是如果我知道到狗存在的可能性，然后我能确定证据的三个独立部分：我另一个支持或反对狗存在的证据，我对Betty可靠的证据，以及我对Sally可靠的证据。我能通过D规则把证据的三个部分结合起来，在包含了这些不同问题的结构被考虑的时候，计算就可以施行了。</p>
<img src ="http://www.cppblog.com/Icho/aggbug/123700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Icho/" target="_blank">Brian</a> 2010-08-17 13:38 <a href="http://www.cppblog.com/Icho/archive/2010/08/17/123700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>