如果一个随机变量具有概率密度函数

\begin{align*} f(x)=\frac{1}{\sqrt{2\pi} \sigma} e^{-\frac{(x-\mu)^2}{2\sigma^2}}, \quad -\infty < x < \infty \end{align*}

则称X为正态随机变量并记为$X \sim N(\mu, \sigma^2)$.这里N 为“Normal” 一词的首字母.$\mu, \sigma$ 都是常数,$\mu$ 为均值,可以取任何实数值, 而$0 < \sigma^2 < \infty$ 为方差,$\sigma$ 称为标准差。这种分布我们称之为正态分布,德国数学家Gauss率先将其应用于天文学研究,故正态分布又叫高斯分布

B树的定义


B树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡搜索树,如下图。B树是Bayer 和 McCreight在1972年提出来的,但是他们并没有解释为什么取名为B树。B树类似于红黑树, 但它们在降低磁盘I/O操作数方面要更好一些。许多数据库系统使用B树或者B树的变种如B+树来存储信息。B树与红黑树的不同之处在于B树的结点可以有很多孩子,从数个到数千个。也就是说,一个B树的“分支因子”可以相当大,尽管它通常依赖于所使用的磁盘单元的特性。B树类似于红黑树,就是每棵含有n个结点的B树的高度为O(log[n])。然而,一棵B树的严格高度可能比一棵红黑树的高度要小许多,这是因为它的分支因子,也就是表示高度的对数的底数可以非常大。因此,我们也可以使用B树在时间O(log[n])内完成一些动态集合的操作。


傅里叶变换

\begin{align*} \widehat{f}(w) =& \int_{-\infty}^{+\infty} f(x) e^{-ixw} dx \\ =&\int_{-\infty}^{+\infty} f(x) (\cos wx - i\sin wx) dx \\ =& \int_{-\infty}^{+\infty} f(x) \cos wx dx  - i \int_{-\infty}^{+\infty} f(x) \sin wx dx \qquad (1) \end{align*}

我们先聊生日悖论问题,后面再看看什么是生日攻击。

这是前几年的随笔,分享下。一家人带着不到三岁的女儿在厦门科技馆玩耍。 在科技馆玩了一天,最后一个项目是女儿自己进入和小朋友们一起玩,大人在外面等候。

一个点在x 轴行走,起始点在原点,每次走 1 格,每次的方向随机或正或负,概率均为1/2。行走 n 步后,预期该点相对原点的绝对距离是多少呢?

golang 中的  poolDequeue 是 ring buffer 的一种实现. ring buffer 是一种无锁循环队列。这里的 poolDequeue 仅支持1个生产者,但可以有多个消费者(通过 CAS 实现),因为无锁,所以性能非常好。ring buffer 这里不展开,网上很多资料。


这里重点通过 eface 和 dequeueNil 来阐明golang 中的 interface{} 是由 type 和 value 2个机器字组成。当 type 和 value 都为nil(即null ) 时, 才为 nil 的interface;当 type!=nil,value==nil 时,不是 nil 的interface.


与归并排序一样,快速排序也使用了分治思想。下面是对一个典型的子数组A[p..r] 进行快速排序的三步分治过程:


分解:数组A[p..r]被划分为两个(可能为空)子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q+1..r]中的每个元素。其中,计算下标q也是划分过程的一部分。


解决:通过递归调用快速排序,对子数组A[p..q-1]和A[q+1..r]进行排序。


合并:因为子数组都是原址排序的,所以不需要合并操作:数组A[p..r]已经有序。


在常见的分布式系统中,总会发生诸如机器宕机或网络异常(包括消息的延迟、丢失、重复、乱序,还有网络分区)等情况。Paxos算法需要解决的问题就是如何在一个可能发生上述异常的分布式系统中,快速且正确地在集群内部对某个数据的值达成一致,并且保证不论发生以上任何异常,都不会破坏整个系统的一致性


证明:当概率均等时信息熵最大。即当 $p_i=\frac{1}{n}$ 时,下面的 H 取得最大值。


\[H=-\sum\limits_{i=1}^{n} p_i log {p_i}=\log n\]