I'm trying to write some vba that will print the values which satisfy the below constraints:
b * k = t * k
lambda = r * (k - 1) / (t - 1)
, where (t - 1) >= (k - 1)
& lambda
must be an integer.
Here is the algorithm:
Sub BIBDs()
Dim t, b, k, r As Integer
Dim lambda As String
For t = 2 To 50
For b = 2 To 20
For r = 1 To 20
For k = 3 To 5
If b * k = t * k & (t - 1) >= (k - 1) Then
lambda = r * (k - 1) / (t - 1)
If lambda = Int(lambda) Then
Debug.Print t, b, r, k, lambda
End If
End If
Next k
Next r
Next b
Next t
End Sub
Nothing is printed in the "Immediate" window. I'm not sure it there is something wrong with the algorithm or my print method. Specifically, I'm not sure if I'm correctly checking that lambda is an integer.
Try
If b * k = t * k And (t - 1) >= (k - 1) Then
instead of
If b * k = t * k & (t - 1) >= (k - 1) Then
The & operator in VBA is not the same like logical And operator: https://msdn.microsoft.com/en-us/library/wfx50zyk.aspx