[問題] Mathematica bug?
最近在解 Project Euler 寫了一段code
出現了一些error message
個人覺得這可能是Mathematica的bug
fexp[{n_Integer}] = 1;
fexp[exp_List] := fexp[exp] = Multinomial @@ exp;
f[i_] := fexp[Sort[FactorInteger[i]][[All, 2]]];
code蠻單純的,就不解釋了
執行
Sum[f[i], {i, 1000000}] // AbsoluteTiming
幾秒鐘後就計算完畢
但如果執行
Sum[f[i], {i, 1000001}] // AbsoluteTiming
開始出現錯誤訊息
FactorInteger::exact: Argument i in FactorInteger[i] is not an exact number.
Part::partd: "Part specification FactorInteger[i][[All,2]] is longer than
depth of object."
但事實上 單獨執行f[1000001]是正常的
神奇的是 如果使用平行運算又沒問題
ParallelSum[f[i], {i, 1000001}] // AbsoluteTiming
而且答案在Project Euler上是正確的
所以code應該是沒錯
使用Mathematica 10.2 跟 10.3 都是如此
想請教各位高手的是:
1) 這究竟是否是Bug,或其實是coding上有問題
2) 如果真是Bug,要怎麼避開這個Bug
3) 當我丟平行運算的時候,各thread並無法共用記憶體,導致DP無法真正發揮效用
應該要如何設定才能夠讓各thread可以共用呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.212.238
※ 文章網址: https://www.ptt.cc/bbs/Mathematica/M.1470497040.A.33D.html
→
08/08 19:54, , 1F
08/08 19:54, 1F
→
08/08 19:55, , 2F
08/08 19:55, 2F
→
08/08 19:58, , 3F
08/08 19:58, 3F
→
08/08 20:07, , 4F
08/08 20:07, 4F
→
08/17 23:18, , 5F
08/17 23:18, 5F
→
08/17 23:20, , 6F
08/17 23:20, 6F
→
08/17 23:20, , 7F
08/17 23:20, 7F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Mathematica 近期熱門文章
PTT數位生活區 即時熱門文章