泊松分酒 java课件_泊松分酒原理 - 我类个擦的个人空间 - OSCHINA - 中文开源技术交流社区...

有一个12品脱(pint)的酒瓶,里面装满葡萄酒,另有8品脱和5品脱的瓶子各一个。问如何从中分出6品脱的酒出来?

传说泊松年轻时成功解决了该问题,勾起了他对数学的兴趣而投身数学研究,因此该问题被称为泊松分酒问题。另外这个问题又被称为分油问题啦,分水问题啦等等。

小学的时候在一本《十万个问什么——数学卷》中看到过这个问题,那本书直接给出了一个解答过程,又没说原理,看得我糊里糊涂。

一 .  解答过程

为了方便说明,将容量为12品脱,8品脱,5品脱瓶子分别称为大瓶子,中瓶子,小瓶子。按照下面2种规则中的如何一种可以解决这个问题:

第一套规则:

1. 大瓶子只能倒入中瓶子

2. 中瓶子只能倒入小瓶子

3. 小瓶子只能倒入大瓶子

4. 小瓶子只有在已经装满的情况下才能倒入大瓶子

5. 若小瓶子被倒空,则无论中瓶子是否满,应马上从中瓶子倒入小瓶子

之所以要规定倒酒的顺序是为了防止状态重复。而根据这5条规则,大瓶子每次倒入中瓶子的酒总是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

6

0

完成

第二套规则:

1. 大瓶子只能倒入小瓶子

2. 小瓶子只能倒入中瓶子

3. 中瓶子只能倒入大瓶子

4. 中瓶子只有在已经装满的情况下才能倒入大瓶子

5. 若中瓶子被倒空,则无论小瓶子是否满,应马上将小瓶子倒入中瓶子

其实只是将第一套规则中的“中”和“小”两个字对换了一下。

根据这个规则确定的倒酒的顺序如下(注意,我将8品脱和5品脱的位置交换了一下):

12品脱瓶子

5品脱瓶子

8品脱瓶子

12

0

0

7

5(倒进)

0

7

0

5

2

5(倒进)

5

2

2

8(倒出)

10

2

0

10

2

2

5

5(倒进)

2

5

0

7

0

5(倒进)

7

0

4

8(倒出)

8

4

0

8

0

4

3

5(倒进)

4

3

1

8(倒出)

11

1

0

11

0

1

6

5(倒进)

1

搞到6品脱了

6

0

6

完成

好了试试用这两种规则之一解决如下分酒问题吧:

大瓶子容量10,中瓶子容量7,小瓶子容量3,要分出来5

二.  原理

设大,中,小三个瓶子容量分别是C1,C2,C3,需要倒出的容量是R

则实际上要是我们能将容量为R的酒倒到中瓶子和小瓶子中就可以啦(有点废话)

设大瓶子倒满中瓶子X次,从小瓶子中倒入大瓶子Y次。

那么显然由大瓶子累次倒入中瓶子和小瓶子总共C2*X的酒。而由小瓶子倒入大瓶子一共有C3*Y的酒。

那么最终,小瓶子和中瓶子剩余的酒显然就是 C2*X - C3*Y

因此,泊松分酒问题实质上转化为下面的不定方程是否有正整数解的问题:

C2*X - C3*Y = R

对于我们的问题,

C1=12,C2=8,C3=5,R=6

第一种倒酒规则实质上相当于解下面这个不定方程:

8X - 5Y = 6  ( 限定 X > 0 ,Y > 0 )

最小整数解是 X=2,Y= 2

表示倒满8品脱的瓶子2次,5品脱的瓶子倒空2次

那么8品脱的瓶子和5品脱的瓶子剩酒总量必然是 8 * 2 – 5 * 2 = 6

第二种倒酒规则实质上相当于解下面的不定方程:

5X - 8Y = 6 ( 限定 X > 0 , Y > 0 )

最小整数解是 X = 6 ,Y= 3

表示倒进5品脱瓶子6次,从8品脱瓶子中倒出3次

那么最终5品脱和8品脱的瓶子剩酒总量必然是 5 * 6 – 8 * 3 = 6

好了,现在你明白为什么要规定倒酒的顺序了吧。小瓶子和中瓶子是一个系统,而大瓶子又是另外一个系统,大瓶子的酒只能倒入中瓶子和小瓶子组成的系统,小瓶子的酒只能倒出到大瓶子的系统。我们关注的是由中瓶子和小瓶子组成的系统,这个系统每次增加都是8品脱(中瓶子容量),每次减少都是5品脱(小瓶子容量)。

另外,如果存在X和Y,使得下面的方程有解:

C2*X - C3*Y = 1

实质上就是说能够倒出1品脱的酒,那么任意品脱的酒都能倒出了。

因为:

(C2*X - C3*Y)*N = N

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win7怎么还原系统

对于win7怎么还原系统的这个问题,其实很好操作,来看视频是怎么做的吧。 1 第一步 按winr组合键,打开运行,输入sysprep,回车 win7怎么还原系统 2 第二步 进入页面,双击sysprep.exe win7怎么还原系统(1) 3…

java file size 单位_file.getsize 单位

{ //String myFileNamemyFile.getFileName(); //取得上载的文件的文件名 ext myFile.getFileExt(); //取得后缀名 int file_sizemyFile.getSize(); ......{ //String myFileNamemyFile.getFileName(); //取得上载的文件的文件名 ext myFile.getFileExt(); //取得后缀名 int fil…

win7系统还原在哪​

Win7系统用久了之后,可能会出现一些故障或者因为文件过多而变得非常卡。这时很多人会选择重新安装重装系统,其实比起重装系统,小编更推荐win7系统还原,不仅耗费时间短,而且不伤电脑,那么win7系统还原在哪?…

java queue 最大值_[剑指offer题解]队列的最大值/滑动窗口的最大值

前言众所周知,《剑指offer》是一本“好书”。为什么这么说?因为在技术面试中,它里面罗列的算法题在面试中出现的频率是非常非常高的。有多高,以我目前不多的面试来看,在所有遇到的面试算法题中,出现原题的概…

PP视频怎么设置文件的缓存路径

软件是否好用,还得大家下载PP视频安装才知道。本文分享PP视频怎么设置文件的缓存路径。作为国内首家,全力打造正版视频平台的PP视频,将从流畅的观映体验、高清的视觉效果、贴心的分享感受等多个方面将“品质”做到极致,满足用户不…

java jvm 加载类的顺序_由经典面试题看java中类的加载机制

原标题:由经典面试题看java中类的加载机制1.概述类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合程序执行,对理解java虚拟机的连接模型和java语言的动态性都有很大帮助。由于J…

联想一键恢复系统教程

联想一键恢复系统教程?下面我们来看一看吧。 联想不同类型的电脑进入一键恢复界面的方法不一,台式机一体机就在电脑开机出现联想logo界面时按下FnF2组合键。 联想一键恢复系统教程 笔记本则寻找一键恢复按键,在电脑电源关闭的情况下按住几秒钟即可进…

java 中的单引号报错_shell中的单引号,双引号,反引号

docker的父镜像中定义了一个环境变量,我们的镜像在启动命令中需要用到这个环境变量。但是不加双引号时总是报错,报找不到java的启动类,加上双引号就不报错了。父镜像中定义的变量:$xxx_CMD -Xdump:tool:eventssysthrow,optsASYNC…

腾讯视频怎么开启禁止界面硬件加速

本文小编给大家分享“腾讯视频怎么开启禁止界面硬件加速”。腾讯视频播放器下载界面设计、功能操作使用、启动播放速度、视频内容数量、画面品质等方面均得到了用户的高度认可。相对于其他几大视频播放器来说,腾讯视频会员性价比还是比较高的,这点&#…

java多线程论文_Java5 多线程之入门篇-论文

Java5 多线程之入门篇Java5 多线程之入门篇首先回顾一下JDK1.5之前的线程相关的知识:1 线程的入门.什么是线程,线程就是程序执行的线索,Java是面向对象的语言什么类来表示这样一个东西呢?Thread.通过start()方法启动它,线程所要执行的任务放在run()方法里面,下面可以看一下run…

xp怎么升级到win7

使用云骑士软件前注意电脑磁盘至少要2个以上,同时备份好C盘上的重要资料,包括桌面文件和聊天记录等等。 打开浏览器,在云骑士官网下载云骑士一键重装系统软件,下载好以后打开云骑士装机大师,点击一键装机页面下的立即…

brew php7 intl_brew安装php7

设置brewbrew tap homebrew/dupesbrew tap homebrew/versionsbrew tap homebrew/homebrew-php安装php7brew install php70 \--without-snmp \--without-apache \--with-debug \--with-fpm \--with-intl \--with-homebrew-curl \--with-homebrew-libxslt \--with-homebrew-opens…

电脑怎么备份系统

电脑怎么备份系统?下面就与大家分享电脑备份系统的方法。 可以使用电脑的备份功能。 1 第一步 右键点击此电脑,选择属性,选择左侧菜单中的系统保护选项 电脑怎么备份系统 电脑怎么备份系统(1) 2 第二步 点击配置,勾选启用系统保护&#…

php求北京时间方法,php怎么将获得的时间转换为北京时间

从php5.10开始,php中加入了时区的设置,在php中显示的时间都是格林威治标准时间,这就造成了我们中国的用户会差八个小时的问题!相关设置是修改php.ini中的 date.timezone 参数:[Date]; Defines the default timezone us…

php sql desc,PHP SQL 查询封装

/*** SQL 简单查询工具类* * $tools new SQLTools("表名", "数据库操作对象实例");*$tools->query("字段默认为*") //(如无后续操作此处返回查询结果集)* ->where( 条件, PDO参数化查询参数 ) //(如无后续操作此处返回查询结果集)* ->…

彩虹浏览器使用技巧:页签自动切换

核心提示:彩虹66760设计了创新的页签自动切换功能,当鼠标移动到某个页签时,无需要点击就能自动激活您所想打开的网页,这个功能是不是很酷很炫呢,为大家节约一点小时间。 1,悬停换页 彩虹浏览器设计了创新…

php 的不等于符号,mysql 不等于 符号写法

经过测试发现mysql中用<>与!都是可以的&#xff0c;但sqlserver中不识别!,所以建议用<>selece * from zzvips where id<>45sql 里 符号<> 于 ! 的区别<> 与!都是不等于的意思&#xff0c;但是一般都是用<>来代码不等于因为<>在任何S…

腾讯视频怎么禁止别人登录我的会员

一旦你有了腾讯视频的vip会员账号&#xff0c;那么不管你是朋友眼中&#xff0c;还是在那些盗号的眼中&#xff0c;你就是非常诱人的&#xff0c;那么我们怎么设置才能够禁止别人登录自己的会员账号呢?跟着小编的节奏&#xff0c;带你安全设置腾讯视频vip账号。 首先&#xf…

php数组交集方法,PHP获得数组交集与差集的方法

本文实例讲述了PHP获得数组交集与差集的方法。分享给大家供大家参考。具体分析如下&#xff1a;一、数组的交集 array_intersect()array_intersect()函数返回一个保留了键的数组&#xff0c;这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下&a…

如何获取优酷视频的通用代码?

在网站建设中&#xff0c;假如置入视頻&#xff0c;则必须该视頻所属视频平台的通用性编码&#xff0c;比如某一视频在优酷网的通用性编码。拷贝该通用性编码在自身的网址&#xff0c;大家就可以自身在自身网址收看&#xff0c;无需自动跳转优酷网站。如何获取优酷视频的通用代…