VBA递归函数不起作用

时间:2014-03-22 11:46:25

标签: excel function vba excel-vba

我想从这里写下这个函数:https://math.stackexchange.com/questions/721494/what-is-the-value-of-this-game

我写了以下内容,但它不起作用。

 Function value(b As Integer, r As Integer)

If r = 0 Then
  value = 0
End If

If b = 0 And r > 0 Then
  value = r
End If

 If (b < 0 Or r <= 0) Then
   value = 0
 End If

value(b, r) = (b / (b + r)) * (-1 + value(b - 1, r)) + (r / (b + r)) * (1 + value(b, r-1 ))

End Function

有人可以解释为什么它不起作用,我对VBA和编程都很陌生。

1 个答案:

答案 0 :(得分:1)

这应该有效:

Function gameValue(b As Integer, r As Integer)
    If b < 0 Or r <= 0 Then
      gameValue = 0
      Exit Function
    End If

    If b = 0 And r > 0 Then
      gameValue = r
      Exit Function
    End If

    gameValue = (b / (b + r)) * (-1 + gameValue(b - 1, r)) + (r / (b + r)) * (1 + gameValue(b, r - 1))
End Function

请注意,我已将功能名称从value更改为gameValue。原因是因为存在名为VALUE

的内置Excel工作表函数