[問題] 宣告的順序不同 答案也不同

看板Mathematica作者 (forcing to A cup)時間13年前 (2011/11/24 13:46), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
a[t_] = 5*t + 2; (*令函數a*) b[t_] = a[t] + aa; (*令函數b*) aaans = Array[ans, {6, 1}]; (*令空矩陣aaans*) For[i = 1, i <= 6, i++, aa = i; (*迴圈*) aaans[[i, 1]] = b[1]] (*將答案跑出來放入空矩陣*) aaans (*印出來*) 執行後可得 {{8}, {9}, {10}, {11}, {12}, {13}} ===================================== aaans = Array[ans, {6, 1}]; For[i = 1, i <= 6, i++, b[t_] = a[t] + aa; a[t_] = 5*t + 2; aa = i; aaans[[i, 1]] = b[1]] aaans 執行後卻變成 {{8}, {8}, {9}, {10}, {11}, {12}} 我猜想大概跟系統內建參數初始直有關係 可是...現在實在頭昏腦脹 無法解釋上面兩個結果 ============================================================================== 怎麼辦 實際上我的程式有兩百行 =__=~ 尤其有很多復合函數 有些變數的宣告在For外面 有些在裡面 寫For迴圈的習慣要如何培養 才能避免上面的狀況出錯 尤其是需要連結到For外面的變數與函數時 >__<~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.252.177
文章代碼(AID): #1EpTejVw (Mathematica)
文章代碼(AID): #1EpTejVw (Mathematica)