代码之家  ›  专栏  ›  技术社区  ›  avd

谜题:找到最小的权数

  •  2
  • avd  · 技术社区  · 16 年前

    所以答案是1,3,9,27。。。

    资料来源: http://classic-puzzles.blogspot.com/search/label/Google%20Interview%20Puzzles

    解决方案: http://classic-puzzles.blogspot.com/2006/12/solution-to-shopkeeper-problem.html

    4 回复  |  直到 16 年前
        1
  •  2
  •   Grumdrig    16 年前

    证明:

    1. 现在假设N<M对于N=M的情况,我们将得到3^0=1到3^M的权重,我们已经知道它包含了S(M-1)的值。考虑到交易双方在规模上的每个权重,我们可以用同样的权重来将所有负值表达到-S(M-1)。这就足以证明我们可以将值S(M-1)+1到S(M)表示为3^M+X,其中-S(M-1)<=X<=S(M-1)。但是S(M)=S(M-1)+3^M,这很清楚,前提是S(M-1)+1>=3^M-S(M-1)。也就是说,如果3^M<=1+2*S(M-1)=1+sum(2*3^i),对于i=0到M-1。这在我看来很清楚,但我喝了几杯鸡尾酒,证明并不是你真正想要的,所以我将把最后一步作为练习留给读者。
    2. 通过归纳,QED。
        2
  •  6
  •   Aryabhatta Aryabhatta    16 年前

    a\ i1+a\ i2+…+a_ik=x+a_j1+a_j2+…+阿乌路

    i、 e x=总和e\u i*a\u i

    其中eèi是-1、0或1。

    i、 我们需要把每个数字写成系数为1,0或-1的线性组合。

    现在我们知道,我们可以把基数3中的任何数字写成系数(数字)为0,1,2的3的幂的组合。

    一个类似的事实是,我们也可以使用数字1,0和-1当我们写一个数字在基数3!

    事实上,我们需要得到所有可能的数字,这就导致你可能会使用3的幂。

    这个谜题是这样构造的,它实际上很好地解决了,你可以很容易地证明它。

    还有一个问题:

    假设我说你每个砝码有两个副本和一个普通的天平,并且必须称量从1到61的所有砝码。你会选择哪种砝码?

        3
  •  3
  •   Ananthalakshmi Sankar    11 年前

    如果你想找到20公斤的最小重量,

    初始值:20=1+1+1+1+1+1….(20次)。使用二进制你可以通过使用奇数的权值把它分解成一半。

      => 1, 2, 4, 6, 8, 10...20 (for all odd weights even no.s can be "added" by 1)
          ... 2+1, 4+1, 6+1...18+1.
    

    现在,如果同时考虑“减法”,即两个pan都被使用,那么我们可以取3的倍数。

    1     3        6        9       12        15        18        21        24        27
    
       2     4  5     7  8    10  11    13 14     16 17     19 20     22 23     25 26
    
           _________________  _________________  __________________  ___________________

    小鬼:1是上面的基本单位

    接下来我们可以把3作为加法和减法的基本单位,因为它可以推导出所有其他数字。因此,考虑集合,3-6,9,12,15,16-17-18等可以采取的中间项可以消除。

    1     3                9                    15                   21                 27
    
       2     4  5  6  7  8    10  11  12  13 14     16 17  18  19 20     22 23 24 25 26
    
                              _________________    __________________  __________________

    1     3                9                                                           27
    
       2     4  5  6  7  8   10  11  12  13 14  15  16 17  18  19 20  21 22 23 24 25 26
    
                              _________________________________________________________

    现在,从1到27的每一个数字都可以推导出来。因此,27成为我们的基本单位,下一个可以得到的缺口将涉及27的加减,得到54。

    因此我们可以得出结论,3的幂是重复的,因为3的幂之间的差总是3(n)。

    由此证明。

        4
  •  0
  •   Community Mohan Dere    15 年前

    假设你有一组权值,你可以用这些权值对n以内的任何数字进行称重。现在你需要扩展你的权重集来增加更多的数字,这意味着你需要称n+1,n+2等等。加上权重n+1,n+2,…,2n将是多余的。 序列中的下一个权重应该是((所有先前权重的总和)*2)+1)

    推荐文章