我无法理解为所请求的以下概率值找到数学表达式的方法。我得到了一个Python函数,定义为:
def randomFunction(n):
return sum([random.choice([-1,1] for _ in range(n)])
然后要求找到以下概率值:
我为所有三种概率创建了一个蒙特卡罗模拟,以便能够仔细检查我的工作;但是,我不确定如何以数学方式解决这个问题。
我认为第三个问题需要斯特林的近似,因为它被称为“分析估计”。我认为与我如何找到成功的数量以确定概率之间存在脱节。最后,我能够通过推理解决第一个问题,即它的概率为0.0,这是因为当加入和/或减去奇数次数±1时,偶数不能求和。
我觉得这是一个非常基本的问题;但是,我似乎错过了如何处理这个问题。任何帮助/方向将不胜感激!
我的模拟如下,如果有人有兴趣:
import random
# Initialize Counters
count4 = 0
count3 = 0
count0 = 0
# Function that
def randomFunction(n):
return sum([random.choice([-1,1]) for _ in range(n)])
### Simulation for Sum 4 ###
for x in range(10**4):
if randomFunction(25) == 4:
count4 += 1
print "Sum 4 Count: ",count4
print "P(Sum 4): ",float(count4)/10**4
############################
### Simulation for Sum 3 ###
for x in range(10**4):
if randomFunction(25) == 3:
count3+=1
print "Sum 3 Count: ",count3
print "P(Sum 3): ",float(count3)/10**4
############################
### Simulation for Sum 0 ###
for x in range(10**4):
if randomFunction(6000) == 0:
count0+=1
if x%1000==0: # Progress update every 10%
print str((float(x)/10**4)*100)+"%"
print "Sum 0 Count: ",count0
print "P(Sum 0): ",float(count0)/10**4
############################
答案 0 :(得分:1)
(1)为了使randomFunction(25)
返回4,除了1
和1
s的相同数量外,它必须生成四个-1
。
如果要生成总共25个数字,那么它需要获得相等数量的1
s和-1
s 25-4 = 21剩余数字。这在数学上是不可能的。因此,答案是0
(2)让我们使用相同的逻辑:你需要十四1
s和十一-1
s。现在,有2^25
种可能的方法可以生成1
中25个-1
和randomFunction
的列表;并且你需要25个中的11个是一个特定的数字(尽管11个数字并不重要)。因此,有25choose11
种获取这11个数字的方法。超!现在,您需要计算的只是25choose11 / 2^25
(3)与以前相同的逻辑:您现在需要3000 1
和3000
-1
s。所以,计算6000choose3000 / 2^6000