码迷,mamicode.com
首页 > 编程语言 > 详细

Python之random学习

时间:2019-06-07 19:11:34      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:top   strong   sim   角度   style   start   art   其他   随机数   

  random库是用于产生并运用随机数的标准库

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

一、调用语句:

 

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库并不难学,只要熟悉了函数,就能够很快上手帮助自己解决问题的

 

Python之random学习

标签:top   strong   sim   角度   style   start   art   其他   随机数   

原文地址:https://www.cnblogs.com/000cxl000/p/10988786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!