python学习笔记之random模块

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)
    

posted @ 2019-07-25 08:51  正在学习的Barry  阅读(178)  评论(0编辑  收藏  举报
-->