反演魔术:反演原理及二项式反演

首先我来说说什么是反演(inversion),对于一个数列\{f_n\}来说,如果我们知道另外一个数列\{g_n\},满足如下条件

 g_n = \sum_{i=0}^n a_{ni}f_i

反演过程就是利用 g_0, g_1, \cdots, g_n 来表示出 f_n

 f_n = \sum_{i = 0}^n b_{ni}g_i

本质上来说,反演其实是一个解线性方程组的过程,但是你观察后发现,这个矩阵实际上是一个三角矩阵,那必然存在着快捷的方法。对于使得这两个反演公式成立的这些系数应该满足什么条件呢?我们现在就来探讨一番!

我们首先讨论一下在什么情况下能够比较容易建立反演公式,之后介绍二项式反演以及它的两个应用,其中一个是错位排列问题

(more…)

Read More

Vim代码自动补全的神器:YouCompleteMe

YouCompleteMe 是一款非常强大的代码自动补全插件。我原先用的是 clang-complete,然后在最近有好几个月没有写东西了,系统一直更新更新到后面 clang-complete 出了一些问题,于是就开始找有什么其它的自动补全插件,然后就听说了 YouCompleteMe 的大名,如果想有比较详细的了解,可以参考它的官方文档,我在这里只是介绍一部分内容以及如何安装。

首先我们来看一段它的演示,你马上就会了解到这是有多强大了!

cpp-demo-of-youcompleteme

(more…)

Read More