现在遇到这么个情况 商品的种类不一定,可能只有一两个,也可能有七八个,各自的单价是固定的,几个商品合起来的总价也是固定的。 现在要改变几个商品合起来的总价为另一个确定的值,但是单价无法调整,只能通过调整各种商品的数量来实现,但是有限定条件是调整的数量不能超过四位小数。不知道有什么方法能计算是否有解,有解的话各商品调整的数量是多少,无解则直接输出无解。 举个例子,商品A单价157.86,数量2,总价315.72;商品B单价239.89,数量1,总价239.89;两个商品合计总价555.61 现在我需要把商品A的总价调成315.71,商品B的总价调成193.19,但不要求把A和B各自调成315.71和193.19,只需要两个商品调整后的合计总价是315.71+193.19=508.9就可以。 那么经过我的测试,A的数量调增0.0001,同时B的数量调增-0.1948(负数即调减)使得A总价是315.74,B总价是193.16,【调整后的金额四舍五入】,两个商品调整后的合计总价是315.74+193.16=508.9,与需要的508.9一致,那么A的数量调整的解就是0.0001,B的数量调整的解就是-0.1948,我的目的就是输入商品A的单价、数量、数量B的单价、数量,,和我最终想要达到的合计总价,求出这两个调整数量的解。如果有商品CDEF等那同样需要输入,输出的同样要增加CDEF等调整数量的解。解是可以为0的,即不调整这个商品,但是这些解不能超过4位小数。 我传上的附件里,A列是商品名,B列是单价,C列是原本的数量,D列是原本的商品总价(B*C),E列就是要各位大佬帮忙写公式计算的调整的数量,可以是负数也可以是0,但就是不能超过4位小数,不能是0.01234这种值。F列就是调整后商品的数量(C+E),G是调整后各商品的总价(B*F,保留两位小数,四舍五入),H列是手动输入的需要调整到的总金额。G2不一定需要等于H2,但G列的总金额要等于H列的总金额。 第二个子表是一个我实际遇到的数据实例,供各位大佬进行测试。 因为不知道是无解还是我没找到,所以我没法给出无解的示例。
|