当前位置:  开发笔记 > 编程语言 > 正文

对蛮力解决方案的偏好是一个不好的迹象吗?

如何解决《对蛮力解决方案的偏好是一个不好的迹象吗?》经验,为你挑选了4个好方法。

我是初学者C++程序员,为了扩展我的想法,我一直在尝试projecteuler.net上的一些问题.尽管学校对数学很感兴趣,但我发现自己会自动选择蛮力解决问题的方法,而不是寻找精简或优雅的东西.

这听起来像是一种糟糕的心态吗?我觉得这样做有点内疚,但也许有些快速和肮脏可以......



1> mmcdole..:

我认为你应该看看你的最终目标是什么以及你的约束是什么.

有时,暴力方法可以在50ms内解决问题,尝试解决方案的每个组合,而"聪明"的解决方案可以在10ms内解决问题.那时,不那么聪明但更容易理解的解决方案胜过聪明的解决方案.

然而,有一些问题,暴力强迫不仅不优雅,而且根本不起作用.有很多问题,如果你试图天真地强迫它们,它将花费大量的时间来解决它们.显然,这些类型的问题需要更优雅的方法.

那么问问自己,为什么要尝试这些Project Euler问题呢?你在学习吗?然后尝试一个聪明的解决方案将符合您的最佳利益,但只有在您最初尝试使用暴力解决方案以帮助掌握问题之后.

在进行Python挑战问题时,我尝试以最简洁的方式做到这一点,推动我的能力极限.在我解决之后,我会回顾其他人的答案,并记下那些比我更聪明,他们做了什么的人的心理记录.有些人会特别使用我没想过的更适合任务的数据结构,或者他们将使用很少的数学技巧来提高算法的效率.最后,我尝试尽可能多地吸收他们的聪明才智,并在下次我遇到类似性质的问题时展示它.



2> John..:

不,这不是一件坏事.我有一些优雅的解决方案,他们错了.



3> Greg Hewgill..:

作为一名初学程序员,您将花费更多的精力来确定如何使用C++实际实现内容,而不是花费精力为每个问题找到一个聪明的解决方案.这很好,因为它让你有机会在处理各种各样的问题时探索C++的不同领域.

当你成为精通C++,你不必去想如何做的每一件小事,那么你就可以花更多的时间发明了非强力解决方案.



4> Robert C. Ba..:

优雅的解决方案不是自发创造的; 当当前解决方案需要更高速度或更少内存消耗时,它们来自蛮力解决方案.

所以不,不是.这就是优雅解决方案的产生方式.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有