Dim bza As Double = 9.97
Dim bzb As Double = 34.34
Dim bzc As Double = 17.8
Dim r1 As DataRow = DataTables("表A").Find("物料='A'")
Dim r2 As DataRow = DataTables("表A").Find("物料 = 'B'")
Dim r3 As DataRow = DataTables("表A").Find("物料 ='c'")
Dim x As Double
Dim y As Double
Dim c As Double
Dim maxa As Double = 100
Dim maxb As Double = 100
Dim maxc As Double = 100
For x = 0 To maxa
For y = 0 To maxb
For c = 0 To maxc
If (r1("蛋白") * x + r2("蛋白") * y + r3("蛋白") * c) <= bza * 100 + 1 _
AndAlso(r1("蛋白") * x + r2("蛋白") * y + r3("蛋白") * c) >= bza * 100 - 1 _
AndAlso (r1("含油") * x + r2("含油") * y + r3("含油") * c) <= bzb * 100 + 1 _
AndAlso (r1("含油") * x + r2("含油") * y + r3("含油") * c) >= bzb * 100 - 1 _
AndAlso (r1("水分") * x + r2("水分") * y + r3("水分") * c) <= bzc * 100 + 1 _
AndAlso (r1("水分") * x + r2("水分") * y + r3("水分") * c) >= bzc * 100 - 1 _
AndAlso x + y + c = 100 Then
Dim dr As DataRow = DataTables("表B").AddNew
dr("第一列") = x / 100
dr("第二列") = y / 100
dr("第三列") = c / 100
End If
Next
Next
Next
感觉没问题,但实际有一组解 就是计算不到,不知道错在哪里了
三种物料A,B,C混合,混合前三种物料的水分,含油,蛋白是已知的,计划混合后的 含油,水分,蛋白 也是已知的。也就是理论值。
求为实现混合后 的 指标,A,B,C三种物料的配比是多少
使用部门给出的公式 是 配比*现有指标的和=混合后的指标
比如A,B,C的配比分别是X,Y,C
计算公式就是
X*A("含油")+Y*B("含油")+C*c("含油")= 混合后的含油
。。。。
配比理论上 x+y+c=1,考虑到无解,我在把结果 上下浮动了0.01
三种物料A,B,C混合成一种物料,混合前三种物料的水分,含油,蛋白是已知的,要求混合后的 含油,水分,蛋白 达到理论值。
求为实现混合后 的 指标,A,B,C三种物料的配比是多少
计算公式:配比*现有指标的和=混合后的指标
比如A,B,C的配比分别是X,Y,C
计算公式就是
X*A("含油")+Y*B("含油")+C*c("含油")= 混合后的含油
。。。。
配比理论上 x+y+c=1,考虑到无解,我在把结果 上下浮动了0.01
中间怎么计算的不懂。不过由解反推判断条件,就已经不符合了呀。连if的第一个条件都不符合
If (r1("蛋白") * x + r2("蛋白") * y + r3("蛋白") * c) <= bza * 100 + 1
代入数值,变成下面算式
if 34.6*95+43*3+9.1*2 <= 9.97 *100+1
计算后结果为
if 3434.2 <= 998
说明这个解不符合条件呀

此主题相关图片如下:1.png
