找回密码
 欢迎注册
查看: 29|回复: 0

[提问] 小学生赶牛过河问题

[复制链接]
发表于 昨天 12:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
本帖最后由 yigo 于 2025-12-30 15:17 编辑

有\(n\)头牛过河,每头牛过河时间为\(0<t_1<t_2<...<t_n\),牧童需要骑一头牛,赶一头牛过河,骑快牛赶慢牛,
过河时间为慢牛过河的时间,过河后还要选择骑一头牛回来赶其他牛过河,直到所有牛过完河,求过完河需要的时间\(T\)的最小值。
我们知道牧童需要过河\(n-1\)次,返回\(n-2\)次,每次需要的时间都对应某一头牛过河的时间,
所以\(T\)的表达式为\(T=t_1x_1+t_2x_2+...+t_nx_n\),且\(x_1+x_2+...+x_n=2n-3\)。
要求\(T\)最小值,首先需要知道\((x_1,x_2,...,x_n)\)的所有解。
现在想知道\((x_1,x_2,...,x_n)\)解的数量\(X_n\)的通项公式,以及解\((x_1,x_2,...,x_n)\)的数值有什么规律。
然后分析总时间取最小值时,哪些方案是必然摒弃的,哪些是需要根据\(t_1,t_2,...,t_n\)的具体值比对的,如果去除需要摈弃的解,仅剩下需要比对的解数\(Y_n\),\(Y_n\)的通项公式是什么。
返程肯定是选择已过河的牛里的速度最快的牛,这个比较容易证明,我觉得\(X_n\)可能并时不是太必要,\(Y_n\)的通项公式更有意义。

===================
一个求最短时间的递归算法:
\(T_{min}(t_1,t_2,...,t_n)=min(t_i+t_j+T_{min}(t_1,...,t_{j-1},t_{j+1},...,t_n))_{1≤i<j≤n}\)
这个递推是错的,因为第二次过河,河对面已经有一头牛了,不等价于少了一头牛的情况。
看看大家有什么思路,我脑袋都乱了。
===================

小学原本题目是\(n=4,t_1=1,t_2=2,t_3=5,t_4=6\),
方案一:骑\(1\)牛赶其他所有牛,\(T=2t_1+t_2+t_3+t_4=15\),
方案二:骑\(1\)牛赶\(2\)牛过河,骑\(1\)牛返回,骑\(3\)牛赶\(4\)牛过河,骑\(2\)牛返回,骑\(1\)牛赶\(2\)牛过河,\(T=1t_1+3t_2+0t_3+1t_4=13\),方案二较快。

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2025-12-31 08:31 , Processed in 0.025296 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表