码迷,mamicode.com
首页 > 编程语言 > 详细

让我们一起揭开算法的神秘面纱

时间:2019-10-23 09:24:41      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:框架   复杂   应该   font   https   sum   工作   发表   blog   

前言

其实我一直想写一篇揭秘算法的文章,因为,据我所见,大多数写算法的软件工程师,其实,就是普通程序员,并非高人一等。

但我一直不知道从何下手,今天姑且尝试着乱写一点。

最唬人的高大上

算法最唬人的东西莫过于公式了。

而公式中最唬人的摸过于∑了;这个符号叫sigma,如下图:

技术图片

举个例子:

某公司开会讨论项目功能实现,与会人员有:一个项目经理,三个A组成员,三个B组成员和一个算法工程师。

然后,讨论着,讨论着,就遇到了一个争议功能。

A组成员认为该功能应该循环来处理,B组成员认为应该使用递归来处理,双方争议不下。

此时,项目经理为了搁置争议,共同开发。。。然后,请算法工程师发表意见。

算法工程师走到黑板,刷刷刷写下了上图的公式。。。然后开始了表演。。。呃,是讲解。

“我们这个功能,我觉使用这个公式来实现最好,这个Ki乘以Mi,然后我们求一下和,巴拉巴拉。。。”

然后,A组B组成员就都蒙了,因为他们看不懂,也没听懂。因为程序员的特质是严谨,所以一旦遇到不懂的事情,他们通常是不发表意见的。

然后,在这小小的会议室中,算法工程师的形象就瞬间高大了起来。

"沉默就表示同意了,那这个功能就这么处理吧"项目经理说道。

最后,会议结束,因为没人能看懂这个公式,所以,A组组长和B组组长私下讨论了一个解决方案把问题处理掉了。。。

----------------------------------------------------------------------------------------------------

其实这个公式很简单,就是M=K1*M1+K2*M2+K3*M3+…+Kn*Mn。

什么?看不懂?

那这样总该能看懂了吧。

int totalM = 0;
int n = 10;
List<int> K = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
List<int> M = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
for (int i = 0; i < n - 1; i++)
{
    totalM += K[i] * M[i];
}

聪明的你有没有发现什么?

【∑sigma】就是for循环有没有。

这个∑下面i=0,上面n-1就是for循环的条件有没有;K和M就是两个Count等于n的数组有没有。

上面例子中,算法工程师提出的解决方案就是循环处理有没有。。。

如果算法工程师讲公式时这样说:“K和M集合长度相等,我们循环一下,计算下K[i] 和 M[i]的乘积,然后累加求和一下。”

是不是就都听懂了。

当然了,如果他真这样讲,就高大上不起来了。。。

其实我们每天都在写算法

想想我们写过的那些复杂甚至恶心的业务逻辑,结合一下上文的例子。

然后,你会发现,其实你每天都在写算法。。。

只是你不知道如何把你写的东西,用公式表达出来而已。。。

----------------------------------------------------------------------------------------------------

诚然,经常写算法的朋友,的确,很多时候可以给出一个非常好的处理问题的逻辑。

但是,这并不是算法工程师在能力上高人一等,只是他们长期应用算法,对计算问题,相对更敏感,所以,处理起来更简洁,高效。

其实,软件工程师也一样,有经验的软件工程师,写的代码逻辑更清晰,代码更简洁,会使用的开源框架更多,这并不能代表什么,因为,这只是工作能力的高低而已。

尝试写一个公式

编写算法公式其实非常简单,使用Word就可以实现啦。

编写公式步骤,打开Word—插入—公式,然后在里面选择公式模板,单击,就可以插入公式模板了。

技术图片

如上图所示,Word里提供非常多的公式模板。PS:有没有发现,勾股定理其实也是一种算法。

插入公式模板后,Word上方的面板会自动跳转到设计界面。

技术图片

如上图所示,这里有非常多的功能。

----------------------------------------------------------------------------------------------------

作为程序员,你一定写过文档吧,如果你在文档中加入几个公式。。。

试想一下,当项目经理看你的文档时,看到一堆他不懂的公式。。。你在他心中的形象是不是瞬间就高大上起来了呢,O(∩_∩)O哈哈~

当然了,还是有真正大牛算法工程师,这里不能一概而论。

但我们没必要自卑的认为比算法工程师第一档就是了。

----------------------------------------------------------------------------------------------------

注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!
若您觉得这篇文章还不错,请点击下方的推荐】,非常感谢!

https://www.cnblogs.com/kiba/p/11719727.html

 技术图片

 

让我们一起揭开算法的神秘面纱

标签:框架   复杂   应该   font   https   sum   工作   发表   blog   

原文地址:https://www.cnblogs.com/kiba/p/11719727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!