我正在使用行星齿轮组合。
价值条件如下:
s: min(20), max(40)
p: min(20), max(40)
r: s + 2*p
constraint:
(s + r)/4>0 : true
p + 2 < (s + p)*sin(180/4) : true
我想计算s,p和r的所有可能的偶数组合。
输出的例子:
s p r
20 30 80
40 20 80
.
.
任何人都可以帮助我吗? 我一直在环顾四周,但尚未找到解决方案。
答案 0 :(得分:0)
首先,您可以定义两个表示约束的私有布尔函数,这是第一个约束的示例:
Private Function constraint1(ByVal s As Integer, ByVal p As Integer, ByVal r As Integer) As Boolean
If (s+r)/4 > 0 Then
constraint1 = True
Else
constraint1 = True
End If
End Function
然后,您可以为20
和40
的{{1}}到s
的所有数字定义循环,并验证是否遵守这三个约束:if所以,然后在工作表上打印值:
r
P.S。我不确定是否已经理解了所有偶数&#34;,但如果您真的希望For s = 20 To 40
For p = 20 To 40
r = s + 2*p
If constraint1(s,p,r) And constraint2(s,p,r) Then
'it's a valid trio of (s,p,r), so you can print it on the sheet
End If
Next p
Next s
和s
只是偶数,那么您可以添加{ {1}}运算p
周期,以使其始终均匀:
Step
如上所述,For
将是For s = 20 To 40 Step 2
,然后是s
,然后是20
(每个循环基本上是2步)。