用R语言来验证大数定理
本人对数学很感兴趣,苦于数学定理公式让人生畏,一直想用简单的、通俗的方式来展现数学的魅力,学习R语言有一段时间,感觉可以用这个工具来验证一些数学定理,也算是一种乐趣,说干就干,先来个简单一点的吧
大数定理:
在随机事件的大量重复出现中,往往呈现几乎必然的规律,这个规律就是大数定律。通俗地说,这个定理就是,在试验不变的条件下,重复试验多次,随机事件的频率近似于它的概率。比如,我们向上抛一枚硬币,硬币落下后哪一面朝上本来是偶然的,但当我们上抛硬币的次数足够多后,达到上万次甚至几十万几百万次以后,我们就会发现,硬币每一面向上的次数约占总次数的二分之一,偶然中包含着某种必然。
验证代码:
big_num<-function(n=1000)
{
count<-0
for(i in 1:n)
{
if(sample(c(0,1),1)==1) count<-count+1 ##随机从0、1中抽样,统计等于1的个数
}
return(count/n) ##返回1出现的频率
}
运行结果:
> big_num()
[1] 0.49
> big_num(10000)
[1] 0.5027
> big_num(100000)
[1] 0.49872
> big_num(1000000)
[1] 0.499487
> big_num(10000000)
[1] 0.4997597
>
果然随着实验次数的增多,1出现的频率近似为每次实验的概率(0.5)