Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:求解问题

1楼
aidimeng 发表于:2025/4/9 14:30:00
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
感觉没问题,但实际有一组解 就是计算不到,不知道错在哪里了
图片点击可在新窗口打开查看
2楼
有点蓝 发表于:2025/4/9 14:38:00
计算规则是什么?
3楼
aidimeng 发表于:2025/4/9 14:48:00
图片点击可在新窗口打开查看
4楼
有点蓝 发表于:2025/4/9 15:04:00
没看懂,就1楼表格数据解释一下
5楼
aidimeng 发表于:2025/4/9 15:20:00
三种物料A,B,C混合,混合前三种物料的水分,含油,蛋白是已知的,计划混合后的 含油,水分,蛋白 也是已知的。也就是理论值。

求为实现混合后 的 指标,A,B,C三种物料的配比是多少

使用部门给出的公式 是  配比*现有指标的和=混合后的指标
比如A,B,C的配比分别是X,Y,C 
计算公式就是 
X*A("含油")+Y*B("含油")+C*c("含油")= 混合后的含油
。。。。

配比理论上 x+y+c=1,考虑到无解,我在把结果 上下浮动了0.01
6楼
有点蓝 发表于:2025/4/9 15:36:00
还是没看懂。如果有解,答案是什么?
7楼
aidimeng 发表于:2025/4/9 15:43:00
三种物料A,B,C混合成一种物料,混合前三种物料的水分,含油,蛋白是已知的,要求混合后的 含油,水分,蛋白 达到理论值。
 
求为实现混合后 的 指标,A,B,C三种物料的配比是多少
计算公式:配比*现有指标的和=混合后的指标
比如A,B,C的配比分别是X,Y,C 
计算公式就是 
X*A("含油")+Y*B("含油")+C*c("含油")= 混合后的含油
。。。。

配比理论上 x+y+c=1,考虑到无解,我在把结果 上下浮动了0.01
8楼
有点蓝 发表于:2025/4/9 16:10:00
中间怎么计算的不懂。不过由解反推判断条件,就已经不符合了呀。连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
图片点击可在新窗口打开查看

9楼
aidimeng 发表于:2025/4/10 9:39:00
辛苦了,是我弄错了 现在可以了
共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .05859 s, 2 queries.