前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数学|泊松分酒问题蕴藏的数学知识

数学|泊松分酒问题蕴藏的数学知识

作者头像
算法与编程之美
发布2020-04-21 14:37:50
9430
发布2020-04-21 14:37:50
举报

问题描述

相信很多人都听说过泊松分酒的问题,泊松在一次闲暇时,提出过一个有趣的问题,后称为:“泊松分酒”。在我国古代也提出过类似问题,遗憾的是没有进行彻底探索,其中流传较多是:“韩信走马分油”问题。大致描述如下:

有3个容器,容量分别为12升,8升,5升。其中12升中装满酒,另外两个空着。要求你只用3个容器操作,最后使得某个容器中正好有6升酒。

解决方案

为了分出固定容积的酒,其实就是靠另外两个空瓶子来做一个酒的进出转移。但是由于三个容器都没有刻度,所以必须要让起始装满酒的瓶子每次倒出或者倒入的酒刚好是其他两个瓶子中某个瓶子的容积。对于这个问题数学家们很早就提出了解决方案,其中一套方案如下:

将12升的瓶子称为大瓶子,8升的瓶子称为中瓶子,5升的瓶子称为小瓶子,具体的操作规则和步骤如下:

大瓶子只能倒入中瓶子

中瓶子只能倒入小瓶子

小瓶子只有在装满的情况下才可以倒入大瓶子

小瓶子只要为空,就必须马上从中瓶子倒入小瓶子。

12升

8升

5升

12

0

0

初始状态

4

8

0

第一次操作

4

3

5

第二次操作

9

3

0

第三次操作

9

0

3

第四次操作

1

8

3

第五次操作

1

6

5

第六次操作

6

6

0

第七次操作

表1 泊松分酒操作步骤表

原理分析

很多初次接触这个问题的人可能不太懂为什么通过上述的规则之后就可以得到6升酒,这个问题还得分析这个规则中的数学知识。设大瓶子容量为X升,中瓶子容量为Y升,小瓶子容量为Z升,需要分出来的酒为W升,结合规则,可以发现两点:小瓶子每次倒入大瓶子的酒为Z升,大瓶子倒入中瓶子的酒为Y升,设中瓶子一共装满了a次,小瓶子一共装满了b次,那么从大瓶子中分出的酒的容量一共为a*Y-b*Z,只需要满足a*Y-b*Z=W这个有方程正整数a和b满足即可。将实际数据带入,即8*a-5*b=6,解得a=2,b=2。

问题推广

泊松分酒的问题其实是一个二元一次方程是否有正整数解的问题,如果存在一组正整数使得a*Y-b*Z=1这个方程成立,理论上是可以分出任意容积的酒。

END

主 编 | 王文星

责 编 | 饶龙江

where2go 团队

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档