首頁 > 軟體

Python生成亂數的方法詳解(最全)

2023-02-09 06:01:34

python生成亂數都有哪些辦法呢

  • 使用 random 模組:random模組是python內建的模組,使用方法如random.randint()生成一個隨機整數。
  • 使用 NumPy 庫:NumPy 是一個強大的數值計算庫,它提供了生成亂數的功能,例如numpy.random.randint()生成一個隨機整數。
  • 使用 secrets 模組:secrets模組是python3.6版本引入的新模組,專門用於生成安全亂數,例如secrets.randbelow()生成一個隨機整數。
  • 使用 random.org 網站:random.org 網站可以生成真正的亂數,可以使用Python的requests模組從該網站獲取亂數。
  • 使用 random.choices()方法: random.choices()方法可以從一個序列中隨機選擇多個元素。

使用 random 模組

使用 random 模組的 randint() 函數生成隨機整數:

import random

​​​​​​​#生成隨機整數
random_int = random.randint(1,100)
print(random_int)

也可以使用 random 模組的 random() 函數生成隨機小數:

import random

#生成隨機小數
random_float = random.random()
print(random_float)

可以使用 random 模組的 choice() 函數從列表中隨機選取一個元素:

import random

#隨機從列表中選取一個元素
random_list = [1, 2, 3, 4, 5]
random_element = random.choice(random_list)
print(random_element)

還可以使用 random 模組的 sample() 函數隨機從列表中選取多個不重複的元素:

import random

#隨機從列表中選取多個不重複的元素
random_list = [1, 2, 3, 4, 5]
random_elements = random.sample(random_list, 3)
print(random_elements)

最後,還可以使用 random 模組的 shuffle() 函數隨機打亂列表的順序:

import random

#隨機打亂列表的順序
random_list = [1, 2, 3, 4, 5]
random.shuffle(random_list)
print(random_list)

使用 NumPy 庫

程式碼如下所示:

import numpy as np

# 生成一個隨機整數
rand_int = np.random.randint(low=0, high=100)
print("隨機整數:", rand_int)

# 生成一個包含隨機整數的陣列
rand_array = np.random.randint(low=0, high=100, size=(5,))
print("隨機整數陣列:", rand_array)

使用 NumPy 生成亂數的優勢在於,它提供了豐富的亂數生成功能,可以生成各種形狀和分佈的亂陣列,在資料分析、機器學習等領域有廣泛應用。

使用 secrets 模組

secrets模組提供了更安全的方法,且易於使用。

使用secrets.randbelow()可生成一個隨機整數,而無需關心亂數的範圍。

它可以保證生成的亂數具有足夠的隨機性,適用於密碼生成、加密等安全相關的場景。

詳細程式碼可以參考以下例子:

import secrets
random_number = secrets.randbelow(100)
print(random_number)

使用 random.org 網站

random.org 網站是一個生成真正亂數的網站,你可以使用Python的requests模組從該網站獲取亂數,使用方法如下:

import requests
import json

# 請求亂數的API
url = 'https://www.random.org/integers/?num=1&min=1&max=100&col=1&base=10&format=plain&rnd=new'

# 傳送請求並獲取亂數
response = requests.get(url)
random_number = response.text

# 轉換為整數並列印
random_number = int(random_number)
print(random_number)

這是一個使用requests從random.org獲取亂數的簡單範例。你可以根據需求自定義生成亂數的數量、最小值和最大值。

使用 random.choices()方法

random.choices() 方法可以從指定的序列中隨機選擇多個元素,並以列表的形式返回選擇的結果。

該方法的語法如下:

random.choices(sequence, weights=None, *, cum_weights=None, k=1)

詳細引數如下:

  • sequence:要從中選擇的元素的序列
  • weights:序列中各元素的概率分佈,可以為 None(預設值,表示所有元素的概率相等)
  • cum_weights:weights 引數的累積概率分佈
  • k:選擇的元素個數

到此這篇關於Python生成亂數的方法詳解(最全)的文章就介紹到這了,更多相關Python亂數內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com