zoukankan      html  css  js  c++  java
  • random库的使用

    一、random库介绍

    random库是使用随机数的Python标准库

    • 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
    • random库主要用于生成随机数
    • 使用random库:import random

    1.1 random库概述

    random库包括两类函数,常用共8个

    • 基本随机数函数: seed(), random()
    • 扩展随机数函数:randint(), getrandbits(), uniform(),randrange(), choice(), shuffle()

    二、基本随机数函数

    2.1随机数种子

    [026-模块3-random库的使用-01.jpg?x-oss-process=style/watermark]

    函数 描述
    seed(a=None) 初始化给定的随机数种子,默认为当前系统时间
    random() 生成一个[0.0, 1.0)之间的随机小数
    import random
    
    random.seed(10)  # 产生种子10对应的序列
    random.random()
    

    结果:0.5714025946899135

    random.random()
    

    结果:0.4288890546751146

    random.seed(10)
    random.random()
    

    结果:0.5714025946899135

    三、扩展随机数函数

    026-模块3-random库的使用-02.jpg?x-oss-process=style/watermark

    函数 描述
    randint(a,b) 生成一个[a, b]之间的整数
    randrange(m, n[, k]) 生成一个[m, n)之间以k为步长的随机整数
    getrandbits(k) getrandbits(k)
    uniform(a, b) 生成一个[a, b]之间的随机小数
    choice(seq) 从序列seq中随机选择一个元素
    shuffle(seq) 将序列seq中元素随机排列,返回打乱后的序列

    eg: randint()

    import random
    
    random.randint(10, 100)
    

    结果:60

    eg:randrange()

    import random
    random.randrange(10, 100, 10)
    

    结果:80

    eg:getrandbits()

    import random
    random.getrandbits(16)
    

    结果:37885

    eg:uniform()

    import random
    random.uniform(10, 100)
    

    结果:11.334920142209832

    eg:choice()

    import random
    random.choice([1, 2, 3, 4, 5, 6, 7])
    

    结果:5

    eg:shuffle()

    import random
    s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    random.shuffle(s)
    print(s)
    

    结果:[3, 9, 7, 4, 1, 2, 6, 5, 8]

    3.1 随机函数的使用

    需要掌握的能力

    • 能够利用随机数种子产生"确定"伪随机数
    • 能够产生随机整数
    • 能够对序列类型进行随机操作

    四、圆周率的计算

    1. 蒙特卡洛方法

    027-实例6-圆周率的计算-02.jpg

    from random import random
    from time import perf_counter
    
    DARTS = 1000 * 1000
    hits = 0.0
    start = perf_counter()
    a
    for i in range(1, DARTS + 1):
        x, y = random(), random()
        dist = pow(x**2 + y**2, 0.5)
        if dist <= 1.0:
            hits = hits + 1
            
    pi = 4 * (hits / DARTS)
    print("圆周率值是: {}".format(pi))
    print("运行时间是: {:.5f}s".format(perf_counter() - start))
    
    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    shell、cmd、dos和脚本语言杂谈(转)
    windows命令之PING DIR DEL CD TASKLIST (转)
    STM32的操作过程,寄存器配置与调试过程(转载)
    关于MCU的烧录,下载与其他接口的比较(一)
    关于Spring Security 3获取用户信息的问题
    Spring security 获取当前用户
    Spring Security3实现,权限动态获取
    Spring Security教程
    spring security 3 自定义认证,授权示例
    SpringSecurity自定义过滤器
  • 原文地址:https://www.cnblogs.com/randysun/p/11202474.html
Copyright © 2011-2022 走看看