我想模拟一个二项式分布,其中某个东西的价格只能上涨或下降,而这次的概率为50%。
我的变数:
S = 100(基本值)
u = 1,1(如果每次实验上升,该值会增加多少)
d = 1 / u(每次实验中值下降多少)
p = 0.5(概率)
n = 400(实验次数)
我没有声明这些变量,因为我想从特定的单元格中读取这些值。
我的代码(第一步):
Sub BINOM()
S = Range("L4").Value
u = Range("M4").Value
d = Range("N4").Value
p = Range("O4").Value
n = Range("P4").Value
v = Rnd()
If v > p Then
Range("B2").Value = S * u
Else
Range("B2").Value = S * d
End If
End Sub
第二个实验的结果(应写在B3单元格中)必须根据第一个实验的结果计算,依此类推但不能使用相同的随机数。
答案 0 :(得分:0)
我会尽我所能,但我只是删除了Excel而不支持Calc,因为我不能支持相同类型的语言。
Sub BINOM()
Dim intCounter, v
S = Range("L4").Value
u = Range("M4").Value
d = Range("N4").Value
p = Range("O4").Value
n = Range("P4").Value
Range("B1").Value = s
For intCounter = 2 to n
'//If this creates an error then just remove it.
'//It should keep the same random number from appearing over and over.
Randomize
'//Create new Random number in v
v = Rnd()
If v > p Then
Range("B" & intCounter).Value = Range("B" & (intCounter - 1)).Value * u
Else
Range("B" & intCounter).Value = Range("B" & (intCounter - 1)).Value * d
End If
Next intCounter
End Sub
请告诉我这是否适用于您或是否出现任何错误。更新以根据先前单元格给出的数据建立每个单元格。