2014-01-22 165 views
0

我想計算例如257^150,但matlab顯示直到257^126。我想找到指數「x」來計算模數。例如,給出(257^x mod 1009)= 369的力量。謝謝。在matlab中計算大數的功率

+0

做你計算在'257^126'是錯誤的爲好。在'257^126'你的浮點精度高於'10^287',你需要少於一個。 – Daniel

回答

0

想想問題以及如何解決問題。你知道帽子mod(x,42)23。什麼是7*x的剩餘部分?它mod(7*42,23)

投入代碼:

a=257; 
m=1009; 
s=369; 
r=1; 
x=0; 
while(not(r==s)) 
    x=x+1; 
    r=mod(r*a,m); 
end 
+0

非常感謝您的幫助。我想問一些更多。爲什麼pow函數「^」不能計算大指數的數字? –

+0

雙精度浮點格式只允許一定範圍內的數字。這是matlab中的默認格式。此外,還有精確度損失。在文檔和維基百科有關浮點基礎知識的文章中查看'eps'' realmax'和'realmin'。有關更多詳情,請訪問:http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – Daniel

+0

@ 2-Chri:如果您確實需要使用符號或變量精度數學的數字:'sym(257)^ 126'或'vpa(257)^ 126'。 – horchler