python学习笔记之random模块

时间:2023-01-14 22:23:50

random模块

  • 产生随机数

    # 产生随机整数 有a和b两个参数作为变化范围
    print(random.randint(1,10))  # 从1到10
  • 根据随机数种子产生随机小数

    # 设置固定随机种子后 就是假随机了,第一次结果永远固定
    random.seed(10)      # 设置随机数种子
    print(random.random())  # 取(0,1)之间的小数
    
    # 如果不自定义种子,则种子按照当前的时间来
    print(random.random())  # 取(0,1)之间的小数
  • choice函数

    print(random.choice([1,1,2,3,4]))    # 通过choice函数选择列表中的一个数
  • shuffle函数

    lt = [1,2,3,4]
    random.shuffle(lt)    # 通过shuffle函数打乱序列
    print(lt)

使用时间模拟random随机数

import time
time_ = time.time()
print(str(time_).split(".")[-1][-1])    # 使用切割时间尾数的最后一位做随机数

圆周率计算

  • 圆周率近似计算公式

    pi = 0
    k = 0
    while True:       # 使用公式取近似计算
      pi +=  (1/(16**k))* \
             (4/(8*k+1) - 2/(8*k+4) - 1/(8*k+5) - 1/(8*k+6))
      print(pi)
      k += 1
  • 蒙特卡洛方法求圆周率

    import random
    count = 0
    for i in range(100000):
      x, y = random.random(), random.random() // 使用随机数方式撒点
        dist = pow(x ** 2 + y ** 2, 0.5)      // 重要公式
        if dist < 1:
          count += 1
    print(count / 100000 * 4)