回覆列表
  • 1 # 使用者9791361106732

    最近嘗試打了個高精度運算的程式。用了一下兩種演算法。

    牛頓迭代法:

    Xn+1=Xn(2-cXn) (0<X0<1/c) 。

    容易得到:Xn的極限為1/c。

    這個我是用來解決浮點數的乘法。

    關於迭代次數還有精度的確定上還沒想好怎麼弄,所以還沒完全打好。

    還有我同學跟我說的一種利用二分的做法(我用來做了帶餘除法)

    比如說求100/3.

    首先取100,3*100>100.

    取50,3*50>100

    取25,3*25<100 => ans+=25,此時ans=25.

    取12,3*(12+25)>100

    取6,3*(25+6)<100 =>ans+=6,此時ans=31.

    取3,3*(31+3)>100;

    取1,3*(31+1)<100;=>ans+=1;

    取1,3*(32+1)<100;=>ans+=1;

    此時3*(33+1)>100,退出迴圈。

    鑑於我的程式還沒有完全打好。也沒有測過哪一種演算法效率更高。你看著辦吧。

    第一次如此認真的回答問題。

  • 2 # 使用者2458114238191884

    你是說轉換成二進位制吧,除以2得到一個數,如果不是商不是1,就記錄下餘數,然後用商再除以2,再記錄下餘數,直到商等於1,然後將記錄到的餘數(包括最後那個商),倒著讀,就是那個十進位制的二進位制數

  • 中秋節和大豐收的關聯?
  • 在007系列電影第十四部,講了個什麼故事?