怎么理解这样一种编程思路

我们在看别人的代码时,常常能看到这样的设计思想:

(1)在一个连续分配内存的过程中,第一次分配N字节,当内存耗尽后,继续分配2N字节,依次类推

(2)在爬虫对网页进行重访时,如果第一次revisit,网页没有变化,下一次revist的周期为T,如果下一次依然没有变化,则周期为2T,直到一个最大重访阈值。

策略在调整时采用X,2X,4X,...的序列。

当然,我们还会看到这样的代码

(1)第1次分配N字节,第二次分配N字节,第三次分配2N字节,第三次分配3N字节,这样的斐波那契数列。

因此这种策略可以看做是采用X1,X2,X1+X2的这种序列。

他们的差别在哪里呢?内在的含义其实是经验主义,第一种,每次策略的增加仅仅参考上一次的情况,而与上上次无关,而斐波那契数列的好处是不仅参考上一次还参考了上上次,是上一次和上上次的一个线性叠加后的结果。

在自然语言处理中有经验主义和理性主义两种思想,以后博文中再行介绍,通过这个例子,我们可以将第一种类型看做是1阶情况,而第二种类型看做是2阶情况。这个话题就写到这里,以后还会继续深入讨论。

你可能感兴趣的:(编程)