说我有一些号码n==4
。假设我从[0, 10]
范围内统一绘制了一些m
。让p
被定义为(n+m)
资金的长期(比如,1024个)名单:如何从一个范围内的数字和随机样本中找出一个数字?
from __future__ import division
import random
myRand = random.SystemRandom()
n = 4
p = []
guess = []
guess_sum = 0
for i in range(1024):
m = myRand.randint(0, 10)
p.append(n + m)
guess.append(p[i] - 5)
guess_sum += guess[i]
如果猜测者知道从哪个m
绘制,那么他们可以减去此范围内的平均范围,因为平均值是均匀随机分布的中心。在我们的例子中,这对应于行:
guess.append(p[i] - 5)
我们可以验证这种方法通过采取guess[]
数字的平均产生的隐藏号码n
的一个很好的估计:
print("average of entries in guess[] is: ")
print(guess_sum/1024)
对于例如,我得到如下结果:3.9365234375, 3.9619140625, 4.177734375, 3.763671875, 4.0439453125
。根据预期,随着样本数量增加超过1024
,我们预计我们的结果范围将在4
左右收紧。
我的问题 - 如果她不知道m
的绘制范围,一个猜测者如何恢复隐藏的数字n
?假设m
从每个实验的相同范围绘制,并且n
从不改变。
我知道有人必须回答这个问题,但我很难于如何前进。谢谢!
你应该考虑在问这个上math.se甚至更好stats.se – ShreevatsaR
顺便说一句,答案是,你不能,一般来说:如果你采取统一分布在[0,10]上,并将它翻译为4,就可以得到[4,14]上的均匀分布,这与[3,13]上的均匀分布并将其翻译为1是不可区分的。所以除非你有一些比U([3,13])更喜欢U([0,10])的方法,否则这个问题没有唯一的答案。 – ShreevatsaR