2016-01-13 75 views
-2

我正在使用行星齿轮组合。
值条件是如下:可能的数据组合与限制

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

首先,您可以定义表示约束两个私人布尔函数,这里是第一个约束的例子:

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既为sr和验证,如果三个约束得到尊重:

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 

PS:如果是这样,那么你在纸张上打印值我不确定是否已经理解了“所有偶数”,但是如果您确实想要sp仅为偶数,则可以将Step运算符添加到For循环中,以使其始终为偶数:

For s = 20 To 40 Step 2 

上面一样,s20,然后22,然后24(将2每个环路基本上工序)。