Python - AI 助手

Python random.expovariate() 方法



Python 中的random.expovariate()方法生成符合指数分布的随机数。指数分布是一种连续概率分布,通常用于模拟泊松过程中事件之间的时间。它由参数lambda(速率参数)来表征。

参数lambda等于1.0除以所需的分布均值。如果lambda为正,则函数返回从0到正无穷大的值,表示事件之间的时间。如果lambda为负,则它将返回从负无穷大到0的值。

语法

以下是expovariate()方法的语法:

random.expovariate(lambda)

参数

此方法接受单个参数:

  • lambda: 这是指数分布的速率参数。

返回值

此方法返回符合指定速率的指数分布的随机数。

示例 1

让我们来看一个使用random.expovariate()方法生成单个随机数的基本示例。

import random

# Lambda for the Exponential distribution
lambda_ = 2

# Generate a random number from the Exponential distribution
random_value = random.expovariate(lambda_)

print("Random value from Exponential distribution:", random_value)

以下是输出结果:

Random value from Exponential distribution: 0.895003194051671

注意:由于程序的随机性,每次运行程序生成的输出结果都会有所不同。

示例 2

此示例使用`**random.expovariate()**`方法生成10个时间间隔,平均速率为每秒15次到达。

import random

# Lambda for the Exponential distribution
rate = 15  # 15 arrivals per second

# Generate a random numbers from the Exponential distribution
for i in range(10):
    interarrival_time = random.expovariate(rate)
    print(interarrival_time)

执行上述代码后,您将获得类似以下的输出:

0.05535939722671001
0.0365294773838789
0.0708190008748821
0.11920422853122664
0.014966394641357258
0.05936796131161308
0.09168815851495513
0.18426575850779056
0.03533591768827803
0.08367815594819812

示例 3

这是一个使用`**random.expovariate()**`方法的另一个示例,它生成并显示一个直方图,该直方图显示来自速率参数为100的指数分布的样本的整数部分的频率分布。

import random
import numpy as np
import matplotlib.pyplot as plt

# Generate 10000 samples from an exponential distribution with rate parameter of 100
rate = 1 / 100  
num_samples = 10000 

# Generate exponential data and convert to integers
d = [int(random.expovariate(rate)) for _ in range(num_samples)]

# Create a histogram of the data with bins from 0 to the maximum value in d
h, b = np.histogram(d, bins=np.arange(0, max(d)+1))

# Plot the histogram
plt.bar(b[:-1], h, width=1, edgecolor='none')
plt.title('Histogram of Integer Parts of Exponentially Distributed Data')
plt.show()

上述代码的输出如下:

Random Expovariate Method
python_modules.htm
广告