我想从这里写下这个函数: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和编程都很陌生。
答案 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