前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法创作|龟兔赛跑问题解决方法

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

作者头像
算法与编程之美
发布2021-03-30 15:06:39
6020
发布2021-03-30 15:06:39
举报

前言

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大佬的启发,在经过组内讨论和思考后,明白了“龟兔赛跑”问题实质上可以看成乌龟和兔子之间的周期问题,在固定的周期里,兔子的奔跑时间是固定的,与我们之前靠不同时间点来计算路程的问题来说,无疑是减少了不少的算法复杂度,随后便完成了“龟兔赛跑”的编程问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档