如何向亲戚朋友解释自己是搞算法的?

如题所述

第1个回答  2017-12-05

“搞个算法”,不是写个程序,跑个数据跑的挺快就行了。第一要有充足的创造性,第二要有够严谨。创造性上肯定有人不服气,觉得自己也是独立思考出题解的,而且自己作的东西确实很难。但是难不意味着新,而且独立思考和独立思考不一样,在接受了相应的预备教育、对问题有没有解心里有了底的基础上,想出一个东西来和从零开始是完全不一样的。而且几个小时,最多不过几天就能想清楚的东西,你说它难,又能难到哪里去呢?另一方面来说,你说自己能搞算法,不能只是写个算法的流程,然后就说自己这个对,得能够证明才算数。就好像90年代国内那篇SPFA的垃圾文章,现在普通的高中选手看了都知道他们瞎扯淡,就算这个姿势被大家重新发现了价值,他们能算正经的搞算法吗?事实上,很多OI/ICPCer选手在“懂算法”上都还差了临门一脚,只不过是知道算法而且会用。不信的话大家可以去完整的证明一下基本的网络流算法,不需要dinic、ISAP,证个EK就好,恐怕也有不少人是写不出来的(难度并不是特别难,但是以我有限的水平来看,真的非常繁琐),而EK不过是1970年的,复杂度高达O(VE^2)的算法, 80年代搞ISAP的Orlin老爷子13年都已经把这个问题改进到O(VE)了。看过写好的算法流程,然后按照别人的复杂度说明记清楚算法的性能,不能说是“懂算法”的境界,更谈不上“搞算法”了。