X x Y のシート サイズのダイナミック レンジがあり、長期実行アルゴリズムでテストする必要があります。
たとえば、幅 40 ~ 50 インチ、長さ 40 ~ 80 インチのシート サイズを試してみます。すべての整数の組み合わせを試すには時間がかかりすぎるため、反復を 30 回に制限します。
X レンジに 10 ユニット、Y レンジに 40 ユニットしかないため、X ユニットを 3 個、Y ユニットを 10 個テストし、残りをスキップする必要があります。
これをどのようにコーディングして、最も近い比率を計算し、最終的に 30 回の反復で終わることができるでしょうか? これらの範囲は変化し続け、時には Y 範囲が X 範囲よりも小さいため、動的である必要があります。
答え: (フレイザーに触発されて)
Dim ratioX As Integer = txtSizeFormSingleXmax - txtSizeFormSingleXmin
Dim ratioY As Integer = txtSizeFormSingleYmax - txtSizeFormSingleYmin
Dim FinalRatioNumerator As Integer
Dim FinalRatioDenominator As Integer
Dim XGreaterThanY As Boolean = False
If ratioX > ratioY Then
Dim tempRatio As Integer
tempRatio = ratioY
ratioY = ratioX
ratioX = tempRatio
XGreaterThanY = True
End If
For countRatio As Integer = 1 To 30
If ratioX / ratioY <= countRatio / CInt(30 / countRatio) Then
FinalRatioNumerator = countRatio
FinalRatioDenominator = CInt(30 / countRatio)
Exit For
End If
Next