分治法實驗報告範文

分治法實驗報告範文

  一、實驗目的及要求

  利用分治方法設計大整數乘法的遞迴演算法,掌握分治法的基本思想和演算法設計的基本步驟。

  要求:設計十進位制的大整數乘法,必須利用分治的思想編寫演算法,利用c語言(或者c++語言)實現演算法,給出程式的正確執行結果。(必須完成)

  設計二進位制的大整數乘法,要求利用分治的思想編寫遞迴演算法,並可以實現多位數的乘法(利用陣列實現),給出程式的正確執行結果。(任選)

  二、演算法描述

  輸入兩個相同位數的大整數u,v

  輸出uv的值

  判斷大整數的位數i;

  w=u/10^(i/2);

  y=v/10^(i/2);

  x=u-w*10^(i/2);

  z= v-y*10^(i/2);

  然後將w,x,y,z代入公式求得最後結果

  uv=wy10^i+((w+x)(y+z)-wy-xz)10^(i/2)+xz

  三、除錯過程及執行結果

  在實驗中我遇到的`問題:

  原來以為這兩個大整數的位數不同,結果題目要求是相同位數的大整數  在寫10的多少次方時,寫的是10^(i/2),10^(i),結果不對,我就將它改成了for迴圈語句

  四、實驗總結

  在本次實驗中,我知道了分治演算法,以及分治演算法的基本思想。我還掌握了編寫大整數乘法的演算法與步驟,以及如何修改在編寫程式時遇到的問題。

最近訪問