作者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