Python向随机数据 嵌套随机

179 阅读1分钟

1.生成一定范围的随机小数

可以用来随机体温

#Python-生成一定范围的随机小数
import random
A=0
B=1#小数的范围A ~ B
a=random.uniform(A,B)
C=2#随机数的精度round(数值,精度)
print(round(a,C))

这种随机还是不太合适,还比如随机体温,允许有体温稍微高一点的,那么a=35,b=37.5,就会出现不少36.8-37.5的,这么多体温过高的不是我们想要的,这时就需要加权随机

我自己想的 嵌套随机

import random
i1 = 0
i2 = 10
while i1 < i2: 
    # 先随机权重
    n = random.uniform(0,10) 
    # print(n)
    if n <= 9:
        print("戴口罩")
    else:
        print("没戴")
    i1 += 1 

这样 随机10次就有90%的几率是戴口罩 只有10%的几率是没戴口罩

想加权重只需要多几个if就可以

import random

i1 = 0
i2 = 10
while i1 < i2: 
    # 先随机权重
    n = random.uniform(0,10) 
    # print(n)
    if n <= 8:
        print("戴口罩")
    elif 8 < n < 9.5:
        print("没戴")
    elif 9.5 <= n:
        print("没看见")
    i1 += 1 

    

像这样 随机10次就有80%的几率是戴口罩 有15%的几率是没戴口罩 还有5%的几率是没看见

进阶为随机体温
如果是随机来访人员体温
我们允许100个人中,有一个体温是不正常的(大于37小于40)
其他99个都是35-36.9

import random

i1 = 0
i2 = 100

while i1 < i2: 
    # 先随机权重
    n = random.uniform(0,10) 
    # print(n)
    if n < 9.9:
        temp = random.uniform(35,36.9)#随机一个35-36.9的小数
        temp_1 =  round(temp,1)#保留一位小数
        print(temp_1) 
    else:
        print(round(random.uniform(37,40),1))
    i1 += 1