簡體   English   中英

為什么Matlab Mod與Wolfram Alpha不同

[英]Why is Matlab Mod different from Wolfram Alpha

688 ^ 79 mod 3337 = 1570。

當我在wolfram alpha嘗試這個時,我得到了: 在此輸入圖像描述

但是當我在Matlab中輸入同樣的東西時,我得到364作為答案。 我做錯了。

在此輸入圖像描述

任何關於此的亮點將不勝感激。

原因是Matlab默認使用double浮點算法。 大到688 ^ 79的數字不能准確地表示為double (可以精確表示為double的最大整數大約為2 ^ 53 )。

要獲得正確的結果,您可以使用符號變量 ,以確保您不會失去准確性:

>> x = sym('688^79');
>> y = sym('3337');
>> mod(x, y)
ans =
1570

我的計算器給我的答案與Wolfram相同,它也計算了688 ^ 79的值,所以我傾向於認為Wolfram是對的。 你可能已經超出了Matlab的容量這么大的數量,這就是它沒有發出正確答案的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM