为了账号安全,请及时绑定邮箱和手机立即绑定

李白喝酒问题的算法

李白喝酒问题的算法

阿波罗的战车 2019-04-09 20:25:52
“李白街上走,提壶去买酒,遇店加一倍,见花喝一斗”,途中,遇见5次店,见了10此花,壶中原有2斗酒,最后刚好喝完酒,要求最后遇见的是花,求可能的情况有多少种?希望大家分享一下思路,谢谢!我的思路很混乱,觉得直接暴力枚举能解决,但是枚举所有的情况比较不现实,希望大家解答啊!
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

henix的思路非常好,只是这一句“所以问题转化为把8拆成5个2的幂”略有问题,漏掉了类似12311的组合(即漏掉了可能+3的情形)。
加3斗的情况会在如下情境中触发:当前酒为2斗时候,遇店加至4斗,遇花喝掉一斗,此时有3斗,再遇店加3斗。所以这个组合中3必须紧挨着2,在2的后面,相当于"23"捆绑在一起。此种情况下有C(4,1)=4种。总答案为C(5,2)+C(4,1)为14种。
                            
查看完整回答
反对 回复 2019-04-09
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

每见一次花喝1斗,由于最开始有2斗,总共见了10次花,说明总共喝了10斗。所以因为遇见店而增加的酒为8斗。
所以问题转化为把8拆成5个2的幂,也就是考虑每次遇见店增加多少斗。有两种:
11222
11114
但是没有2直接出现4是不可能的,所以只有11222是可行的。
所以问题转化为11222这5个数有多少种排列方法,共C(5,2)=10种。
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 552 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信