program-dog

2017年5月22日星期一

有理数和无理数分布问题(一)

中学的时候就大概知道实数,还以为这个问题很简单。现在又学了《数学分析》,才惊叹用了这么多年的实数,到底是个什么鬼? 戴德金定义了一种分割,将全体有理数划分成两个非空集合$A$,$A'$,则满足$1.$任意有理数,必在且仅在$A$与$A'$二集之一中出现。$2.$集$A$内的任一有理数$a$必须小于集$A'$内的任一有理数$a$.$A$叫做上组,$A'$叫做下组。 现在想象一个数轴,在这个数轴上标记一个点$s$,如果这个点是有理数,那么以$s$作为分割,大于等于$s$的数归为上组,剩下的归为下组,在上组中,有最小值$s$,在下组中,无最大值,我们就定义了一个划分。这个划分确定了有理数$s$。 我们用这种方式能否定义数轴上任意一个点呢?考虑以$r$的划分,其中$r^2\verb|<|2$的划分放在$A$中,$r^2>2$的划分放在$A'$中,问题是$r$可以放在上组或者下组里面吗?考虑正整数$n$,

2017年5月16日星期二

求解n!的近似,斯特林公式(Stirling)的推导

在排列组合中,$n!$的求解是不厌其烦的被用到,用高性能的计算机一个一个的求解也会花费$O(n)$的时间。有没有一种办法找到一个近似于$n!$的公式呢?下面的推导过程可能很low,但是蕴涵的数学思想还是值得学习的。

2017年5月14日星期日

时间复杂度为1的求解fibonacci数方法

求Fibonacci数可以用一种通用的方法,得到时间复杂度为O(1)的解,下面是一个例子。这个公式涉及到求n次方问题,如果你自己写了一个n次方的函数,复杂度可能是O(n)或者O(lgn)了,在Java上,源码是用了C的类库,优化后可以认为复杂度为O(1)。