当前位置:编程学习 > VB >>

没什么分 但是有个高难度的问题 提出大家一起看看

是关于一个算法的问题 

已知  x+y+z+a+b+c 不能大于100000 但也不能小于90000
已知六个定量  610 605 598 630 601 616 

那么 (x*610+y*605+z*598+a*630+b*601+c*616)/(x+y+z+a+b+c) 要是最接近606的一个值

那么 x y z a b c 取何值时 上面的公式的值才是最接近606的 这牵扯到一个复杂的算法

自己想了很长时间都没想出来 所以提到这里大家共同探讨! --------------------编程问答-------------------- (x*610+y*605+z*598+a*630+b*601+c*616)/(x+y+z+a+b+c) =606
推出
4x+y-8z+24a-5b+10c=0
然后再联合x+y+z+a+b+c   不能大于100000 但也不能小于90000 算

哎呀,以前学过的数学忘光了,郁闷。 --------------------编程问答-------------------- 上面的仁兄  能说的具体点吗

关键是x y z a b c 取值之和不能大于100000也不能小于90000 
其最终计算结果值最趋近于606 --------------------编程问答-------------------- 似乎原题漏掉1个条件x,y,z,a,b,c 都是正整数

有原式(x*610+y*605+z*598+a*630+b*601+c*616)/(x+y+z+a+b+c)   =606
==> 
(1)  (4x+y-8z+24a-5b+10c)*n=0 
(2)  90000<=(x+y+z+a+b+c)*n<=100000
注: n为正整数
既然变量7个(包括放大倍数n) 约束方程只有3个
大可以设
4x-8z-24a=0
==>
y-5b+11c=0
由此可知
满足条件的最小正数解为
x=32,y=4,z=1,a=1,b=3,c=1
再有方程(2) 得
90000<=(32+4+1+1+3+1)*n<=10000
==>
90000<=41n<=10000
==>
2196<=n<=2439
==>
x=32*n,y=4*n,z=1*n,a=1*n,b=3*n,c=1*n (2196<=n<=2439)
不过这只是1组解

-----
大可以设
4x-8z-24a=0
==>
y-5b+11c=0
-----
这部分拆分的方法不同 得到的结果解也不同 但基本都可以得到满足题意的解
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,