你的正解太小了,看我的

本帖于 2005-07-07 00:52:49 时间, 由普通用户 海姑娘 编辑
回答: 海贼王卖米,最多能卖出多少公斤?望月2005-07-01 23:53:29

假设三个砝码重量为A,B,C,称三次分别可以得到E,F,G三堆米
假设第一次得到E,然后F,最后G. 称E时可以使用A,B,C,称F除ABC之外还可以使用E,称G又可以多使用F做砝码
可以证明

E = aA + bB + cC; a,b,c = -1,0或1,其中如果系数是负数表示称得时候该砝码和米放在一边.如果米是负数则米放在砝码一边.

F是A,B,C和E的线性组合,
F = gA + hB + iC; g,h,i = -2,...,2

同理G最终也表示为A,B,C的线性组合
G = jA + kB + lC; j,k,l = -4,...,4

如果我们把三堆放在一起系数可以取-7到7也就是说有15个选择.而且我们可以使A,B,C的系数在这15个选择中任意组合(自己试试就知道这是可行的)那么我们可以得到15*15*15个结果排除对称的负数和零,可以有(15*15*15-1)/2 = 1687个选择,这是理论上限.砝码重量为1,15,15*15

但是不幸的事,如果E,F,G不同符号,我们是不能直接堆在一起的,(负数公斤大米只是虚拟值,表示在天平另一侧)这里反映了加法和减法的不对称,加法可以直接堆加,减法却要再称一次.需要说明的是这是我的理解,如果哪位高人可以不再称一次解决负数问题,那我们就已经得到最优解了.

现在的问题是如何解决负数问题,一个方法是我们不做最后一次加法,只取最后一堆G,那么系数的范围为-4到4,9个可能.因此砝码重量为1,9,81,可以称得量程为(9*9*9-1)/2=364.这是可以得到的.

有意思的是如果要称得米足够多,保证F,G,H表达式中C的系数大于1.则E,F,G必然同号.因此我们又可以用我们的堆加方法了.这是系数最大都可以取7,因此量程为

(1 + 9 + 81) * 7 = 637

这是我目前所能得到的最佳结果,但理理论极限1687还有一段距离.

所有跟帖: 

有道理,我猜应能到7x(1+12+144) -正解- 给 正解 发送悄悄话 (0 bytes) () 07/05/2005 postreply 20:53:28

请您先登陆,再发跟帖!