python编写模拟硬币投掷_在Python中模拟硬币翻转实验我⽆法让程序正常运⾏。⽬标是模拟硬币翻转如下:
考虑⼀个随机的数字序列:epsilon_1, epsilon_2, ... , epsilon_N。此序列中的每个术语都取值+1或-1,具体取决于硬币抛掷实验的结果,分别是头部或尾部。
换句话说,for each n = 1,2,...,N:
epsilon_n = { +1 with probability = 1/2; and -1 with probability = 1/2.
现在,我写了⼀些伪代码来帮助我编写这个程序:
# for n = 1,2,...,N:
# flip coin
# if result == "Heads"
# epsilon_{n} = 1
# else:
# epsilon_{n} = -1
我想在数组中为每个n(因此,每个n的实验结果)存储epsilon的值。这是我写的希望实现这个⽬标的程序:
# array to store outcome of the coin flip
epsilon = np.zeros(N)
# define coin flip experiment
result = [] # result of the experiment
for n in xrange(1, N):
def coin_flip(): #flip coin for each n = 1,...,N
flip = random.randint(0,2)
if (flip == 0):
result = "Heads"
else:
result = "Tails"
return result
if result == "Heads":
epsilon[n] = 1
else:
random在python中的意思
epsilon[n] = -1
print epsilon
此程序的输出是⼀个数组,第⼀个条⽬为0,所有其他条⽬包含值-1。我指定了N = 100。
请,我需要⼀些指导。例如,我认为我正在为硬币抛掷实验定义⼀个功能。我需要它来返回实验结果(Heads or Tails),并且每个n = 0,1,...,N都需要这样做,但我不确定这样做的最佳⽅法。然后,对于每个单独硬币翻转的结果,我的程序必须将值+1或-1存储在epsilon的数组中。我必须包含n作为我提
出的函数的参数吗?我在这⾥⾛在正确的轨道上吗?
⾮常感谢任何和所有帮助。提前谢谢!
编辑:所以我只是想指出我没有忘记导⼊像numpy和随机的库。这些都包含在我的原始代码中,但这实际上是较⼤程序的⼀部分,所以当我复制并粘贴这段代码时,import random和import numpy被遗漏了