是关于一个算法的问题 已知  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的 这牵扯到一个复杂的算法自己想了很长时间都没想出来 所以提到这里大家共同探讨!

解决方案 »

  1.   

    (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 算哎呀,以前学过的数学忘光了,郁闷。
      

  2.   

    上面的仁兄  能说的具体点吗关键是x y z a b c 取值之和不能大于100000也不能小于90000 
    其最终计算结果值最趋近于606
      

  3.   

    似乎原题漏掉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
    -----
    这部分拆分的方法不同 得到的结果解也不同 但基本都可以得到满足题意的解