爱吱声

标题: 从“跑来跑去的狗狗”说开去 [打印本页]

作者: 独角兽    时间: 2014-2-25 07:00
标题: 从“跑来跑去的狗狗”说开去

        爱坛的同学们真是太可爱了,独角兽这几天一直享受着数学思想和方法带给自己的快乐和成长。在之前由“红包问题”引发的概率讨论的结尾,我写下了自小到大一直很喜欢的一道“狗狗跑来跑去”的问题:

A,B两地相距5公里。甲和一条狗与乙分别从A,B出发,相向而行。甲步行速度每小时5公里,乙骑车速度每小时10公里,狗每小时15公里。狗见到乙后就往回跑,见到甲后再折返去找乙。如此反复,请问甲乙相遇时,狗跑了多少公里?

小备注:这个在我小学的时候叫做应用题,所以我在出题的时候特别百度了一下步行速度的范围(开始差点随便写成10公里每小时了,那就改竞走了),同时兼顾数目的计算简单,便于心算(@不喜欢计算器的独角兽)。所以出现了步行,骑车,和狗狗跑三个速度。本来总距离设成15公里的,这样就是完全整数,很好算了。可是转念一想多么的有病才要走1个小时的路呀,改5公里(@懒人独角兽)。

不好意思,还是要分章节。。。

作者: 独角兽    时间: 2014-2-25 07:02
标题: RE: (一)聪明的小学生

这并不是一个多么高大上的奥赛题,估计只是我们当时叫做附加题的程度。但是,只要抓住一点,那就是狗一直在跑,只需知道它最后跑了多久就可以了,而不必关心它的那一段路是从甲跑向乙,还是从乙跑向甲,或者在哪个点上跑。至于跑的时间就是简单的“相遇问题”。

这个思路,松鼠同学把相遇时间设成x, 方程解出来,然后算出狗狗跑了1/3小时,5公里。(这里,从小不喜欢列方程解应用题的独角兽多半会直接心里云计算一下,直接给出个式子和答案交卷。)

可是,还有很多小朋友他们只能想到相遇问题,只能一段一段的计算狗狗往返跑的距离,和甲乙之间剩下的距离。最后只能放弃。

小学生独角兽一直以为那样一段一段的计算是做不出来的,所以也是笨笨的。

好吧,小教主等人已经教育了独角兽,大数学家都是一段一段计算出来的。我乡下孩子真心没见过世面呀。。。

作者: 独角兽    时间: 2014-2-25 07:03
标题: RE: (二)一半,一半,又是一半。。。

这次再认真的提起这个狗狗的问题,我才忽然明白到一段一段的算,也是可以算出来的。因为每次狗狗碰见乙,在回到甲以后大家又回到了原始状态,只是相距的距离短了。也就是每一个回合下来,甲乙距离是上一回合的某比例,而狗狗跑的距离也是上一回合的某比例。那么就是个等比数列极限求和的问题呀。大学和高中数学老师请原谅我,等比数列求和公式俺已经忘记了。想想,只知道1/2的是2,那个不是用公式记的,是用想象的。

想到等比数列,极限求和,独角兽很是高兴。不就是一半,一半,又是一半,总有一半剩下来么。我甚至想起来另一个有趣的问题,百米冠军追乌龟的问题。分成一段一段无数段来想,好像百米冠军永远都追不上乌龟似的。

老师,对不起,说道级数,我只能想到泰勒级数了。

作者: 独角兽    时间: 2014-2-25 07:06
标题: RE: (三)文字程序员

每次搞数学题,总是有野蛮的同学用编程的方法解决。我掐指一算,这题肯定也能编程呀。曾经会用C语言排序的独角兽同学这次尝试着想象一下编程要点,请大师傅等编程达人指点。

首先,松鼠同学已经编了程序,做出来了,但是直觉上误差靠近0.5米,有点儿大。但是到底大不大我也不知道。之前大师傅不是还提到计算机浮点啥啥的会带来计算误差呢。我领会精神了。

我呢想编个循环的程序。每个循环就是上面说的一个回合,狗狗回到甲那里。三个速度不变,产生一个新的甲乙距离L,一个回合时间t,一个狗狗跑的路程s,一个狗狗总共跑过的路程S=S+s。
因为是循环,我喜欢计数,所以整个n计算回合数。
结束的条件,设成L<某值(不知道我这么想对么?如果设置成0.1米,是不是可以保证最后的精确度在0.01米以内呢?)
当然,为了防止计算次数太多,计算机不高兴,可以设置另外一个结束条件,比如n=10000. 达到两个条件任何一个就结束。

考虑到反正是计算机算,不妨多记一个信息,防备老师再往下问。比如总的时间T=T+t。

还有,为了了解计算过程,可以中间输出L, S,T的信息(比如n=1~10,100,1000,10000)

还有什么值得考虑和记录的点么?

编程达人别笑话我呀,我就是十几年前学了一个学期C语言的水平。

作者: 独角兽    时间: 2014-2-25 07:08
标题: RE: (四)还不是最简洁的

今早醒过来,脑子里在想如何编程的时候,突然灵光一闪,发现原来还有一个更加简洁一点儿的思路。因为我为了图省事,三个速度分别设成5,10,15千米每小时。狗狗的速度就是甲乙速度之和。而相向而行的速度也恰恰是甲乙速度之和。所以应该直接喊出,狗狗跑了5公里的答案呀。

同学们,小朋友们,真理来了,不管AB相距多远,狗狗最后实际就跑了多远。世界真奇妙,不看不知道呀!

这里,我们简化了另外一个参数,就是相遇时间。因为反正三个人(狗)都一直在走,所走的路程比就是大家的速度比。相遇问题的总路程就是俩人的路程和。狗狗的总路程就是俩人路程和乘以相应的速度比呀。而刚巧这个题目里,这个比例为1呀。世界真奇妙!

后来我想到一个有趣的事情,就是简单和难的问题。

比如1. 如果问题多问几个,是难度增加还是降低了呢?我觉得,如果先加一问,
(1)        狗狗第一次遇见乙的时候,甲乙相距多远?
(2)        甲乙相遇时,狗狗跑了多远?

这样就可能把更多的同学先引到一段一段思考的路上去。

但是如果问题(1)甲乙多长时间能相遇?

这样就可能把更多的引到总体思考的道路上去。

再比如,如果我把总距离改成4.9公里,我注意到5+10=15的几率就会增加,因为懒得算出来具体的时间了。就算是用笔算出了时间,然后发现最后结果居然也是4.9公里,估计能立刻反应到5+10=15的点上去。于是发现应该忽略具体时间,关注速度关系。

我不当老师有点儿浪费,不是嘛?这些都得写下来,将来给我家小孩做教材,嗯。。。

作者: 到处停留的叶子    时间: 2014-2-25 07:37
这么简单的一个问题,非要被你讲得这么复杂,以后你家小孩学数学不要你教,要被你搞昏头的~~~

嘿,不过还别说,这种由简入繁的精神,还颇有点像叶子游苏州的那种调调~~~

下次我到小叶子的数学题里去找找有没有好玩的让你再快活一下~~


作者: sylvia    时间: 2014-2-25 08:30
狗一直在跑.......比较好.
一段一段的似乎会昏头.
作者: martian    时间: 2014-2-25 09:09
独角兽 发表于 2014-2-25 07:06
每次搞数学题,总是有野蛮的同学用编程的方法解决。我掐指一算,这题肯定也能编程呀。曾经会用C语言排序的 ...

只保留0.1的精度,误差会更大。俺的程序里保留小数点后8位。
作者: 河蚌    时间: 2014-2-25 10:37
标题:
本帖最后由 河蚌 于 2014-2-25 10:43 编辑

这个题是不是可以这样变通理解。
设定一个人不动,另一个人的速度是两个人之和,然后狗与运动的人同时出发,当运动的人到终点时,狗跑了多远。
PS:真心觉得自己比较笨呀。

作者: gbdashen    时间: 2014-2-25 12:20
狗不就跑了5公里吗?
作者: gbdashen    时间: 2014-2-25 12:20
本帖最后由 gbdashen 于 2014-2-25 12:22 编辑

呵呵,小学的时候做了很多类似的题目。
作者: 天狼星    时间: 2014-2-25 17:15
解:
   甲乙同时出发,设X小时后他们相遇,则×甲走过的距离+乙走过的距离)= AB两地总距离,即:
              5X + 10X = 5       --->         X = 1/3 (小时)
   狗在这段时间内一直在跑,则狗跑过的距离总长为 15X = 5 (公里)

是这么解答格式吧?一元一次方程的内容。超过此水平即是误解。
作者: 沉宝    时间: 2014-3-3 14:45
标题: 解析解出来了
本帖最后由 沉宝 于 2014-3-3 16:11 编辑

所谓解析解,就是不依赖于具体数值的答案。这里用的是通用的方法,也就是像数学家那样一段一段计算出来。考虑到读者的水平参差不齐,因此讨论尽量利用中学的知识

首先用代数的语言将问题复述一遍:A,B两地距离S。甲和一条狗与乙分别从A,B出发,相向而行。甲速度Va,乙速度Vb,狗速度Vd。狗见到乙后就往回跑,见到甲后再折返去找乙。如此反复,请问甲乙相遇时狗跑的总长度Sd。

显然,在第一次狗狗见到乙时,狗跑了
[latex]S_{1}=\frac{V_{d}}{V_{d}+V_{b}}S[/latex]
甲移动了
[latex]S_{a}=\frac{V_{a}}{V_{d}+V_{b}}S[/latex]
乙移动了
[latex]S_{b}=\frac{V_{b}}{V_{d}+V_{b}}S[/latex]
此时甲乙相距
[latex]S{}'=S-S_{a}-S_{b}=S-\frac{V_{a}}{V_{d}+V_{b}}S-\frac{V_{b}}{V_{d}+V_{b}}S=\frac{V_{d}-V_{a}}{V_{d}+V_{b}}S[/latex]

狗狗折返去找甲,再见到甲时狗跑了
[latex]S_{2}=\frac{V_{d}}{V_{d}+V_{a}}S{}'=\frac{V_{d}}{V_{d}+V_{a}}\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{b}}S \right )=\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\frac{V_{d}}{V_{d}+V_{b}}S[/latex]
甲移动了
[latex]\frac{V_{a}}{V_{d}+V_{a}}S{}'[/latex]
乙移动了
[latex]\frac{V_{b}}{V_{d}+V_{a}}S{}'[/latex]
此时甲乙相距
[latex]S{}'-\frac{V_{a}}{V_{d}+V_{a}}S{}'-\frac{V_{b}}{V_{d}+V_{a}}S{}'\\=\frac{V_{d}-V_{b}}{V_{d}+V_{a}}S{}'\\=\frac{V_{d}-V_{b}}{V_{d}+V_{a}}\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{b}}S \right )\\=\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )S[/latex]

同理,第三次狗狗跑了
[latex]S_{3}=\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )\frac{V_{d}}{V_{d}+V_{b}}S[/latex]
第四次狗狗跑了
[latex]S_{4}=\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )^{2}\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )\frac{V_{d}}{V_{d}+V_{b}}S[/latex]
第五次狗狗跑了
[latex]S_{5}=\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )^{2}\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )^{2}\frac{V_{d}}{V_{d}+V_{b}}S[/latex]
第六次狗狗跑了
[latex]S_{6}=\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )^{3}\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )^{2}\frac{V_{d}}{V_{d}+V_{b}}S[/latex]
...

那么,狗狗跑的总长度为
[latex]\begin{align*}S_{d}=&S_{1}+S_{2}+S_{3}+S_{4}+S_{5}+S_{6}+\cdots\\ =& \frac{V_{d}}{V_{d}+V_{b}}S+\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\frac{V_{d}}{V_{d}+V_{b}}S\\ &+\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )\frac{V_{d}}{V_{d}+V_{b}}S+\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )^{2}\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )\frac{V_{d}}{V_{d}+V_{b}}S\\ &+\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )^{2}\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )^{2}\frac{V_{d}}{V_{d}+V_{b}}S+\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )^{3}\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )^{2}\frac{V_{d}}{V_{d}+V_{b}}S\\ &+\cdots \end{align*}[/latex]

规律已经很明显了,有的同学可能已经做完了。反应慢的同学也不要着急,我一步一步尽量写详细。
做一个变换,令
[latex]x=\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right ),\ \ y=\left ( 1+\frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\frac{V_{d}}{V_{d}+V_{b}}S[/latex]
那么
[latex]S_{d}=y+yx+yx^{2}+\cdots[/latex]

Sd由无穷多项求和,因此实际上不可能计算所有项。构造前n项的部分和
[latex]S_{d-n}=y+yx+yx^{2}+\cdots+yx^{n-1}[/latex]
显然,n的值越大,Sd-n中包含的项数就越多。当n趋近于无穷大时,Sd-n的值也就趋近于Sd。

忘记等比级数求和的同学,我们有
[latex]\begin{align*}\left ( 1-x  \right )\left ( 1+x+x^{2}+\cdots+x^{n-1} \right )&=1-x^{n} \\ 1+x+x^{2}+\cdots+x^{n-1}&=\frac{1-x^{n}}{1-x} \\ S_{d-n}=y+yx+yx^{2}+\cdots+yx^{n-1}&=\frac{1-x^{n}}{1-x}y \end{align*}[/latex]

已知Va>0,Vb>0,Vd>0,且Vd>Va,Vd>Vb(狗跑得比人快)。所以
[latex]0<x=\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )<1[/latex]
那么,当n趋近于无穷大时,[latex]x^{n}[/latex]趋近于零。
于是
[latex]S_{d}=\frac{1}{1-x}y[/latex]

代回x,y所代表的内容
[latex]\begin{align*}S_{d}&=\frac{1}{1-x}y=\frac{y}{1-x} \\ &=\frac{\left ( 1+\frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\frac{V_{d}}{V_{d}+V_{b}}S}{1-\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right )} \\ &=\frac{\lbrack\left ( 1+\frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\frac{V_{d}}{V_{d}+V_{b}} \rbrack\lbrack\left ( V_{d}+V_{a} \right )\left ( V_{d}+V_{b} \right ) \rbrack}{\lbrack1-\left ( \frac{V_{d}-V_{a}}{V_{d}+V_{a}} \right )\left ( \frac{V_{d}-V_{b}}{V_{d}+V_{b}} \right ) \rbrack\lbrack\left ( V_{d}+V_{a} \right )\left ( V_{d}+V_{b} \right ) \rbrack}S \\ &=\frac{\left ( V_{d}+V_{a} \right )V_{d}+\left ( V_{d}-V_{a} \right )V_{d}}{\left ( V_{d}+V_{a} \right )\left ( V_{d}+V_{b} \right )-\left ( V_{d}-V_{a} \right )\left ( V_{d}-V_{b} \right )}S  \\ &=\frac{2V_{d}^{2}}{2V_{a}V_{d}+2V_{b}V_{d}}S \\ &=\frac{V_{d}}{V_{a}+V_{b}}S \end{align*}[/latex]

答案就是
[latex]S_{d}=\frac{V_{d}}{V_{a}+V_{b}}S[/latex]

用具体数值验算一下:Va=5,Vb=10,Vd=15,S=5,狗狗跑了
[latex]S_{d}=\frac{V_{d}}{V_{a}+V_{b}}S=\frac{15}{5+10}\times5=5km[/latex]
与主帖的答案相符。

【感想】小学方法能解的题目用高级数学方法一定能解,但反过来就不一定成立。事实上,小学水平哪怕是奥数的技巧,都只能解决某些特定的题目,并不具有普遍性。这就是为什么数学会不断向高层次发展。

【思考题】
(注:思考题仅供学有余力的同学自行研究提高。没有标准答案,答对了也没有奖励。)
题1:如果狗狗跑动时只有跟在狗后面的人在走,与狗迎面的人站在原地不动,静等狗扑上来。当狗转身后,原来静止的人运动起来,而原来走动的人停下来等狗。问在这种情况下最终狗跑了多远距离?这道题是否可以用小学的方法解答,还是需要高级的方法?
题2:这是题1中的一种特殊情况,即甲乙的速度相等。问是否可以用小学的方法求解狗跑动的总距离,还是需要高级的方法?
作者: 沉宝    时间: 2014-3-3 16:27
标题: 多谢评分
在你用爱元鼓励时,我帖子的显示还有问题,真不好意思。现在总算修好了。第一次在帖子中用LaTeX标签,出洋相了,哈哈。
作者: 独角兽    时间: 2014-3-3 16:58
沉宝 发表于 2014-3-3 16:27
在你用爱元鼓励时,我帖子的显示还有问题,真不好意思。现在总算修好了。第一次在帖子中用LaTeX标签,出洋 ...

我就只有4分的权限,又是个不肯发红包的小气鬼,呵呵

你的问题第二问比较简单,应该就是S×Vd/Va。第一问的话因为Va,Vb不一样,整体法就没办法了,只能是分段,于是就回归了分段考虑,等比数列极限求和,但是也是可以解的,并不比相向而行的复杂。
作者: 沉宝    时间: 2014-3-3 23:59
独角兽 发表于 2014-3-3 16:58
我就只有4分的权限,又是个不肯发红包的小气鬼,呵呵

你的问题第二问比较简单,应该就是S×Vd/Va。第一 ...
你的问题第二问比较简单,应该就是S×Vd/Va。第一问的话因为Va,Vb不一样,整体法就没办法了,只能是分段,于是就回归了分段考虑,等比数列极限求和,但是也是可以解的,并不比相向而行的复杂。
你这段话支持了我第一帖中【感想】里的讨论,谢谢。




欢迎光临 爱吱声 (http://aswetalk.net/bbs/) Powered by Discuz! X3.2