Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで乱数リストを生成する方法を徹底解説

プログラムのモデルや動作を検証する際、さまざまな範囲の値に対して乱数を生成したい場面はよくあります。Pythonでは標準ライブラリの random モジュールを使うことで、こうした乱数を簡単に生成できます。本記事では、まず単一の乱数を生成する基本から始め、それを応用して乱数のリストを作成する複数の方法まで順番に解説します。

単一の乱数を生成する

random モジュールの random() メソッドを使うと、0以上1未満の浮動小数点数(float型)の乱数を取得できます。

コード例

import random
n = random.random()
print(n)

実行結果

0.2112200

指定した範囲内の整数を生成する

範囲を指定して整数の乱数を得たい場合は、randint() メソッドを使用します。引数に最小値と最大値を渡すと、その両端を含む範囲からランダムな整数が1つ返されます。

コード例

import random
n = random.randint(0, 22)
print(n)

実行結果

2

forループで乱数リストを生成する

randint() をforループと組み合わせることで、乱数のリストを作成できます。まず空のリストを用意し、ループの中で生成した乱数を1つずつ追加していくのが基本的な流れです。

コード例

import random
randomlist = []
for i in range(0, 5):
    n = random.randint(1, 30)
    randomlist.append(n)
print(randomlist)

実行結果

[10, 5, 21, 1, 17]

random.sample()で重複なしの乱数リストを生成する

random モジュールには sample() メソッドも用意されており、これを使えば乱数リストを直接生成できます。第1引数に範囲(rangeオブジェクトなど)、第2引数に必要な乱数の個数を指定します。この方法では同じ値が重複しない点が特徴です。

コード例

import random
# 10〜30の範囲から重複なしで5個の乱数を生成
randomlist = random.sample(range(10, 30), 5)
print(randomlist)

実行結果

[16, 19, 13, 18, 15]

補足:用途別のおすすめメソッド

目的に応じて使い分けると便利です。

  • 重複を許可してリスト化したい場合: リスト内包表記と randint() の組み合わせがシンプルです。
    [random.randint(1, 30) for _ in range(5)]
  • 範囲内の浮動小数点数が欲しい場合: random.uniform(a, b) を使うと、a以上b以下のfloat型乱数を取得できます。
  • 再現性が必要な場合: random.seed(固定値) を実行しておくと、毎回同じ乱数列を生成でき、テストやデバッグに役立ちます。

まとめ

Pythonの random モジュールを使えば、単一の乱数から重複なしの乱数リストまで柔軟に生成できます。random()randint()sample() の違いを理解し、シミュレーションやテストデータ作成など、目的に合った方法を選びましょう。

  1. Pythonで乱数を生成する方法を徹底解説!randomモジュールの基本と使い方

    Pythonの標準ライブラリには、乱数を生成するための機能がまとめられた random モジュールが用意されています。このモジュールを利用することで、浮動小数点数や整数の乱数、シーケンスからのランダムな要素の取得などを簡単に実現できます。ここでは、よく使われる主要な関数をサンプルコードとともに紹介します。random():0以上1未満の浮動小数点数を生成もっとも基本的な関数が random() です。この関数は、0以上1未満の範囲のランダムな浮動小数点数を返します。>>> import random>>> random.random()0.520470277

  2. Rubyで乱数を生成する方法まとめ:rand・srand・Randomクラスから正規分布、SecureRandomまで

    乱数は、ゲーム開発、暗号化、シミュレーションの構築など、さまざまな場面で活用される重要な要素です。しかし技術的に言えば、コンピュータは純粋な計算によって真の乱数を生成することはできません。決定論的なデバイスで真にランダムな値を作り出すことは根本的に不可能であり、私たちが扱えるのは、あたかもランダムに生成されたように見える数値の連なり、すなわち「疑似乱数」だけです。 本記事では、Rubyで乱数を生成するためのさまざまな方法を紹介します。 Kernel#randで乱数を生成する まずは最も基本的なrandメソッドから始めましょう。randを引数なしで呼び出すと、0.0以上1.0未満の浮動小数点数が