2

以下の制約を満たす値を出力する vba を書き込もうとしています。

b * k = t * k 

lambda = r * (k - 1) / (t - 1)(t - 1) >= (k - 1)&lambdaは整数でなければなりません。

アルゴリズムは次のとおりです。

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

「即時」ウィンドウには何も出力されません。アルゴリズムまたは印刷方法に問題があるかどうかはわかりません。具体的には、ラムダが整数であることを正しくチェックしているかどうかわかりません。

4

1 に答える 1

2

試す

If b * k = t * k And (t - 1) >= (k - 1) Then

それ以外の

If b * k = t * k & (t - 1) >= (k - 1) Then

VBAの& 演算子は、論理 And 演算子と同じではありません: https://msdn.microsoft.com/en-us/library/wfx50zyk.aspx

于 2015-09-21T15:05:47.117 に答える