• 记录一个很平常的想法.


    记的在CSDN上看到这个贴子上的一个内容.http://topic.csdn.net/u/20090827/15/f4bed877-949b-4fc7-9224-6eaa518b3393.html

    上面还有考察是不是变态的题目,我晕,扯远了,就第二题,2  明和小华买了10斤蜂蜜,装在一个大瓶子里.要把蜂蜜平分,只有两个空瓶子,一个正好装7斤,另一个正好装3斤. 怎样才能用最简单的方法把蜂蜜分出来.(上面的最简单对于电脑有点难了,只是考虑分出来,大家这个其实也是可以考虑的)
          这种题目好像现在很流行,变体不少,比如,一个桶7,一个桶什么的,反正差不多吧.本来没什么,只是想看能不能用程序来完成,就用电脑来完成一下人脑基本想法,本身还是比较傻.最主要是我学习不久,什么东东都没有深入,就怕自己的代码方式,风格,思想有什么问题.希望有老手能指点我们这些小白.谢谢.
          首先定义一个瓶吧,上面本来是有三个瓶,大的,小的,中的,本想是一个接口,后来还是没搞那么麻烦,只是演示,就定义一个瓶的类(Bottle),有四个属性,分别是实体名(Name),容量(Capacity),占用容量(Occupy),没占用的容量(OnOccupy). 二个字段,容量(capactity),占用容量(occupy). 一个方法倒出(Poured).一个静态方法(RandomPoured).
          思路如下.把蜂蜜分出来,大至是通过不断的把瓶子里的东东倒出.这个有二种情况.
          1.如7升的满的倒给10升的空瓶.这样属于
           倒出的占用容量比倒进的瓶的没占用的容量小.那么倒出的会占用容量变成0.倒进的加上倒出的占用容量.
           那么结果就是7的空,10升的有了7升.
          2.如7升瓶满的倒给10升瓶已经有7长虹的.这样属于
            倒出的占用容量比倒进的瓶的没占用的容量大.那么倒进的会变满,而倒出的会减少倒进的瓶的原没占用容量.
            那么结果就是10升的满,7升的还有4升.

    然后电脑就是不断组合(这是我的问题.深入的话详细让他合理对比倒出可能花费时间很多), 考虑结果就是有一个瓶有5升的OK了(本身最终是要二个瓶要5 升).
                上面的静态方法就是给出二个生成的随机数(我感觉这步很不好,可惜我找不到解决方法).根据随机数分别生成一个倒出的,一个倒进的.如下代码所示.   

    Code

    以上就是瓶子的行为了.下一步定义操作者,就是一个Main(鄙视我吧).

    Code


    Code

    这里他就会乱倒进倒出了,至到结果.中间我想得到他的有效比较步骤(就是那些被//的代码)不过实验不成立.看下结果吧

          可以看到,最后5步有点价值,可供参考.上面可以当做是一个人乱想的次数.
          最后感想.电脑能做的全是靠人,我让他乱比较.他就乱比较.如果我把比较的思路给他清晰详细的.那他也会给你清晰的思考.
          PS:本人水平有限(小学生可能还不如).希望能得到各位大牛的各方面指导性建议.再次谢谢.

  • 相关阅读:
    linux一些配置
    tomcat启动后,页面无法访问
    利用jmeter实现多IP压测
    java操作数据库
    excle中表头分割单元格
    常用的最大流算法 Dinic 和 最小费用最大流SPFA写法
    [kuangbin]带你飞之'网络流'专题
    (留坑以后再看)一般图'最大匹配' 带花树 算法
    二分图'多重匹配'
    二分图'最大匹配' HK 算法
  • 原文地址:https://www.cnblogs.com/zhouxin/p/1557121.html
Copyright © 2020-2023  润新知