我正在尝试编写一个递归函数,以便计算动态数组中值组合的乘积之和。现在我一直试图让它在更简单的情况下工作,但我真的不太明白递归函数应该遵循的结构。在这种情况下,应该有 28 个二因子乘积之和,结果为 1.4
Sub SuPC()
Dim k As Long
Dim s As Long
Dim i As Long
Dim j As Long
k = 8
s = 2
HSum i, j, s, k
End Sub
Function HSum(i As Long, j As Long, s, k) As Double
Dim P As Variant
Dim z() As Double
Dim Tot As Double
ReDim z(0 To (k * s) - 1)
P = Array(1 / 2, 1 / 3, 1 / 4, 1 / 5, 1 / 6, 1 / 7, 1 / 8, 1 / 9)
If i <= k Then
HSum i + 1, j, s, k
If j <= s Then
HSum i, j + 1, s, k
If z(i) = 0 Then z(i) = 1
z(i) = P(j) * z(i)
End If
Tot = z(i) + Tot
End If
Range("J11") = Tot
End Function
如果 s 和 k 是低固定值,我可以使用 For 循环,但重点是它们是可变的。