zoukankan      html  css  js  c++  java
  • 用最少的砝码称出1到100克的物品

    题目描述:

    给定一个天平,用最少的砝码称出1到100克的物品,砝码重量任选

    分析:

    假设物品放在右边,砝码可以放在左边或者右边,那么有:放在左边砝码的重量 = 放在右边砝码的重量 + 物品的重量,即 放在左边砝码的重量 - 放在右边砝码的重量 = 物品的重量。假设砝码放在左边用‘+’表示,放在右边用‘-’表示。那么容易知道±aiai取‘+’、‘-’或不取,三种情况表示所有可能的情况。下面给出一种方案:1、3、9、27、81。

    容易知道4个砝码±ai最多有34 = 81中可能的值,所以4个砝码不可能称出1到100所有的值。下面说明1、3、9、27、81的正确性。

    对于30、31、32...3n,能够称出1到(3n+1 - 1)/ 2之间的任何一个值。

    证明(数学归纳法):

    n = 0 时能称出值 1、2。

    假设 n = k - 1时成立,即对于30、31、32...3k-1,能够称出1到(3k - 1)/ 2之间的任何一个值。

    当n = k时,由于30、31、32...3k-1,能够称出1到(3k - 1)/ 2之间的任何一个值,所以将每个砝码在天平中的位置对换会得到-1到-(3k - 1)/ 2,同时将3k放在左边得到(3k - 1)/ 2 + 1到3k - 1,又由于30、31、32...3k-1,能够称出1到(3k - 1)/ 2之间的任何一个值,所以将3k放在左边会得到3k + 1到3k + (3k - 1)/ 2 = (3k+1 - 1)/ 2

    当n = k时成立。

    得证。

    容易证明,除了1、3、9、27、81,1、3、9、27、60...80也都是可行的解

  • 相关阅读:
    程序运行bug查看
    c# webbrowser 的html调用js出错
    c# dll使用注意
    支持ie的时间控件 html
    sql 条件插入
    软件自动更新原理
    c# 数组不能直接=,需要clone
    打包成exe程序
    逆袭大学
    Heritage from father
  • 原文地址:https://www.cnblogs.com/daijinqiao/p/3409642.html
Copyright © 2011-2022 走看看