从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,计算机不能产生真正的随机数,只能产生伪随机数

一、调用语句: 

import random # python中的随机数生成模块

 二、基本随机数函数

(一)seed(a):设置初始化随机种子,可重现相同随机数序列,与其他函数配套使用

使用:

random.seed(a)

设置random包的seed值,该值对于生成随机数至为重要,a取整数或浮点数不设置时默认以系统时间为种子

(二)random():下述

 

二、扩展随机数函数

函数功能主要分为:

(一)获取随机小数

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

In:

import random
x = random.random()
print(x)

Out:

>>0.8268016072790678

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

In:

import random
x = random.uniform(10, 20)
print(x)

Out:

>>17.744508676671582

(二)获取随机整数

  1. randint(a,b):生成一个[a,b](b>a)之间的随机整数(仅按域的要求获得随机整数)

In:

import random
x = random.randint(10, 20)
print(x)

Out:

>>12

  2.getrandbits(k):生成一个k比特长度的随机整数 (按存储大小的要求获得随机整数)

In:

import random
x = random.getrandbits(3)
#随机生成二进制长度为3位的十进制整数(0-7)
print(x)

Out:

>>5

  3.randrange(start,stop[,step]):生成一个[start,stop)之间以step为步数的随机整数 (按域、步长的要求获得随机整数)

In:

import random
x = random.randrange(10, 100, 2)
#相当于从序列[10, 12, ..., 96, 98]中随机返回一个数。
print(x)

Out:

>>62

(三)对序列类型进行随机操作

  1. choice(seq):从序列类型seq(如字符串,列表,元组)中随机返回一个元素(用于序列抽1签)

In:

import random
x = random.choice(["i", "love", "Math"])
print(x)

Out:

>>Math

  2.shuffle(seq):将序列类型seq中元素随机排序,返回打乱后序列,seq被改变(用于序列洗牌)

In:

import random
x = ['python', 'is', 'powerful', 'simple', '.']
random.shuffle(x)
print(x)#会修改原有序列

Out:

>>['is', 'powerful', 'simple', '.', 'python']

  3.sample(pop,k):从序列类型pop中选取k个元素,以列表类型返回(用于序列抽K签,存入列表)

In:

import random
list = [1, 2, 3, 4, 5, 6, 7]
x = random.sample(list, 5)
# 从list中随机选取5个元素,生成一个新的list并返回
print("改变后序列:",x)
print("原序列:",list)#原序列不改变

Out:

>>改变后序列: [2, 1, 4, 5, 7]
原序列: [1, 2, 3, 4, 5, 6, 7]

 最后:random库找随机数在一些算法中使用最多,譬如遗传算法找遗传因子,找最优路径时先生成随机路径再优化等等。而且random库并不难学,只要熟悉了函数,就能够很快上手帮助自己解决问题的