我想问:
10
5, 7, 8
5*x + 7*x + 8*x = 10
3
),例如:5 * x> 3
7 * x> 3
8 * x> 3
sum = 5 + 7 + 8 = 20 x = 10 (total) / 20 (sum) x = 0.5 results: 5*0.5 + 7*0.5 + 8*0.5 = 2.5 + 3.5 + 4 = 10 (total)
到目前为止一直很好,但2.5
现在低于给定的分钟。限制3
,所以如何解决这个问题!
是否有可能,如果是这样,怎么样? (最好是C#)
答案 0 :(得分:1)
让我们举个例子来看看我们将如何解决它。
我将5x 7x 8x的使用改为使用5x 7y 8z,因为已经确定这些必须改变以符合要求,因此不会全部相同。
So currently you get a total answer of 10 by having
5 times 0.5 = 2.5
7 times 0.5 = 3.5
8 times 0.5 = 4
然而,5倍0.5不大于3
因此,为了使x至少3倍x,我们必须将总数增加0.5
为3(你想要的数字) - 2.5(你拥有的数字)是0.5
所以TOTAL必须增加0.5。
5次x must = 3我们可以看到x必须= 3除以5得到0.6
now lets recalculate your sum
5 times 0.6 = 3
7 tiems 0.5 = 3.5
8 times 0.5 = 4
所有在一起= 10.5 ......啊,球。
好的,所以我们可以看到y或z必须做得更小,以确保答案仍然是10
所以让我们选择8次z = 4(因为4是3的进一步,并且会给我们最多的方式)
0.5除以8 = 0.0625
因此z必须减少0.0625才能抵消0.5倍x
的增加so z now = 0.5 - 0.0625,即0.4375
lets redo your sum with these new numbers!
5 times 0.6 = 3
7 times 0.5 = 3.5
8 times 0.4375 = 3.5
3加3.5加3.5 = 10!我们钉了它! yaaay
我希望这有帮助!如果不是很好,我还是喜欢这样做:D
总而言之,我们不得不增加x以使5x至少为3,但x的增加意味着答案大于10,因此y或z必须减少总数增加来抵消这个,我们做这个增加除以其他数字之一,计算我们需要从z或y减去多少才能使它再次完美10
答案 1 :(得分:0)
你的要求是矛盾的。不可能在5 * x> 5的同时保证5 * x + 7 * x + 8 * x = 10。 3如果x是单值。如果可以使用 5 * x + 7 * y + 8 * z = 10, 那么,如果你有3 * value_count< 10但我认为这是另一项任务
答案 2 :(得分:0)
似乎你必须首先解决一个任务,然后再编码。 让我们看看你给出的条件 所有你的数字都被大写到X必须大于3,这就是为什么它们的最大数量应该是6,因为7 * 3已经是21,大于20。 其次,根据您的号码计数,我们必须计算数字的最小值。如果它是6,我们有20至6 = 3的最小值剩余值,如果它是5那么我们有20%5 = 4。 只有在这两个条件下我们才能计算出“X”。