zoukankan      html  css  js  c++  java
  • python学习笔记(8)--random库的使用

    伪随机数:采用梅森旋转算法生成的伪随机序列中元素

    使用random库

    一、基本随机函数

    随机数需要一个种子,依据这个种子通过梅森旋转算法产生固定序列的随机数。
    seed(a=None)  初始化给定的随机数种子,默认为当前系统时间

    random()   生成一个[0.0,1.0)之间的随机小数

    >>> import random
    >>> random.seed(5)
    >>> random.random()
    0.6229016948897019
    >>> random.random()
    0.7417869892607294
    >>> random.seed(5)
    >>> random.random()
    0.6229016948897019

    使用seed主要是在某些系统各种,根据这个随机种子,可以复现问题,如果不使用种子,则默认为当前系统的精度很大的时间,这个无法再重现。

    二、扩展随机函数

    randint(a,b)             生成一个[a,b]之间的整数

    randrange(m,n[,k])  生成一个[m,n)之间以k为步长的随机整数

    getrandbits(k)         生成一个k比特长的随机整数

    uniform(a,b)           生成一个[a,b]之间的随机小数

    choice(seq)            从序列seq中随机选择一个元素

    shuffle(seq)           将序列seq中元素随机排列,返回打乱后的序列

    >>> random.randint(0,100)
    94
    >>> random.randrange(0,100,10)
    50
    >>> random.uniform(0,100)
    69.04468457583359
    >>> random.getrandbits(16)
    52113
    >>> random.choice([1,2,3,4,5,6,7])
    7
    >>> s=[1,2,3,4,5,6,7]
    >>> random.shuffle(s)
    >>> s
    [4, 3, 5, 7, 2, 1, 6]

    三、圆周率计算问题

    圆周率的计算,除了使用一个复杂的数学公式外,还可以通过计算机来模拟最初圆周率的计算方法蒙特卡罗方法。蒙特卡罗方法是指随机的在这个圆所在的正方形中撒粒子,然后计算圆中粒子的个数,依次来计算圆的面积,或者圆周率。那么现在计算机这个聪明,我们就可以通过计算机来模拟随机粒子,来计算圆周率。代码如下:

    #getPi.py
    from random import random
    from time import perf_counter
    DARTS = 1000*1000
    hits=0.0
    start=perf_counter()
    for i in range(1,DARTS):
         x, y = random(),random()
         dist = pow(x**2 + y**2, 0.5)
         if dist <= 1.0:
               hits +=1
    pi = 4 *(hits/DARTS)
    print("圆周率是:{}".format(pi))
    print("运行时间为:{:.5f}s".format(perf_counter() - start))
  • 相关阅读:
    C语言基础学习8:指针数组
    C语言基础学习7:返回指针值的函数
    C语言基础学习6: 指向函数的指针
    C语言基础学习5:字符串与指针
    C语言基础学习4:数组与指针
    C语言基础学习3:指针
    python 入门 之二 列表 元组 字典 字符串 集合的定义及基本操作
    python入门之路 一
    whl格式 和egg格式
    python 连接mongodb ,并将EXCEL文档导入mongodb
  • 原文地址:https://www.cnblogs.com/xingmuxin/p/8917289.html
Copyright © 2011-2022 走看看