Tricks(二十一)—— 随机数

来源:互联网 发布:超人幻想 知乎 编辑:程序博客网 时间:2024/05/22 07:00

本文关于随机数生成的相关操作,都是从 [0,1] 区间上的均匀分布(uniform distribution)而来。

0-1区间上的均匀分布,对应与 python 语言的 random 标准库下的 random 函数;

import random

1. 产生 [a, b] 上的均匀分布

其实更广泛意义上说,从 0-1 区间上的均匀分布,产生任意区间的均匀分布

产生 [a, b] 上的均匀分布,如 5-10,

a+(ba)U

a+(b-a)*random.random()

2. 原始价格上随机加减20%

该问题可转化为第一个问题,产生 [-0.2, 0.2] 上的均匀分布;

# -0.2 + 0.4*random.random()price += price*(-0.2 + 0.4*random.random())

或者转化为原始价格的 0.8 或者 1.2 倍,也可进一步转化为:

price *= 0.8 + 0.4*random.random()
0 0