Python初心者の乱数術
Python初心者の乱数術
ランダムモジュールの基本
Python初心者が最初に触れるのが random モジュールです。random は標準ライブラリに含まれており、外部パッケージをインストールせずに乱数生成が可能です。モジュールを使うには import random を行います。
乱数生成は「乱数生成」と呼ばれ、ゲームやシミュレーション、テストデータ作成など幅広い用途があります。Python では random が提供する関数を組み合わせて、整数、浮動小数点数、リストからのランダム選択などを行います。
randintとuniformで数値を生成
整数を生成したい場合は random.randint(a, b) を使います。a と b は含まれる範囲です。例えば 1 から 10 までの整数を取得するには次のようにします。
import random
for _ in range(5):
print(random.randint(1, 10))
浮動小数点数を生成したい場合は random.uniform(a, b) を使用します。a と b は範囲の下限と上限です。例として 0.0 から 1.0 の間の数を取得します。
print(random.uniform(0.0, 1.0))
choiceとshuffleでリストを操作
リストからランダムに要素を選びたいときは random.choice(seq) を使います。seq はシーケンス(リスト、タプル、文字列など)です。
colors = ['赤', '青', '緑', '黄']
print(random.choice(colors))
リスト全体をシャッフルしたい場合は random.shuffle(x) を使用します。これはリストをその場で並び替えます。
numbers = list(range(1, 11))
random.shuffle(numbers)
print(numbers)
くじ引きの実装例
くじ引きは「くじ引き」や「ランダム選択」の典型例です。以下は簡単なくじ引きプログラムです。
import random
prizes = ['トイレタリー', 'カップ麺', 'ノートパソコン', 'スマホ']
print('くじ引きの結果...')
print('あなたの当たりは:', random.choice(prizes))
この例では choice を使ってランダムに賞品を選び、結果を表示しています。実際のアプリケーションでは、当たり確率を調整したり、複数人で同時に引く場合は shuffle を併用すると便利です。
乱数生成の注意点
乱数は「擬似乱数」と呼ばれ、完全に予測不可能ではありません。特にセキュリティが重要な場面では random モジュールではなく secrets モジュールを使うべきです。secrets.choice は暗号学的に安全な乱数を生成します。
また、乱数のシード(初期値)を固定すると同じ乱数列が再現されます。デバッグ時に再現性が必要な場合は random.seed(42) のように設定しますが、実際の運用ではシードを固定しないように注意してください。
コメント
コメントを投稿