c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python 生成一组均匀分布的随机数

更新时间:2023-12-10

Python 生成一组均匀分布的随机数

在Python中,我们可以通过使用random模块来生成随机数。

import random

将会导入Python 随机数生成模块。这个模块提供了大量的随机数生成函数,包括生成整数、虚数、序列和随机选择等。如果想要生成均匀分布的随机数,可以使用random模块中的uniform()方法。

result = random.uniform(start, end)

其中,start是分布区间的起始点,end是分布区间的终止点,生成一个[a,b]范围内的均匀分布随机数。

四种生成均匀分布随机数的方法

1. 使用random.randint()

random.randint()是返回a和b之间的整数,其中both end points都是合法值。无论a和b是任何整数,它们都是均匀分布。 例如,生成10个1到100之间的随机数:

import random
res = []
for i in range(10):
    res.append(random.randint(1, 100))
print(res)

2. 使用random.random()

random.random()函数生成0~1之间的随机小数,且结果包含0和1本身,所以需要将生成的随机小数变换到所需的区间。例如,生成10个1到100之间的随机数:

import random
res = []
for i in range(10):
    res.append(int(random.random() * 100) + 1)
print(res)

3. 使用numpy.random.rand()

numpy.random.rand()函数生成0~1之间均匀分布的随机数。可以使用scale和size参数来控制生成随机数的个数和范围。例如,生成10个1到100之间的随机数:

import numpy as np
res = np.random.rand(10) * 99 + 1
print(res.astype(int))

4. 使用numpy.random.uniform()

numpy.random.uniform()函数生成指定区间[a,b]内均匀分布的随机数。可以使用size参数来控制生成随机数的个数和范围。例如,生成10个1到100之间的随机数:

import numpy as np
res = np.random.uniform(1,101,10)
print(res.astype(int))

总结

通过random模块和numpy模块中函数的学习,可以生成均匀分布的随机数。其中random中函数的使用比较简单,直接使用定义好的random函数可以快速生成均匀分布的随机数;而Numpy中提供的函数相对复杂一些,需要掌握scale、size等参数或者API才能生成所需的均匀分布随机数。总的来说,通过合理使用随机数生成库提供的API,可以更加方便的生成所需的均匀分布的随机数,从而达到优化代码的目的。