Python 随机数生成指南:从入门到实战343
## 简介
Python 中的随机数模块提供了生成随机数和伪随机数序列的功能。它提供了各种函数和类,可以满足各种场合的随机数需求。
## 基础函数
()
* 生成 [0, 1) 范围内的浮点数。
* 使用 Mersenne Twister 伪随机数算法。
(a, b)
* 生成 [a, b] 范围内的整数(包括端点)。
* 使用 Linear Congruential Generator (LCG) 伪随机数算法。
(start, stop, step)
* 生成指定范围 [start, stop) 内的整数,以指定步长递增。
* 使用 LCG 伪随机数算法。
(sequence)
* 从序列中随机选择一个元素。
* 序列可以是列表、元组、字符串或任何可迭代对象。
## 进阶函数
(a, b)
* 生成 [a, b] 范围内的浮点数(包括端点)。
* 使用 LCG 伪随机数算法。
(mu, sigma)
* 生成服从正态分布(均值为 mu,标准差为 sigma)的浮点数。
* 使用 Box-Muller 算法。
(mu, sigma)
* 生成服从对数正态分布(均值为 mu,标准差为 sigma)的浮点数。
* 使用 Box-Muller 算法。
(alpha, beta)
* 生成服从 beta 分布(形状参数为 alpha 和 beta)的浮点数。
* 使用 Gamma 分布的逆变换抽样方法。
## 种子值
* 随机数发生器使用种子值来初始化其状态。
* 默认情况下,种子值是从系统时钟获取的。
* 可以使用 `()` 函数手动设置种子值,以生成可重复的随机数序列。
## 伪随机数和真随机数
* Python 中的随机数模块生成的都是伪随机数,即由算法计算得出的。
* 真随机数通常来自物理过程,例如放射性衰变或大气噪声。
## 实战案例
掷骰子模拟
```python
import random
def roll_dice():
"""模拟掷一个六面骰子"""
return (1, 6)
num_rolls = 100
results = [roll_dice() for i in range(num_rolls)]
# 统计各个点数出现的频率
counts = [(i) for i in range(1, 7)]
# 打印结果
print("骰子点数频率:", counts)
```
洗牌算法
```python
import random
def shuffle_list(lst):
"""洗牌算法"""
(lst)
return lst
lst = [1, 2, 3, 4, 5]
# 洗牌并打印结果
print("洗牌后的序列:", shuffle_list(lst))
```
生成随机密码
```python
import string
import random
def generate_password(length):
"""生成随机密码"""
chars = string.ascii_letters + + '!@#$%^&*()'
return ''.join((chars) for i in range(length))
password_length = 10
password = generate_password(password_length)
# 打印随机密码
print("随机密码:", password)
```
随机抽样
```python
import random
def sample_without_replacement(population, sample_size):
"""无放回随机抽样"""
return (population, sample_size)
population = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sample_size = 5
# 随机抽取样本并打印结果
print("随机样本:", sample_without_replacement(population, sample_size))
```
2024-12-11
最新文章
2天前
2天前
2天前
2天前
2天前
热门文章
01-10 17:00
01-10 14:16
01-06 17:29
01-03 15:31
12-03 05:01
Perl条件判断:`ne` 与 `!=` 的深度解析——字符串与数值比较的终极指南
https://jb123.cn/perl/71904.html
Perl 返回值深度解析:-1 意味着什么?从错误码到最佳实践
https://jb123.cn/perl/71903.html
Perl XML处理从入门到精通:实战解析、生成与应用技巧全解析
https://jb123.cn/perl/71902.html
Apache服务器与脚本语言:PHP、Python到更多,构建动态Web应用的基石
https://jb123.cn/jiaobenyuyan/71901.html
Perl条件判断深度解析:从if/else到高级技巧,助你代码逻辑清晰如画
https://jb123.cn/perl/71900.html
热门文章
Python 编程解密:从谜团到清晰
https://jb123.cn/python/24279.html
Python编程深圳:初学者入门指南
https://jb123.cn/python/24225.html
Python 编程终端:让开发者畅所欲为的指令中心
https://jb123.cn/python/22225.html
Python 编程专业指南:踏上编程之路的全面指南
https://jb123.cn/python/20671.html
Python 面向对象编程学习宝典,PDF 免费下载
https://jb123.cn/python/3929.html