【Python 基础教程】Python生成随机数

简介: 【Python 基础教程】Python生成随机数

前言


生成随机数一般使用的就是random模块下的函数,生成的随机数并不是真正意义上的随机数,而是对随机数的一种模拟。random模块包含各种伪随机数生成函数,以及各种根据概率分布生成随机数的函数。今天我们的目标就是摸清随机数有几种生成方式。


一、随机数种子


为什么要提出随机数种子呢?咱们前面提到过了,随机数均是模拟出来的,

想要模拟的比较真实,就需要变换种子函数内的数值,一般以时间戳为随机函数种子。

例如以下案例,将随机数种子固定的时候,生成的随机数也将固定。

系统默认以时间戳为种子进行随机数的生成。

单一时间戳

fe762eccae8648d59e023d18ad5031b8.png

随机时间戳

fffbc8a6c9b04f6bb69e8f31e32aeb3c.png

第一次结果

bdceb539751240748f3ea118e72bdad9.png

第二次结果

0ccd1cdb73f74ecf8fdf192157036ef3.png


二、生成随机数


以下一生成10个1-100的随机数为例
• 1


1.random()


生成[0-1)的随机数为float型。后面的大部分函数都是基于这个函数进行随机数生成的

想要生成响应区域的随机数可以使用这个函数乘以一个对应的整数


from random import *
for i in range(10):
    print(int(random()*100+1),end=" ")
print()


2.ranint(a,b)


随机生成一个a-b的整数

from random import *
for i in range(10):
    print(randint(1,100),end=" ")


3.randrange(start,stop [,step])


有起始、终止、步长三大要素,在生成随机数的时候包括下限不包括上限。


from random import *
for i in range(10):
    print(int(randrange(1,101)),end=" ")


4.getrandbits(k)


返回一个随机整数,整数的位长为k位。

from random import *
for i in range(10):
    print(int(getrandbits(4)),end=" ")


三、生成随机序列


1.choice(seq)


从给定的序列中随机抽取一个


代码如下:


from random import *
test=[12,3,1,2,33,21]
for i in range(10):
    print(choice(test))


2.samplex(序列,k)


从序列中随机抽取k个元素,这k个元素不会重复。(需要满足len(序列)>=k)


代码如下:


from random import *
test=[1,23,3,22,13]
print(sample(test,3))


3.shuffle(x[,random])


这个函数的目的就是随机排序,在原序列的基础上进行排序


代码如下:


from random import *
test=[1,23,3,22,13]
shuffle(test)
print(test)


目录
相关文章
|
5天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 4
SciPy 教程之 SciPy 稀疏矩阵 4:介绍稀疏矩阵的概念、类型及其在科学计算中的应用。SciPy 的 `scipy.sparse` 模块提供了处理稀疏矩阵的工具,重点讲解了 CSC 和 CSR 两种格式,并通过示例演示了如何创建和操作 CSR 矩阵。
25 3
|
1天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
9 2
|
2天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
12 3
|
2天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
9 1
|
6天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 2
SciPy教程之SciPy稀疏矩阵2:介绍稀疏矩阵的概念、应用场景及scipy.sparse模块的使用。重点讲解CSC和CSR两种稀疏矩阵类型及其常用方法,如data属性和count_nonzero()方法。
30 4
|
13天前
|
Python
SciPy 教程 之 SciPy 模块列表 7
`scipy.constants` 模块提供了常用的时间单位转换为秒数的功能。例如,`constants.hour` 返回 3600.0 秒,表示一小时的秒数。其他常用时间单位包括分钟、天、周、年和儒略年。
14 6
|
10天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
14 1
|
12天前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
11 1
|
12天前
|
Python
SciPy 教程 之 SciPy 模块列表 8
SciPy教程之常量模块单位类型介绍。该模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例展示了部分长度单位的转换值,例如英寸、英尺、海里等。
13 1
|
3天前
|
算法 索引 Python
SciPy 教程 之 SciPy 图结构 3
SciPy 图结构教程:介绍图的基本概念、节点和边的定义,以及如何使用 SciPy 的 `scipy.sparse.csgraph` 模块处理图结构。重点讲解 Dijkstra 最短路径算法及其在 SciPy 中的应用,包括 `dijkstra()` 方法的参数设置和使用示例。
8 0