为什么有些大公司技术弱爆了 万能公式

发布日期:2018-01-29 08:05:01 更新时间: 2020-09-25 编辑: 晓春
万能公式:找规律什么的都弱爆了

小学的奥数题中,最令人头疼的题型无非是找规律了,各种毫无规律的数列。你可以试试下面的例子:

*1,4,14,53,90,268,977,1586

*1 ,3, 7, 8, 0, 5, 9, 2, 4, 6

*4,2,5,2,6,10,3,7,6,4,6

其实一直以来,我也一直很疑惑有没有什么找规律的秒杀解。就像小学的挠破头都解不了的应用题,到了中学以连数学不及格的人都可以轻而易举地列个方程解掉。直到看到了一个帖子两个网友的对话:

@Talentedpope :哦,设一个8次多项式,待定系数法,结束了。。。

@三哥臭皮匠 :不如直接说用拉格朗日插值呢……

等等,拉格朗日插值,我学过。等等?这货居然可以这么用!?

好吧,作为面向小学生以及其父母的方法,我觉得有义务要详细解释一下什么叫做拉格朗日插值法。

首先,这个方法为什么叫做拉格朗日插值法呢?一是因为拉格朗日“提出”了这种方法(其实拉格朗日并不是第一个提出的,只是因为他名气比较大,很多人都是因为他才了解到这个方法),所以有“拉格朗日”。

那为什么叫做“插值法”呢?

好吧……所谓的插值,就是“插”“值”,就是指找出一个通过给出离散数据点的函数(好吧,好吧,我知道小学生不懂函数和离散)。那么,数列中给出数据可以表示为在坐标系上的点,x坐标就是第几项,y坐标就是该项的值。

比如说,“1 ,3, 7, 8, 0, 5, 9, 2, 4, 6”这个数列可以表示为:


在Mathematica中用几行简单的代码即可做到:


接下来,我们找出这些点都在哪一个函数上面,接着下来把下一项的项数带进去,就得到了下一项的值——这实际上就是通项公式!

事不宜迟,马上来试一试!

首先,我们先来看看拉格朗日插值公式是怎么样的:



好吧,我知道小学生又看不懂了。

那下面我们先试一一个简单的数列:1、8、27…那下一个是什么呢?

首先,这表示存在一个函数。当自变量分别为1、2、3时函数值为1、8、27。于是我们可以设一个函数:


接下来就是关键的一步了!小学生可以不懂这是怎么回事。但有什么问题?考试会用就行了(如果你不介意再解释一下一些其他的问题...比如未知数、自变量和分数的运算)。


容易看到,整个式子是三项的和,每一个点都有一项。对于每一个单独的点来说,分子是这一点的函数值乘上x与其他点的自变量的差。而分母就是该店的自变量和其他点的自变量的差的积。

于是,一个通项公式就出来了。是

于是我们迫不及待地把x=4带进去,得到58.

至此,大功告成。

等等,什么答案写着是64?别管了,肯定是盗版书印错答案了。有什么可能拉格朗日大牛会错呢?

什么,我们的规律不对?正确的是y=x^3?好的,让我看看。嗯…难道是拉格朗日错了?但是前面我们的估算也是没问题的啊。

再仔细看一下坑爹的高数课本,才发现原来是我们一直搞错了。如果我们给的是n个点,那么拉格朗日给出的函数将会是(n-1)次的。

这不坑爹吗…用公式之前还得想清楚这个函数是几次的,而且如果是更高次数的还没办法加上点去求(更别说斐波那契数列这样的用递归定义的数列了)。

这就意味着,就算是1、2、3、4、5、6…这样的数列,拉格朗日插值法在耗尽你大量的考试时间去求出通项公式以后,还会给出一个超级坑爹的答案!

那么这个方法还有什么用!

别急,前面的计算都是为后面做铺垫的。现在才是主要内容。

无论是分布得多么奇怪的点,拉格朗日插值法总能给出一条经过这些点的函数图象。也就是说,就算是1、2、3、4、5、6、(1568)这样明显不靠谱的答案也是“有规律的”。因为你总可以设一个六次多项式,找出这个数列的通项公式。

所以说:

1、3、5、7、9、(1598),是对的

3、1、4、1、5、9、2、(999),是对的

1,1,2,3,5,7,(8989),是对的

2,4,6,8,(5),是对的

如果老师斗胆把你的答案批错的话,你大可以把这篇文章打印出来,然后跟老师说:“这个空填任何数都是可以的,因为你总可以设一个n次多项式,然后……”

为什么有些大公司技术弱爆了?

两个原因吧 第一,我认为毫无疑问是上一代的管理者的技术在跟进时代潮流这方面不如年轻人,没什么可说的

第二,不知道楼主有没有听说过Worse is Better的观点:

Worse is better

The idea is thatquality does not necessarily increase with functionality. There is a point where less functionality ("worse") is a preferable option ("better") in terms of practicality and usability. Software that is limited, but simple to use, may be more appealing to the user and market than the reverse.实际上随着技术越深入,一定是对口的程序员越难招,维护成本越高以及边际效应递减的过程。

我给你举个例子。我在学校做过一段时间推荐系统的研究,看了很多paper,觉得这些paper很吊,觉得我可以去公司把各种paper里heuristic的算法改进(灌水)技术放到实践中,一点一点提升系统的性能。

去实习之后我傻眼了,实际上是十个工程师实现了一个最简单的推荐算法,系统就上线了。我去跟人聊各种paper里的算法,大家听着一愣一愣的。

实际上就是存在这个问题。我有技术,但是如果让我实践这些技术,所带来的一定是系统实现的复杂度和工作量成倍上涨。那怎么办?多招一些我这样的看过一堆paper的人?市面上这样的程序员比起安卓php程序员数量肯定要少,这是个不争的事实。而且这帮人坐地起价做出来的复杂度高开发时间长的东西所带来的流量提升也未必高了几个点,这帮人根本创造不了高工资对应的高价值,就是炫技。

前段时间Linkedin终于放弃scala了,为什么,招不到程序员啊。原来在里面的人可以随着这种转型在业务里学,但外面的人没机会就是学不会啊

再举个例子。已经有无数工程师吐槽过Facebook的快糙猛了,@grapeot 吐槽过里面随便拿一个分类器就上了, @王淮 的书里面也讲过剑桥PhD去了水土不服的例子。为啥,不需要高深技术,需要随着业务快速解决问题。用的软件大部分都是现成开源的,把学术界过去50年无数聪明人的智慧扔在一旁玩简单粗暴,招一帮会写几个小玩具(可以很复杂,但一定经不起考验)的高中生去开发上线产品,你跟我说美国公司就多么重技术?

当然现在开始重视了,Facebook招research scientist成立AI Lab,Google有Google X。恩,不挣钱嘛,微软要裁自己的研究院嘛。Google X一个项目两年没啥就要砍了嘛。

汽车美图 更多 >

Copyright @ 2011-2016 www.CheBiaoW.com   车标网   苏ICP备12030990号,我要投稿