作者blabla690 (卜拉)
看板Visual_Basic
標題[VBA ] 希望達到目標後 變數的值不要被之後的值覆蓋
時間Tue Oct 6 23:46:38 2009
Function MCm2(s, x, dt, r, v, n, Num, T, cap)
For i = 1 To Num
st = s
For j = 1 To n
st = st * Exp((r - v ^ 2 / 2) * dt + v * Sqr(dt) * Normal())
If st >= cap Then
tsum = j
Prin = Exp(-r * tsum)
Else
Prin = Exp(-r * T)
End If
Next
Sum = Sum + Prin
Next
MCm2 = Sum / Num
End Function
我的問題是 想讓變數st 一旦比某個值(cap)還大
就把目前為止跑迴圈的次數 j 指定給tsum
而且就算之後st又跌下來 然後又再次往上漲突破某值(cap)
tsum還是可以保存第一次突破cap值所花費的迴圈次數
而不被之後再次突破所花費的迴圈次數所覆蓋
不過我總覺得我這樣寫好像有錯= =
請告訴我該怎麼寫比較好 謝謝各位!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.217.163
※ 編輯: blabla690 來自: 140.123.217.163 (10/06 23:47)
1F:→ MOONRAKER:(1)一突破就exit for別做了(2)用一個陣列 K 儲存 10/07 00:06
2F:→ MOONRAKER:第一次突破存在 K(1) , 第二次存在 K(2) , 依此類推 10/07 00:07
3F:→ blabla690:謝謝!!~再問個笨問題...exit for要加在哪阿._.? 10/07 00:11
4F:→ MOONRAKER:加在if裡面,要記得他只會離開最裡面的一層for 10/07 00:22
5F:→ MOONRAKER:又,以上寫(1)(2)是要你兩種方法擇一 10/07 00:23
6F:→ blabla690:好的,我了解了:P 非常感謝你!!~~ 10/07 00:28