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)。