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

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

前言

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


目录
相关文章
|
存储 算法 程序员
【五一创作】C++程序设计与算法(一) 北京大学 郭炜(下)
【五一创作】C++程序设计与算法(一) 北京大学 郭炜(下)
56 0
|
算法 Java C语言
【五一创作】C++程序设计与算法(一) 北京大学 郭炜(上)
【五一创作】C++程序设计与算法(一) 北京大学 郭炜
95 0
|
5月前
|
算法 Java
Java数据结构与算法:冲突解决方法
Java数据结构与算法:冲突解决方法
|
算法 Python
算法创作|规则数列计算解决方法
算法创作|规则数列计算解决方法
72 2
|
算法
算法创作|神奇语言问题解决方法
算法创作|神奇语言问题解决方法
68 1
|
算法 索引
算法创作 | 0到n-1中缺失的数字问题解决方法
算法创作 | 0到n-1中缺失的数字问题解决方法
99 0
|
算法 Python
算法创作|找出游戏的获胜者问题解决方法
算法创作|找出游戏的获胜者问题解决方法
136 0
|
24天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
9天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
10天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。