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也都是可行的解

  • 相关阅读:
    rabbitMQ和对应的erlang版本匹配
    Jfinal文件上传基础路径问题,windows下会以项目根路径为基础路径
    Linux常用命令-vim
    nginx配置https
    mysql创建表时,设置timestamp DEFAULT NULL报错1067
    Linux命令yum和rpm
    git reset命令使用
    jfinal定时任务插件jfinal-quartz
    quartz配置参数org.quartz.jobStore.misfireThreshold含义解释
    多层级树形结构数据库存储方式
  • 原文地址:https://www.cnblogs.com/daijinqiao/p/3409642.html
Copyright © 2011-2022 走看看