PythonとNumPyを使用して重複のない乱数を生成する方法について説明します。NumPyのrandom
モジュールは、乱数生成のための便利なツールを提供しています。
NumPyの乱数生成器の使用
まず、NumPyの乱数生成器をインスタンス化します。以下にその基本的な使い方を示します。
import numpy as np
# 乱数生成器オブジェクトの作成
rng = np.random.default_rng()
# 乱数の作成
rfloat = rng.random()
print(rfloat)
このコードは、乱数生成器オブジェクトを作成し、その後で乱数を生成します。
重複のない乱数の生成
重複のない乱数を生成するには、生成された乱数をリストなどに保持しておき、既出かどうかをチェックします。以下にそのサンプルコードを示します。
import random
# 重複ありうる
def rand_ints_dup(a, b, k):
return [random.randint(a, b) for i in range(k)]
# 重複なし
def rand_ints_nodup(a, b, k):
ns = []
while len(ns) < k:
n = random.randint(a, b)
if not n in ns:
ns.append(n)
return ns
print(rand_ints_dup(0, 10, 7))
print(rand_ints_nodup(0, 10, 7))
このコードは、重複ありの数列を作成する関数rand_ints_dup
と、重複なしの数列を作成する関数rand_ints_nodup
を定義しています。引数a
が下限、引数b
が上限、引数k
が要素数です。
以上がPythonとNumPyを使用して重複のない乱数を生成する方法になります。この情報がPythonの乱数生成に関する理解を深めるのに役立つことを願っています。.