首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解决问题的编程问题对提高一个人的一般编程能力有帮助吗?

解决问题的编程问题对提高一个人的一般编程能力有帮助吗?
EN

Software Engineering用户
提问于 2014-01-27 08:19:57
回答 3查看 654关注 0票数 1

例如,例如:

第一届国际奥林匹克运动会将于2013年在澳大利亚举行,你决心赢得比赛。虽然你不想和这种黏黏的、神经质的生物有任何关系,但是你计划进入一个像青蛙一样的机器人,你知道它比所有其他的有机进入者都要快。

IOF发生在一个大池塘中,其中有一系列的百合垫,排列在一条长线上。比赛的规则很简单:你的青蛙会被放在第一个百合垫上,然后它必须跳到第二个百合垫上,然后再跳到第三个百合垫上,直到到达最后一个百合垫为止。请注意,你不能‘跳’百合垫-每一个百合垫必须跳一次。第一只到达最后一层百合垫的青蛙将赢得比赛。因为你的机器人青蛙有超级青蛙的速度,你对你的胜利充满信心。

然而,你的青蛙有一个小的无法纠正的缺陷-它只能跳一个固定的距离。具体来说,它只能从它现在的位置跳到刚好K米的地方,即使它把青蛙降落在水中(在那里它会迅速短路)。

由于最初的百合垫的位置可能使你的青蛙不可能到达最后的百合垫,你计划分散注意力,移动百合垫,使它们完全间隔K米,使你的青蛙能够从第一个跳到最后一个,而不会掉进水中。将百合花垫移一米会花你一秒时间,你偷偷移动百合垫的时间越长,IOF评委就越有可能注意到你并取消你参加比赛的资格。

考虑到课程中百合垫之间的初始距离,你必须编写一个程序来计算你必须花在移动的百合垫上的最短时间,这样所有连续的百合花都正好相隔K米。你可以假设池塘足够长,所以第一个百合垫可以移动任何距离后,最后一个百合垫可以移动任何距离向前。

输入

您的程序应该从文件frogin.txt中读取。该文件的第一行将由两个空格分隔的整数N和K组成,下面的N1行将包含连续对百合垫之间的初始距离。具体来说,ith线将包含一个整数,表示ith和(i+1)th百合垫之间的距离。

输出

您的程序应该写入文件frogout.txt。您的输出文件应该包含一个整数的一行:移动百合垫的最小总时间,以确保您的胜利。

这是澳大利亚信息学奥林匹克运动会的样本问题,我碰巧在网上看到了它。

但我不相信任何与现实生活没有直接联系的编程相关问题都会对一个人的实际编程能力产生任何有益的影响。他们会吗?

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2014-01-27 08:54:05

想想看:

  • 首先,要解决给定的问题,需要编写一个非平凡的程序.它不需要有一个漂亮的Web或桌面UI或“数据库层”或,但它涉及某种“业务逻辑”,必须进行测试和调试。
  • 为了解决这个问题,你需要一些整数数学/组合数学。有很多真实的问题,知道整数数学/组合学是有帮助的(当然,也有大量的问题,你不需要这个)。

因此,IMHO是的,解决这样的问题可以教你如何成为一个更好的程序员。当然,他们不会教你所有关于现实世界编程的知识,尤其是没有涉及到一种特殊技术的东西。但是“澳大利亚信息学奥林匹克运动会”(或其他国家的信息学奥林匹克)是关于信息学的,而不是关于现实世界的编程,所以它有一个不同的目标。

票数 9
EN

Software Engineering用户

发布于 2014-01-27 15:02:15

通常,当人们抱怨问题的相关性时,这意味着他们觉得问题太难了。通过解决困难的问题,你才会成长。反复解决容易的问题,你得到的最好结果就是你能更快地解决简单的问题。

这些问题都是有趣的,但这并不意味着它们与程序员的日常工作无关。一些在算法和思维过程方面相似但更“严重”的问题的例子如下:

  • 创建一个动画来均匀地将元素放置在显示器上。
  • 计算延迟时间,以处理到达不规则时间但希望处理间隔均匀的事件。
  • 补偿流音频或视频中的抖动。
票数 3
EN

Software Engineering用户

发布于 2014-01-27 13:03:18

是的,他们是。我同意布朗博士的意见,我想补充一些问题。ACM的ICPC)除了数学技能之外,你还在练习你的能力来模拟一个问题,写一个算法,等等。

虽然大多数正式提交的解决方案可能都是肮脏的黑客,因为时间限制,您可以采取您的时间和解决问题的最佳和优雅的方式。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/225616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档