欢迎访问宙启技术站
智能推送

Python中uniform()函数与random()函数的比较与区别

发布时间:2024-01-07 07:32:05

uniform()函数和random()函数都是Python中random模块中的函数,都用于生成随机数。但是两者的使用方式和生成的随机数的特点有所不同。

uniform()函数用于生成在指定范围内的随机浮点数,其函数原型为:

random.uniform(a, b)

其中a和b分别为指定范围的上下界,函数会生成一个位于[a, b]之间的随机浮点数,包括a和b。

例如,我们要生成在区间[1, 10]之间的随机浮点数,可以使用uniform()函数:

import random

x = random.uniform(1, 10)
print(x)

运行上述代码,每次会在区间[1, 10]内生成一个随机浮点数。例如,可能输出的结果为:4.738.

相比之下,random()函数用于生成一个[0.0, 1.0)范围内的随机浮点数,函数原型为:

random.random()

random()函数不需要指定范围上下界,每次调用random()函数都会生成一个[0.0, 1.0)范围内的随机浮点数。

例如,我们要生成一个[0.0, 1.0)范围内的随机浮点数,可以使用random()函数:

import random

x = random.random()
print(x)

运行上述代码,每次会生成一个[0.0, 1.0)范围内的随机浮点数。例如,可能输出的结果为:0.548.

所以,uniform()函数和random()函数的比较与区别主要体现在以下几个方面:

1. 区间范围不同:uniform()函数需要指定范围的上下界,而random()函数生成的随机数范围固定在[0.0, 1.0)之间。

2. 使用方式不同:uniform()函数需要传入参数指定范围的上下界,而random()函数不需要传入参数。

3. uniform()函数生成的随机数可以是浮点数,而random()函数生成的随机数只能是浮点数。

下面是一个使用uniform()函数和random()函数生成100个随机数的例子:

import random

# 使用uniform()函数生成100个[1, 10]范围内的随机浮点数
uniform_numbers = [random.uniform(1, 10) for _ in range(100)]

# 使用random()函数生成100个[0.0, 1.0)范围内的随机浮点数
random_numbers = [random.random() for _ in range(100)]

print("Uniform numbers:", uniform_numbers)
print("Random numbers:", random_numbers)

运行上述代码,会分别生成100个在范围[1, 10]和[0.0, 1.0)内的随机浮点数,并输出结果。

通过比较可见,uniform_numbers列表中的浮点数都在指定的范围内,而random_numbers列表中的浮点数都在[0.0, 1.0)范围内。