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
廣告