Python初心者の乱数術

Python初心者の乱数術

ランダムモジュールの基本

Python初心者が最初に触れるのが random モジュールです。random は標準ライブラリに含まれており、外部パッケージをインストールせずに乱数生成が可能です。モジュールを使うには import random を行います。

乱数生成は「乱数生成」と呼ばれ、ゲームやシミュレーション、テストデータ作成など幅広い用途があります。Python では random が提供する関数を組み合わせて、整数、浮動小数点数、リストからのランダム選択などを行います。

randintとuniformで数値を生成

整数を生成したい場合は random.randint(a, b) を使います。ab は含まれる範囲です。例えば 1 から 10 までの整数を取得するには次のようにします。

import random
for _ in range(5):
    print(random.randint(1, 10))

浮動小数点数を生成したい場合は random.uniform(a, b) を使用します。ab は範囲の下限と上限です。例として 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) のように設定しますが、実際の運用ではシードを固定しないように注意してください。

この記事はAIによって作成されました。

コメント

このブログの人気の投稿

Blogger Sitemap登録エラー解決

【iOS】SwiftでCGAffineTransformから角度・ラジアン・度数・スケールを計算する方法

Ollama & Open WebUI: ローカルLLM構築