mathematica計算真的好慢好慢,是電腦太挫嗎還是程式太糙?求高手解答

2021-07-14 23:08:49 字數 800 閱讀 5663

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如何繪製引數方程命令和格式是什麼

在mathematica裡面輸入parameterplot按f1就可bai以獲得du它的幫助文件,裡面有詳zhi細介紹dao 或者?parameterplot然後執行內 即按shift和enter鍵 也可以。容 parameterplot是引數作圖,詳細介紹見幫助文件,畫上面的圓圈的話,可以參看其第...

Mathematica上次這個組合輸出不知是哪裡有點問題

因為數量多時不容易隨機到符合要求的列表就不斷重複計算。修改一下。f s k1 k2 module label begin lis select randomsample deleteduplicates deletecases flatten outer list,s,s 1 1 2 1 rever...

mathematica有沒有把複數寫成指數形式的函式

直接的是沒有,bai但是,算絕du 對值的有,算輻角的也有zhi,於dao是,這個形式變換函專數也等於是有的 eform z complex abs 屬z exp i arg z eform 1 i sqrt 2 e i pi 4 先利用模abs和輻角arg將複數轉換成三角形式,再利用trigtoe...