用for循环n次得到满足条件的n个随机数。
例如:用for循环5次,随机数的取值范围在0到100,输出5个小于20的随机数。
import random
# 初始化一个空列表来存储随机数
random_numbers = []
# 使用for循环循环n次
for i in range(n):
# 生成0到100之间的随机数
random_num = random.randint(0, 100)
# 检查随机数是否小于20
if random_num < 20:
# 将随机数添加到列表中
random_numbers.append(random_num)
# 打印满足条件的随机数列表
print(random_numbers)
不知道你这个问题是否已经解决, 如果还没有解决的话:# 案例:继续玩抛硬币游戏,假如抛硬币5次,求抛出正面朝上次数的概率
# 第1步,定义随机变量:5次抛硬币,正面朝上的次数
n2 = 5 # 做某件事情的次数
p2 = 0.5 # 做某件事情成功的概率(抛硬币正面朝上的概率)
X2 = np.arange(0,n2+1,1) # 做某件事成功的次数(抛硬币正面朝上的次数)
X2
# 第2步,求对应分布的概率:概率质量函数(PMF)
# 返回一个列表,列表中每个元素表示随机变量中对应值的概率
pList2 = stats.binom.pmf(X2,n2,p2)
pList2
'''
第3步,绘图
plot默认绘制折线
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值None表示不显示连接各个点的折线
'''
plt.plot(X2,pList2,marker='o',linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,
竖直线y坐标最小值是0,y坐标值最大值是对应pList2中的值
'''
plt.vlines(X2,0,pList2)
plt.xlabel('随机变量:抛硬币正面朝上的次数')
plt.ylabel('概率')
plt.title('二项分布:n=%i,p=%.2f' % (n2,p2))
plt.show()