zoukankan      html  css  js  c++  java
  • 智力题2

    有一道样的题:三个杯子,一个13L,装了10L水;一个7L,装了2L水;一个6L,装了3L水,问怎样倒,使得3个杯子各有5L水。没有其它任何工具,杯子上没有刻度,不能倒出1/2,1/3之类的。请问怎么倒? 如果不能做到,请证明。

     

    解答:不能做到。

    [引理]从A杯子倒水到B杯子,只能把A里面的水全部倒完,或者把B杯子倒满。

    [证明]假设能做到,最后一步是这样的:有一个杯子A装了5升,另外一个杯子B有一些水,还剩一个杯子C有一些水,假设从B倒水到C,使得B和C都有5升水。另一方面,从B倒水到C只有两种方式,把B倒空,或者把C倒满。

    第一种方式,把B倒空,显然做不到每个杯子5升水,因为B剩下0升,且这是最后一步。

    第二种方式,把C倒满,因为3个杯子的容量是13升,7升,和6升,把C倒满,(C是3个杯子之一),C不能是5升。所以这种方式也做不到每个杯子5升水。

    因此,不能做到。

  • 相关阅读:
    定时器与休眠
    进程的创建
    详述进程创建和程序执行
    线程
    会话,进程组,作业控制
    进程优先级和调度
    进程资源
    日志信息log
    能力
    浅谈产品模型(Profile)在程序设计中的作用
  • 原文地址:https://www.cnblogs.com/Torstan/p/2575879.html
Copyright © 2011-2022 走看看