模拟二项分布

时间:2009-11-23 18:31:20

标签: excel vba

我想模拟一个二项式分布,其中某个东西的价格只能上涨或下降,而这次的概率为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单元格中)必须根据第一个实验的结果计算,依此类推但不能使用相同的随机数。

1 个答案:

答案 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

请告诉我这是否适用于您或是否出现任何错误。更新以根据先前单元格给出的数据建立每个单元格。