为了比较美观,用html进行编辑。
<html> <head> <style> .grid{ background-color: brown; } .tree{ background-color: green; } </style> </head> <ol> <li>一道求导数题<br> 给定形如f(x)=k×sin(x)<sup>m</sup>×cos(x)<sup>n</sup>的一个函数,求f(x)的十次导数.这里面k,m,n是三个浮点数. <br> 输入:三个数字k,m,n. <br> 输出:f(x)的十次导数. <br>说清思路. <hr> 答案:f(x)的导数包含两项:k×m×sin(x)<sup>(m-1)</sup>×cos(x)<sup>(n+1)</sup>+k×n×sin(x)<sup>(m+1)</sup>×cos(x)<sup>(n-1)</sup>.<br>表示为(k*m,m-1,n+1)+(k*n,m+1,n-1).<br> 一个(k,m,n)会裂变为(k*m,m-1,n+1)和(k*n,m+1,n-1).<br> 用三元组来表示一个节点,堆式存储,展开成1024项,先按照sin和cos的幂次排序,合并同类项. </li> <li>一个6×5的棋盘,左上角为(1,1),右下角为(6,5).一个蚂蚁要从左上角走到右下角,每次只能向下或者向右走一步.不幸的是,有大树挡着,蚂蚁不得经过有大树的格子. <br>要求将最后答案用若干个组合数表示.<br><br>(1)在(4,3)和(2,4)处各有一棵大树.问蚂蚁有多少种走法? <table id="one" style="width: 200px; height: 200px"></table> <br>(2)在(2,3)和(4,4)处各有一棵大树,问蚂蚁有多少种走法? <table id="two" style="width: 200px; height: 200px"></table> <br><hr> <br>答案:蚂蚁向下走5步,向右走4步,一共走9步.这9步里面有4步是向右的,所以C<sup>4</sup><sub>9</sub>种情况.<br> 但是因为有大树,所以就要减去不合法的走法.<br> <p> (1)经过(4,3)的路径的个数=从(1,1)到(4,3)的个数×从(4,3)到(6,5)的个数.<br> 经过(2,4)的路径个数=从(1,1)到(2,4)的路径个数×从(2,4)到(6,5)的路径个数.<br> ans=C<sup>4</sup><sub>9</sub>-C<sup>2</sup><sub>5</sub>×C<sup>2</sup><sub>4</sub>-C<sup>1</sup><sub>4</sub>×C<sup>1</sup><sub>5</sub><br> </p><p>(2)因为(2,3)和(4,4)可能同时经过,所以用容斥原理<br> ans=总的-经过(2,3)的个数-经过(4,4)的个数+经过这两者的个数.<br> ans=C<sup>4</sup><sub>9</sub>-C<sup>1</sup><sub>3</sub>×C<sup>4</sup><sub>6</sub>-C<sup>3</sup><sub>6</sub>×C<sup>1</sup><sub>3</sub>+C<sup>1</sup><sub>3</sub>×C<sup>1</sup><sub>3</sub>×C<sup>1</sup><sub>3</sub>. </p></li> </ol> <script> function draw(ta,w,h,a){ var s=''; var k=0; for(var i=0;i<w;i++){ s+='<tr>'; for(var j=0;j<h;j++){ if(i+1==a[k]&&j+1==a[k+1]){s+='<td class="tree"> ';k+=2;} else s+='<td class="grid"> '; s+='</td>'; } s+='</tr>'; } ta.innerHTML=s; } draw(one,6,5,new Array(2,4,4,3)); draw(two,6,5,new Array(2,3,4,4)); </script> </html>