与之前所述的伯努利过程和泊松过程不同, 马尔科夫过程是有记忆的. 不过马尔科夫过程记忆力也没有特别好: 未来的状态只与现在状态有关系, 而与过去的状态无关.
我们可以把它看成这个公式:
也就是说, 在考虑到噪声影响下, 未来状态部分程度上取决于现在状态.
想象你是一个银行的保安, 银行经理有一天给你安排了一个任务, 要求你统计每分钟之内是否有人到达银行, 然后他就可以根据哪些分钟有人进来确定一天有多少人什么时候来到银行. 但是统计的时候, 他的助手突然问到万一一分钟之内来了不止一个人, 那这个统计不就不准确了吗? 经理觉得很有道理, 问助手怎么办. 助手很得意的说, 我们可以一秒统计一次, 银行经理感觉很好, 第二天把这个任务又交给了你. 你听到这个一秒一次统计的任务后, 心中一万只XXX跑过, 但是随即对经理说, 我可以统计每个到达顾客的间隔时间吗? 来一个人, 我记下他的时间, 然后又来一个人, 我又记下他的达到时间. 银行经理恍然大悟, 并且让你和他的助手调换了职位.
上面这个故事, 就是伯努利过程到泊松过程的变化.
伯努利过程考虑的是某个时间段内是否到达, 泊松过程考虑的是某个时间段内有多少个到达. 伯努利过程将时间离散化, 泊松过程考虑的是连续的时间段.
伯努利过程可视为独立投掷硬币的序列, 每次正面概率为p, 0 < p < 1. 伯努利过程由一串伯努利试验组成. 伯努利过程经常用来对下面这些系统建模: 顾客到来, 服务器收到一个请求. 时间常常被离散化为若干时间段, 在一个时间段中, 只要有顾客到达, 就认为这个时间段试验成功. 因此, 我们常常使用到达而不是成功.
MIT的教授讲到伯努利抛硬币的时候, 讲了一个小笑话. 伯努利搞了一堆公式定理, 但是伯努利不是一个人, 而是伯努利家族, 可以想象一群伯努利在饭桌上掷骰子玩.
前面介绍了随机变量, 这里进入随机过程的介绍.
随机过程与随机变量的概率没有本质区别, 我们可以把随机过程看做一串随机变量的序列, 而且这些随机变量有时间上的先后顺序. 一般来说, 对于随机过程:
这里介绍一些概率论的深入内容. 多个随机变量的分布问题, 独立随机变量的和还有更多随机变量之间关系的内容.
在概率论中, 如果能建立起一个空间的概念, 那么理解很多东西将会事半功倍. 关于这方面的内容, 前面已经多有涉及, 这里给这个问题最后一击.
终于到继承了. 但是JavaScript几乎和所有其他语言的继承都不一样, 因为JavaScript没有类啊. JavaScript使用原型继承.
参考文献:
JavaScript的对象有一个特殊的属性[[Prototype]]
, 表示一种继承属性, 仅仅表示某对象从哪里继承, 它是内置的, 不可直接访问的. 不过可以使用__proto__
属性访问, ES6开始可以分别用Object.getPrototypeOf()
和Object.setPrototypeOf()
来读写. 所以__proto__
可以理解为[[Prototype]]
的getter
和setter
.