飞诺会员签到大派送 ★新手必读★ ◆◇飞诺社区版主正在招募中! 论坛吐血大奖励 原创征文
◆『N币兑换图书活动』◆ 著名杀毒软件之七种兵器-详评 抵制践踏GPL的QQ影音 金山毒霸被诉歧视消费者
青岛网偷第一案宣判10年 几款凶猛的病毒! JAVA与.NET对垒,我们到底该选谁? 以下哪种木马最邪恶?

[活动结束]一个有趣的c++问题

[ 5970 查看 / 28 回复 ]

问题:有两个没有刻度的8两的酒瓶和一个可以没有刻度的3两的酒杯,现在有16两酒要平均分给4个人喝,怎么分配?


 


本活动参与方式:只需回帖发布你的答案即可


活动奖励100积分


活动结束日期:2009年9月5日


 


相同或者类似答案的,只选第一个!(可有多个答案!至于太假的答案,就不允许,比如:买来4个4两刻度的酒杯。。)


 


活动已结束 成功者请看帖子得分

本帖得分:

diybl(N币:100)
TOP

没人回答:我来试试(没有添加任何外来物)


现在假设8两的酒瓶分别为A1    A2


                3两的酒瓶为  B


                 16两的酒为 C


1.  C------>A1        倒满         A1有8两


2.  C------>A2        倒满        A2有8两,C有0两


3.  A1------>B         倒满        B有3两,A1有5两


 


=================== 现在是 A1=5      A2=8      B=3    C=0


 


4.  B------->C,  A1--------->B     此时A1=5-3=2    B=3    C=3  A2=8


5.  B-------->C,      此时A1=2, B=0, C=6  A2=8         //这一步是替换


6.  A2------->B      倒满    A1=2      B=3   A2=5   C=6


7.  B--------C,    此时 A1=2   A2=5    B=0    C=6+3=9


8. A2---------->B  此时 A1=2    A2=5-3=2    B=3    C=9


9. A2---------->A1  此时 A1=2+2=4    A2=0   B=3    C=9 


 


====================呵呵,终于第一个人分出来了


第二个人的:


 


1. C----->A2   倒满   此时 A2=8   B=3   C=1


2. B------>C   倒完         A2=8, B=0   C=4


=====================


完了,到这,分不下去了:待续


 


 

TOP

@小生有礼:继续努力呀!
TOP

设四个人为A、B、C、D,两个8两的瓶在前,一个3两的瓶在最后。 
1:853。
2:把空瓶中3两酒给A喝,然后是850。
3:823。
4:把2两酒给B喝,803。
5:830。
6:533。
7:560。
8:263。
9:281。
10:把1两酒给C喝,280。
11:253。
12:703。
13:730。
14:433。
15:460。
16:163。
17:把1两酒给D喝,063。
18:360。
19:810。
20:给1两酒给A喝,800
21:503。
22:把3两酒给C喝,500。
23:203。
24:把3两酒给D喝,200。
25:把2两酒给B喝,000。
这样A喝了3+1=4两。B喝了2+2=4两。C喝了1+3=4两。D喝了1+3=4两
TOP

@yorel:好样的,成功了一个。
TOP

继续征集中。。。

TOP

 左边表示倒酒,右边表示倒出的酒  
   
  8     8     0  
  8     5     3    
  8     5     0         3  
  8     2     3          
  8     0     3         3+2  
  8     3     0  
  5     3     3        
  5     6     0  
  2     6     3  
  2     8     1          
  2     8     0         3+2+1  
  0     8     2  
  0     7     3  
  3     7     0  
  3     4     3  
  6     4     0  
  6     1     3  
  8     1     1          
  8     0     0         3+2+1+1+1  
  5     0     3  
  5     0     0         3+2+1+1+1+3  
  2     0     3          
  2     0     0         3+2+1+1+1+3+3  
  0     0     0         3+2+1+1+1+3+3+2  
   
  只要能得到  
  3+2+1+1+1+3+3+2  
  这个组合,就能得到4+4+4的组合  
  问题解决了
TOP

 左边表示倒酒,右边表示倒出的酒
TOP

设两个八两的杯子为A,B;三两的杯子为C,四个四两的杯子分别为D,E,F,G。


初始状态是:A=8,B=8,C=0,D=E=F=G=0;


第一步:从A向C倒满,即A=5,B=8,C=3,D=E=F=G=0;


第二步:从A向D倒满,即A=1,B=8,C=3,D=4 ,E=F=G=0;


第三步:把A和C中的全倒到E中,E刚满,即A=0,B=8,C=0,D=4 ,E=4,F=G=0;


第四步:把B,F和G当作一组重复以上的操作。即可得到最终的结果A=0,B=0,C=0,D=4 ,E=4,F=4,G=4;

TOP

@小生有礼:恭喜~
TOP

@liiyuann:不好意思,你这个答案,显示有点勉强了,比如,如果你有4个四量的杯子的话,还不如直接将洒分别倒满4个杯?呵,但你的思想也是有点开放的,奖20分!
TOP

这个不错,顶礼
TOP

好难呀,看看达人们都怎么做到的
TOP

@lkls:


谢谢,但是你那T楼的分什么时候给我加上啊,我有个贴可是 7楼哦  20分


嘿嘿

TOP

和3楼想的雷同~哈哈~

TOP

3楼和6楼的不是差不多吗?一个喝了一个倒了~
TOP

HAO


 

TOP

@evaor:楼上的别老都是好啊 呵呵
TOP

哇,学习了!
TOP

-倒满3两的酒杯,再倒入8两的酒杯里,3次<0,8,1>
-8
两的酒杯(b)满时,3两的酒杯里就只剩1两的酒,给a(没说不能分开吧?)<0,8,0>
-之后同样步骤,从
8两的酒杯(b)里拿6,和16两的酒杯里拿3,放到另一个8两的酒杯(a),得到另一个1<8,8,1>
-这一个1两酒给b,
-<8,2,0>2给d
-从8两的酒杯(a)里拿6,和16两的酒杯里拿3,放到另一个8两的酒杯(b),得到另一个1<2,8,1>
-从8两的酒杯(b)里拿6,分别倒3两酒给a和b<2,2,0>
-再来把16两的酒杯里的酒倒入8两的酒杯(b)<2,3,0>
-<2,3,0>3给c和2给d
=完成=


演示(<
8的酒杯8的酒杯3的酒杯>)
<0,8,1>1给a

<0,8,0>a=1;b=0;c=0;d=0

<8,2,1>1给b

<8,2,0>a=1;b=1;c=0;d=0

<8,2,0>2给d

<8,0,0>
a=1;b=1;c=0;d=2

<2,8,1>1给c

<2,8,0>
a=1;b=1;c=1;d=2

<2,8,0>两个3给a和b

<2,2,0>a=4;b=4;c=1;d=2

<2,3,0>给c和d

<0,0,0>a=4;b=4;c=4;d=4

这个要用%remainder,
给的答案只是逻辑答案丫
c++太长了
照这个写出来也只是形式,没得变通,没什么用。
或许是我c++基础和运用太差吧^^

TOP
[活动结束]一个有趣的c++问题
飞诺网2010大型Exchange实战项目开发沙龙
[活动结束]我给大家出个面试题目大家讨论下
论坛吐血大奖励 原创征文采用后付稿酬
世界杯开赛火热预言~~预言帝派送N币
电子书频道上线测试,欢迎大家共同测试~~
[活动结束]2009-8-27日活动
[纪念]敬爱的周总理逝世34周年(鞠躬敬礼)
千年一遇 日环食 大家谈谈感受哦
飞诺网招募有志者参与本社区教学视频录制,凡参与者有
colse