目录

问题 :

标记法

二进制标记:

排序标记:

探讨

总结


问题 :

有十堆沙子 沙子放入水中2分钟就会溶解 其中又一堆溶解会变色 现在有4个量杯 由于时间紧迫 只有两分钟时间测试 问应该如何解决?

标记法

二进制标记:

我们可以将四个瓶子看成4个二进制位;我们将能溶解变色设置为1不能溶解变色设置为0;

我们先将十堆沙子进行标号为1 到 10 ;然后我们将这十堆沙子的标号1到10 再按二进制进行表示;1 就是0001;2就是 0010,......10就是1010;这样我们就标记好了;

然后我们开始进行放沙子,我们将每一堆沙子取一部分放入每一个量杯,保证每一个量杯都有这十堆沙子,然后等待两分钟;等待沙子变色 。

如果是1和3号杯子变色;那么对应的二进制就是0101(5);那么就是说是第五堆沙子会溶解变色;以此类推。

排序标记:

我们可以进行如上图标记,比如说1:1就是将第一堆沙子只放入第一个量杯;8: 1 4就是将第八堆沙子放入 1号和4号杯子;由于打不出这个符号然后后面都用(C 1 4)代替,(C 1 4)的意思在这里就是从四个杯子中选择1个量杯进行放沙子;(C 2 4)就是从四个杯子中选择两个进行放沙子。

通过这样的标记我们就算是标记完了;然后判断结果;如果说是1 3号杯子溶解变色;我们通过查如上的表就可以知道为第6堆沙子;

以上即为这两种标记法。

探讨

接下来我们来探讨这两种标记法的标记上限;

二进制标记:以此题来说 我们有四个量杯;每个量杯的状态可以用0 1 表示 ;也就是有四个二进制位 所以他的最终标记上限就是2^4=16,可以标记16种;(0000也算一种,所以16种)

排序标记:对于此题我们可以从四个量杯种选择:所以他的最终上限就是 (C 0 4)+(C 1 4) +(C 2 4)+(C 3 4)+(C 4 4)=1+4 +6+4+1=16种

所以两种标记的种数是一样的

至于为什么相等,可以通过举列子;也可以通过数学二项式证明

以上及时二进制标记法和排序标记法的详解。

总结

这两种标记法其实本质上都是通过量杯来表示0 1状态  然后再通过不同的状态与不同的量杯组合来标记为不同的数;比如说如果这个量杯不止是0 1状态 假如他有-1 0 1三个状态,我们就可以将它延展至3进制或者一种更精巧的标记;

总而言之 标记就是状态和有多少个表状态物的组合。

10堆沙子那堆沙子溶解会变色问题(二进制标记和排序标记)相关推荐

  1. java怎么做沙子合并_dp之沙子合并 环形沙子合并 沙子合并加强 沙子三兄弟的故事...

    沙子合并加强 沙子合并问题 问题描述:设有N堆沙子排成一排,其编号为1,2,3,-,N(N<=2000).每堆沙子有一定的数量,可以用一个整数来描述,现在要将这N堆沙子合并成为一堆,每次只能合并 ...

  2. 算法笔记-堆相关、堆的定义、大小根堆、算法程序实现、堆的算法题、C#写法

    内容概述 1,堆结构就是用数组实现的完全二叉树结构 2,完全二叉树中如果每棵子树的最大值都在顶部就是大根堆 3,完全二叉树中如果每棵子树的最小值都在顶部就是小根堆 4,堆结构的heaplnsert与h ...

  3. 结构之美——优先队列基本结构(四)——二叉堆、d堆、左式堆

    实现优先队列结构主要是通过堆完成,主要有:二叉堆.d堆.左式堆.斜堆.二项堆.斐波那契堆.pairing 堆等. 1. 二叉堆 1.1. 定义 完全二叉树,根最小. 存储时使用层序. 1.2. 操作 ...

  4. 堆(概念,数据结构中堆与内存堆区的区别 ,堆的基本操作)

    堆的特性: 必须是完全二叉树 用数组实现 任一结点的值是其子树所有结点的最大值或最小值 最大值时,称为"最大堆",也称大根堆: 在完全二叉树中,任何一个子树的最大值都在这个子树的根 ...

  5. java 查看堆外内存占用_如何监控和诊断JVM堆内和堆外内存使用?

    上一讲我介绍了 JVM 内存区域的划分,总结了相关的一些概念,今天我将结合 JVM 参数.工具等方面,进一步分析 JVM 内存结构,包括外部资料相对较少的堆外部分. 今天我要问你的问题是,如何监控和诊 ...

  6. java堆内存_java堆内存详解

    http://www.importnew.com/14630.html java堆的特点 <深入理解java虚拟机>是什么描述java堆的 Java堆(Java Heap)是java虚拟机 ...

  7. 22-09-02 西安 JVM 类加载器、栈、堆体系、堆参数调优、GC垃圾判定、垃圾回收算法、对象的finalize机制

    这篇文章不少地方都截图了宋红康老师的课件,实在他jvm这块讲的真好.连接地址如下: 尚硅谷宋红康JVM全套教程(详解java虚拟机)_哔哩哔哩_bilibili JVM入门 1.JVM结构图 JVM是 ...

  8. Java 中的大根堆和小根堆

    小根堆和大根堆 完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的.对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应 ...

  9. 堆内存和堆外内存(又名直接内存)优缺点

    堆内存根据生命周期进行分而治之,分区之后可以提高JVM垃圾收集的效率,更好地回收为了更好地分配. 如果在堆中无法分配内存,并且堆也无法再扩展时,将会抛出OutOfMemoryError异常. http ...

最新文章

  1. VS code for python开发利器
  2. np.squeeze()函数
  3. CNN在Keras中的实践|机器学习你会遇到的“坑”
  4. AI如何在安防行业更加深入?可从超高清视频监控切入
  5. 大数据处理过程中,如何让Hadoop运行得更快一些?
  6. git报错:remote: warning: Large files detected.
  7. 结构化程序设计03 - 零基础入门学习Delphi12
  8. Xshell显示中文,但是不能输入中文
  9. cdh中使用hue使用教程_我可以在户外使用Philips Hue灯泡吗?
  10. go Windows Service
  11. Java RandomAccessFile skipBytes()方法与示例
  12. linux 使用 byzanz 生成 gif 图片程序
  13. 宁夏打造会思考更智能新型智慧城市
  14. 华为面试题--字符串重排
  15. “用户体验及可用性测试”读后感
  16. Win10任务栏100%透明怎么设置?Win10任务栏100%透明设置教程
  17. 在pysot中的SiamRPN and SiamRPN++论文结构和代码对应分析
  18. Java实现八皇后算法
  19. 土星游戏精灵王2游戏反向工程日志(1)
  20. 在python中get是什么意思_python get函数有什么作用?示例解析

热门文章

  1. 【Chinese Lexical Simplification 论文精读】
  2. 【重磅】物联网产业全景图谱报告,首开国内IoT产业二维视角全景图之先河
  3. AndroidO Treble架构分析1
  4. Android仿iphone时间轴相册
  5. 海量图片相似度算法软件,海量数据相似度匹配
  6. Mentor-dft 学习笔记 day7-drc规则环路可测试性方法
  7. [人才招聘-日企独资上市企业,岗位真实有效]
  8. 华硕笔记本F80s无法安装ubuntu的解决方法
  9. windows2012 r2 window2016 FTP服务器无法访问解决
  10. SAE J2534介绍