<p><span style="font-size: small;">今天我开始看了第四卷的组合问题的开始,组合问题一般是分为五种:</span></p>
<p><span style="font-size: small;">1,存在问题:符合问题的模式一共有多少种。</span></p>
<p><span style="font-size: small;">2,构造问题:如果存在排列X,你怎么快速的找到。</span></p>
<p><span style="font-size: small;">3,枚举问题:多少种不同的排列X。</span></p>
<p><span style="font-size: small;">4,生成问题:如何系统的生成所有的X1,X2,...,Xn。</span></p>
<p><span style="font-size: small;">5,优化问题:给定目标函数f,何种排列可以使f(X)的值最大或者最小。</span></p>
<p></p>
<p><span style="font-size: small;">组合问题涉及很大的数据量,举个例子:</span></p>
<p><span style="font-size: small;">对象为2n个数,{1,1,2,2,...,n,n},我们想要把这些数排成一排,使数字k的两次出现恰好相隔k个数。</span></p>
<p><span style="font-size: small;">这个问题成为郎福德对问题,读者可以自己试试有多少对,我列出来:</span></p>
<p><span style="font-size: small;">当n=3 有1。</span></p>
<p><span style="font-size: small;">当n=7有26。</span></p>
<p><span style="font-size: small;">当n=11有17792.</span></p>
<p><span style="font-size: small;">当n=15有39809640.</span></p>
<p><span style="font-size: small;">当n=19有256814891280.</span></p>
<p><span style="font-size: small;">当n=23有3799455942515488.</span></p>
<p></p>
<p><span style="font-size: small;">其中,当最后一种情况,如果有一台每秒处理一百万条指令的计算机,需要连续不停的运行1500年。</span></p>
<p><span style="font-size: small;">另外当n=100时,虽然计算机发展的速度很猛,也可能永远不被人知道了。这就是问什么我们得学习组合算法,用来解决大规模问题!</span></p>
<p><span style="font-size: small;">1,存在问题:符合问题的模式一共有多少种。</span></p>
<p><span style="font-size: small;">2,构造问题:如果存在排列X,你怎么快速的找到。</span></p>
<p><span style="font-size: small;">3,枚举问题:多少种不同的排列X。</span></p>
<p><span style="font-size: small;">4,生成问题:如何系统的生成所有的X1,X2,...,Xn。</span></p>
<p><span style="font-size: small;">5,优化问题:给定目标函数f,何种排列可以使f(X)的值最大或者最小。</span></p>
<p></p>
<p><span style="font-size: small;">组合问题涉及很大的数据量,举个例子:</span></p>
<p><span style="font-size: small;">对象为2n个数,{1,1,2,2,...,n,n},我们想要把这些数排成一排,使数字k的两次出现恰好相隔k个数。</span></p>
<p><span style="font-size: small;">这个问题成为郎福德对问题,读者可以自己试试有多少对,我列出来:</span></p>
<p><span style="font-size: small;">当n=3 有1。</span></p>
<p><span style="font-size: small;">当n=7有26。</span></p>
<p><span style="font-size: small;">当n=11有17792.</span></p>
<p><span style="font-size: small;">当n=15有39809640.</span></p>
<p><span style="font-size: small;">当n=19有256814891280.</span></p>
<p><span style="font-size: small;">当n=23有3799455942515488.</span></p>
<p></p>
<p><span style="font-size: small;">其中,当最后一种情况,如果有一台每秒处理一百万条指令的计算机,需要连续不停的运行1500年。</span></p>
<p><span style="font-size: small;">另外当n=100时,虽然计算机发展的速度很猛,也可能永远不被人知道了。这就是问什么我们得学习组合算法,用来解决大规模问题!</span></p>