我们的任务是重新创建著名的公平硬币翻转 (p=0.5),仅使用bernoulli.rvs()
生成具有均匀离散分布的函数(结果 = 0,1,2)。是否可以只使用伯努利函数形式scipy.stats
?
问问题
84 次
1 回答
0
是的,可以使用接受/拒绝(如您在评论中所述)。我不知道你为什么问这个,因为你似乎知道怎么做,但既然没有人发布实现,你就去吧:
from scipy.stats import bernoulli
import numpy as np
MATCHSET = np.array([[0,0], [0,1], [1,0]])
def gen_uniform_3():
while True:
ary = bernoulli.rvs(1/2, size = 2)
for i in range(3):
if np.array_equal(ary, MATCHSET[i]):
return i
while True
只要生成的对是 ,就会继续尝试,[1,1]
但对于其他三个同样可能的结果,将返回值 0、1 或 2。
于 2021-10-07T04:57:23.890 回答