早教吧作业答案频道 -->数学-->
泊松趣味数学题某人有12品脱的啤酒,想从中倒出6品脱,可他没有6品脱的容器.只有1个8品脱的容器,和一个5品脱的容器.问怎没使8品脱的容器装满6品脱的啤酒.
题目详情
泊松趣味数学题
某人有12品脱的啤酒,想从中倒出6品脱,可他没有6品脱的容器.只有1个8品脱的容器,和一个5品脱的容器.问怎没使8品脱的容器装满6品脱的啤酒.
某人有12品脱的啤酒,想从中倒出6品脱,可他没有6品脱的容器.只有1个8品脱的容器,和一个5品脱的容器.问怎没使8品脱的容器装满6品脱的啤酒.
▼优质解答
答案和解析
问题分析与算法设计
将12品脱酒 8品脱和5品脱的空瓶平分,可以抽象为解不定方程:
8x-5y=6
其意义是:从12品脱的瓶中向8品脱的瓶中倒x次,并且将5品脱瓶中的酒向12品脱的瓶中倒y次,最后在12品脱的瓶中剩余6品脱的酒.
用a,b,c代表12品脱、8品脱和5品脱的瓶子,求出不定方程的整数解,按照不定方程的意义则倒法为:
a -> b -> c ->a
x y
倒酒的规则如下:
1) 按a -> b -> c ->a的顺序;
2) b倒空后才能从a中取
3) c装满后才能向a中倒
按以上规则可以编写出程序如下:
*程序说明与注释
#include
void getti(int a,int y,int z);
int i; /*最后需要分出的重量*/
int main()
{
int a,y,z;
printf("input Full a,Empty b,c,Get i:"); /*a 满瓶的容量 y:第一个空瓶的容量 z:第二个空瓶的容量*/
scanf("%d%d%d%d",&a,&y,&z,&i);
getti(a,y,z); /*按a -> y -> z -> a的操作步骤*/
getti(a,z,y); /*按a -> z -> y -> a的步骤*/
}
void getti(int a,int y,int z) /*a:满瓶的容量 y:第一个空瓶的容量 z:第二个空瓶的容量*/
{
int b=0,c=0; /* b:第一瓶实际的重量 c:第二瓶实际的重量*/
printf(" a%d b%d c%d\n %4d%4d%4d\n",a,y,z,a,b,c);
while(a!=i||b!=i&&c!=i) /*当满瓶!=i或另两瓶都!=i*/
{
if(!b)
{ a-=y; b=y;} /*如果第一瓶为空,则将满瓶倒入第一瓶中*/
else if(c==z)
{ a+=z; c=0;} /*如果第二瓶满,则将第二瓶倒入满瓶中*/
else if(b>z-c) /*如果第一瓶的重量>第二瓶的剩余空间*/
{ b-=(z-c);c=z;} /*则将装满第二瓶,第一瓶中保留剩余部分*/
else{ c+=b; b=0;} /*否则,将第一瓶全部倒入第二瓶中*/
printf(" %4d %4d %4d\n",a,b,c);
将12品脱酒 8品脱和5品脱的空瓶平分,可以抽象为解不定方程:
8x-5y=6
其意义是:从12品脱的瓶中向8品脱的瓶中倒x次,并且将5品脱瓶中的酒向12品脱的瓶中倒y次,最后在12品脱的瓶中剩余6品脱的酒.
用a,b,c代表12品脱、8品脱和5品脱的瓶子,求出不定方程的整数解,按照不定方程的意义则倒法为:
a -> b -> c ->a
x y
倒酒的规则如下:
1) 按a -> b -> c ->a的顺序;
2) b倒空后才能从a中取
3) c装满后才能向a中倒
按以上规则可以编写出程序如下:
*程序说明与注释
#include
void getti(int a,int y,int z);
int i; /*最后需要分出的重量*/
int main()
{
int a,y,z;
printf("input Full a,Empty b,c,Get i:"); /*a 满瓶的容量 y:第一个空瓶的容量 z:第二个空瓶的容量*/
scanf("%d%d%d%d",&a,&y,&z,&i);
getti(a,y,z); /*按a -> y -> z -> a的操作步骤*/
getti(a,z,y); /*按a -> z -> y -> a的步骤*/
}
void getti(int a,int y,int z) /*a:满瓶的容量 y:第一个空瓶的容量 z:第二个空瓶的容量*/
{
int b=0,c=0; /* b:第一瓶实际的重量 c:第二瓶实际的重量*/
printf(" a%d b%d c%d\n %4d%4d%4d\n",a,y,z,a,b,c);
while(a!=i||b!=i&&c!=i) /*当满瓶!=i或另两瓶都!=i*/
{
if(!b)
{ a-=y; b=y;} /*如果第一瓶为空,则将满瓶倒入第一瓶中*/
else if(c==z)
{ a+=z; c=0;} /*如果第二瓶满,则将第二瓶倒入满瓶中*/
else if(b>z-c) /*如果第一瓶的重量>第二瓶的剩余空间*/
{ b-=(z-c);c=z;} /*则将装满第二瓶,第一瓶中保留剩余部分*/
else{ c+=b; b=0;} /*否则,将第一瓶全部倒入第二瓶中*/
printf(" %4d %4d %4d\n",a,b,c);
看了泊松趣味数学题某人有12品脱的...的网友还看了以下:
根据意思写歇后语形容坏人坏事不长久比喻看看不错,但没有实际用途形容做事没有不低,乱做形容对小事看得 2020-04-12 …
判断下题关于“食品污染”的问题:1.所谓的“食品污染”是指[]A.无益于人体健康的物质混入我们的食 2020-05-13 …
1.近年来,电视、报刊等媒体对食品污染的问题报道很多.所谓的“食品污染”是指()A.食品没有清洗干 2020-05-13 …
猜猜我是谁(根据意思写词语)(1)形容物品十分贵重。()(2)形容心事重重,非常忧愁。()(3)使 2020-05-14 …
如何形容精品很少,寻获很难例如:在同类的作品之中,精品很少,非精品数量极其庞大.那么从其中挑选出一 2020-06-15 …
产量增长了10%,产值增长了20%,则产品的价格提高了()商业贷款增25%,利率提高20%,利息额 2020-06-28 …
深圳四年级下册作文知识与能力训练第七课第四题-形容人的品质的词语有哪些从课文中找出形容人品质的词语 2020-07-24 …
所以光有一个好的标题,没有好的内容不行;光有好的内容,没有一个好的标题也不行。一篇好的威信文章,必须 2020-11-04 …
初一期末考语文作文没写好,试卷上有几道题也没写好考试时间到了之后,监考老师给我最后两分钟.可是作文还 2020-11-06 …
英语翻译1、目前不修改样品,在正式样品中会直接修正这个问题.2、等候你对上面问题的澄清3、我的解释请 2020-11-07 …