打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
算法创作|龟兔赛跑问题解决方法

前言

Python中的龟兔赛跑问题解决方法

让你自己输入一个时间,看看最后的赢家是乌龟还是兔子

问题描述

乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?

示例:输入在一行中给出比赛时间T(分钟)。最后得出赢家是谁,并且给出赢家的跑步距离

输入:242

输出:乌龟胜出,并且跑了726米

解决方案

最开始使用第一次想到的思路,也就是分别给兔子和乌龟算奔跑距离,但是后面发现与T的关系出现问题,后来经过网上的参考发现龟兔赛跑是呈现一个周期性的,前十分钟:兔子跑90m,乌龟跑30m,然后兔子休息三十分钟;前四十分钟,兔子90m(休息三十分钟),乌龟跑120m;前五十分钟,兔子跑180m,乌龟跑150m,然后兔子休息三十分钟;前八十分钟,兔子跑180m(休息六十分钟),乌龟跑240m;前九十分钟,兔子跑270m,乌龟跑270m;…可看出九十分钟一个周期,兔子只会在0-10,40-50,80-90这三个时间段跑,而乌龟却一直在跑,则可由此判断谁是胜利者

结语

这次的实验在最开始使用while循环,但是在随着问题的深入,很快就碰壁了,之后受到CSDN大佬的启发,在经过组内讨论和思考后,明白了龟兔赛跑问题实质上可以看成乌龟和兔子之间的周期问题,在固定的周期里,兔子的奔跑时间是固定的,与我们之前靠不同时间点来计算路程的问题来说,无疑是减少了不少的算法复杂度,随后便完成了龟兔赛跑的编程问题。

实习编辑:衡辉

作者:雷迅、于博、包文晴

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
都怪你数学成绩太好,所以人生诸般不如意
陈流 ——奔跑吧,兔子
​人生诸多不如意皆因使用了错误的人生算法
【内蒙】穆晗昱 龟兔赛跑《新编》指导老师:赵向媛
笔算开方
(精品)人教版小学三年级数学上册长方形和正方形的周长
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服