面试中的一道扑朔迷离的离散数学题, 对离散数学有研究的朋友帮帮忙啊

kitcaii 2009-04-07 10:29:01
小王在4周寒假中,每天至少喝1袋牛奶,整个假期最多喝40袋.
试证明:一定有连续的几天,小王在这几天中恰好一共喝了15袋.
...全文
484 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
microblue 2009-04-08
  • 打赏
  • 举报
回复
mark
oyzdz1988 2009-04-08
  • 打赏
  • 举报
回复
是呀,同余和抽屉原理确实强,不过重要的是知道把它转化成同余来做。。。
xiguagege 2009-04-08
  • 打赏
  • 举报
回复
deng2000 2009-04-08
  • 打赏
  • 举报
回复
6楼和7楼的方法都很好。看来我低估同余和抽屉原理的威力了,呵呵。
huanglaobo 2009-04-08
  • 打赏
  • 举报
回复
40 / (4*7)= 1.4
上式小于2。
而题目知道每天至少喝一袋,所以寒假总必然有1的出现。

40-4*7 = 12
上式表示只多出12袋。
也就是说,假设要证明的命题为假。
那么就必然要利用这多出的12袋,
做出一个满足我们假设的数列。
  • 打赏
  • 举报
回复
4L用抽屉原理进行证明其实已经很到位了,我们只需要将证明过程稍稍修改一下,就用不着“数数”了。
同样用A[i]来表示累计到第i天喝的总袋数,由于“每天至少喝1袋牛奶”,所以A[i]是严格递增的。
下面我们来看第1天到第16天,由抽屉原理可以,总存在两天对于15来说是同余的。
假设有(A[j]-A[i]) mod 15 = 0
由于“整个假期最多喝40袋”,所以A[j]-A[i]只可能等于15或者30
但由于后面还有漫长的12天(至少还要喝12袋牛奶),所以30肯定是不可能的,于是只可能A[j]-A[i]=15
绿色夹克衫 2009-04-08
  • 打赏
  • 举报
回复
应该不用挨个数,假设存在差为30的情况,那么这两天的距离至少是18天(30 + 28 - 40),这样的话,
这18天之内一定还存在mod 15相等的两天,他们之间的差一定小于30.又不可能是0,因此一定有连续几天喝15袋的情况

我一般解释个东西总是说不太清楚,还好5楼作了比较详细的解释.

[Quote=引用 5 楼 deng2000 的回复:]
楼上的证明很漂亮, 但有个小问题: 两个数mod15同余并不意味着它们的差就一定是15. 在两数都小于40的情况下,它们的差还可以是30. 因此楼上实际上是用非常简短的推导证明了比题设稍弱一些的结论: 一定有连续的几天,小王在这几天中一共喝了15或30袋.

我发现要确切证明题目中15袋的结论,只依靠同余性质是不够的,还需老老实实地"数数":)
正如litaoye在楼上指出的,本题等价于如下问题:
在1,2,3,...,39,40这40个数中任取28个数,…
[/Quote]
deng2000 2009-04-08
  • 打赏
  • 举报
回复
楼上的证明很漂亮, 但有个小问题: 两个数mod15同余并不意味着它们的差就一定是15. 在两数都小于40的情况下,它们的差还可以是30. 因此楼上实际上是用非常简短的推导证明了比题设稍弱一些的结论: 一定有连续的几天,小王在这几天中一共喝了15或30袋.

我发现要确切证明题目中15袋的结论,只依靠同余性质是不够的,还需老老实实地"数数":)
正如litaoye在楼上指出的,本题等价于如下问题:
在1,2,3,...,39,40这40个数中任取28个数,则其中必有两个数,它们的差是15.
证明: 用反证法. 假若这28个数任两个数之差都不等于15.
把1到40这40个数分成如下三元组和二元组:
1 16 31
2 17 32
...
10 25 40

11 26
12 27
13 28
14 29
15 30

一共10个三元组,5个二元组.注意每个三元组中两相邻数的差是15,二元组中两数之差也是15
显然,这28个数在每个三元组中最多取两个数,在每个二元组中最多取一个数(否则就出现差为15的情况了),因此,所取总数不超过
10*2 + 5 = 25
这与总个数为28矛盾.

WizardOz 2009-04-08
  • 打赏
  • 举报
回复
mark
绿色夹克衫 2009-04-07
  • 打赏
  • 举报
回复
证明的话,可以用累加的方法,设到第i天,喝的总数为A[i] 从A[1]到A[28],共28个数,总有2个mod 15是相等的,并因为每天至少喝1袋,
所以这两天不可能挨着.因此会有连续几天喝15袋的情况.
绿色夹克衫 2009-04-07
  • 打赏
  • 举报
回复
极端情况是前14天都喝1袋,第15天喝15袋,然后再每天一袋,这样的话总共要喝42袋!
才不会出现连续几天喝15袋的情况
xiguagege 2009-04-07
  • 打赏
  • 举报
回复
有难度
把题目简化一下
四十个小球,随机的放入排好序的28个桶内,要求每个桶最好有一个小球
证明存在一个数N,使得连续的N个桶内球的和为15
rookie001 2009-04-07
  • 打赏
  • 举报
回复
mark!

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧