1樓:青衣瓦屋
我猜這是projecteular上面的第64題吧?我的**是:
select[continuedfraction /@ sqrt /@ range@10000,
length@# > 1 && oddq@length@last@# &] // length // timing
用時25秒。
既然用mathematica,儘量多用現成的內建函式吧,它所採用的演算法比我們自己寫的優化的好多了。當然如果你是想要自己寫的話那就要多去找找關於此類演算法優化的書和高手了。
另,mathematica裡面儘量少用for和if這類結構化語句,耗時極大。
2樓:草紅樣
mathematica不是這樣用的,
tr@mod[length /@ continuedfraction[sqrt@ range@1*^4][[all, -1]], 2] // absolutetiming
還可以更快,下面這段程式耗時<0.1s
compile[{},
module[,
do[r = limit = floor@sqrt@n;
if[limit^2 == n, continue];
= ;while[k != 1 || period == 0,k = quotient[n - r^2, k];
r = quotient[limit + r, k]*k - r;
period++
];if[oddq[period], cnt++];
, ];
cnt]]
Mathematica和matlab有什麼區別,那個更簡單阿
mathematica更簡單些,兩者區別如下 一 主體不同 1 mathematica 是一款科學計算軟體,很好地結合了數值和符號計算引擎 圖形系統 程式語言 文字系統 和與其他應用程式的高階連線。2 matlab 是美國mathworks公司出品的商業數學軟體,用於演算法開發 資料視覺化 資料分析...
mathematica如何定義函式式未知的函式
楊好巨蟹座 自定義函式 mathematica 已有許多內建函式.在這一節,我們討論如何把使用者的函式新增到 mathematica 中.例如,將自變數的平方作為函式 新增到 mathematica 中.定義這個函式的命令是 等式左端的下劃線 被稱為 空白 是非常重要的 它的含義將在後面討論.現在只...
如何用Mathematica畫三維散點圖,等高線圖等
方法 1首先按下圖準備好三維點座標資料檔案,x,y,z 格式。在mathematica中時候用import命令將資料匯入。data import c users desktop gridconverted.txt data 2使用listplot3d命令繪製三維散點圖,選擇彩虹色。listplot3...