今回の講座の導入文
みんな、Pythonでプログラミングするなら、ライブラリを使いこなすことが大事やで!特に、乱数を使うと、ゲームの要素を入れたり、データのサンプリングをしたり、いろんな場面で役立つんや。例えば、サイコロを振るゲームを作りたい時、乱数がないとただの数字の羅列になってしまうわ。せやから、Pythonの「random」ライブラリを使って、楽しく乱数を生成したり、リストからランダムに選んだりする方法を学んでいこうと思うで!これをマスターすれば、あなたのプログラムももっと面白くなること間違いなしや!
① 乱数の生成(整数、浮動小数点数)
乱数を生成するのは、プログラミングの中でもめっちゃ大事な機能やで。ここでは、整数と浮動小数点数の乱数を生成する方法を見ていくで!
整数の乱数生成
整数の乱数を生成するには、randint
関数を使うんや。これを使うと、指定した範囲内の整数をランダムに生成できるんやで。例えば、1から10の間の乱数を生成してみよ!
import random
# 1から10の間の乱数を生成
integer_random = random.randint(1, 10)
print(integer_random)
浮動小数点数の乱数生成
次は、浮動小数点数の乱数を生成する方法や。これには、uniform
関数を使うんや。この関数を使うと、指定した範囲内の浮動小数点数を生成できるで。例えば、0.0から1.0の間の乱数を生成してみよ!
# 0.0から1.0の間の浮動小数点数の乱数を生成
float_random = random.uniform(0.0, 1.0)
print(float_random)
まとめ
- 整数の乱数は
randint
を使う - 浮動小数点数の乱数は
uniform
を使う
これで、基本的な乱数の生成ができるようになったで!次に進む準備はできたかな?
② リストからのランダムな選択
次は、リストからランダムに選ぶ方法について学んでいくで!これを使えば、例えば、ゲームのキャラクターの選択や、ランダムな質問を出す時なんかに便利やで。
リストからのランダム選択
Pythonのrandom
ライブラリには、choice
関数があって、これを使うとリストの中から1つの要素をランダムに選ぶことができるんや。例えば、好きな果物のリストからランダムに1つ選んでみよ!
import random
# 好きな果物のリスト
fruits = ['りんご', 'ばなな', 'みかん', 'ぶどう', 'いちご']
# リストからランダムに1つ選ぶ
random_fruit = random.choice(fruits)
print(random_fruit)
リストから複数のランダム選択
もしリストから複数の要素を選びたい場合は、sample
関数を使うんや。これを使うと、指定した数の要素をランダムに選ぶことができるで。例えば、果物の中から2つ選んでみるで!
# リストからランダムに2つ選ぶ
random_fruits = random.sample(fruits, 2)
print(random_fruits)
まとめ
choice
関数でリストから1つの要素をランダムに選ぶsample
関数でリストから複数の要素をランダムに選ぶ
これでリストからのランダムな選択ができるようになったで!次はシャッフルの方法について学んでいこうか!
③ リストのシャッフル
さて、次はリストをシャッフルする方法について学んでいくで!シャッフルっていうのは、リストの要素の順番をランダムに入れ替えることや。これを使うと、例えばトランプのカードを混ぜたり、ランダムな順番で何かを表示したりする時に役立つで。
リストのシャッフル方法
Pythonのrandom
ライブラリには、shuffle
関数があって、これを使うとリストの要素をシャッフルすることができるんや。具体的にどうやるか、見てみよ!
import random
# シャッフルしたいリスト
cards = ['ハート', 'ダイヤ', 'クローバー', 'スペード']
# リストをシャッフル
random.shuffle(cards)
print(cards)
シャッフルのポイント
shuffle
関数は元のリストを直接変更するので、シャッフルした後のリストは元の順番を保持してないんや。- シャッフルした結果がどうなるかは、その時々で違うから、毎回違った結果が楽しめるで!
まとめ
shuffle
関数を使ってリストの要素の順番をランダムに入れ替える- 元のリストは変更されるので注意やで
これでリストのシャッフルができるようになったな!次は、確率分布に基づく乱数生成について学んでいこう!
④ 確率分布に基づく乱数生成
次は、確率分布に基づく乱数の生成についてや!ここでは、特定の確率で値を選ぶ方法を学ぶで。例えば、ある選択肢が他の選択肢よりも選ばれやすい場合に使えるんや。
確率分布を使った乱数生成
Pythonのrandom
ライブラリには、いくつかの確率分布に基づいた乱数生成の関数があるんや。その中でも代表的なのがchoices
関数や。この関数を使うと、リストの中から指定した確率で要素を選ぶことができるで。
例: 確率分布の設定
例えば、サイコロのように、ある数字が出る確率を変えたいとするやん。以下の例では、1が出る確率を50%、それ以外の数字はそれぞれ15%ずつ出るように設定してみるで。
import random
# 選択肢のリスト
numbers = [1, 2, 3, 4, 5, 6]
# 確率を設定(合計は100%になるように)
weights = [50, 15, 15, 10, 5, 5]
# 確率に基づいて乱数を生成
random_number = random.choices(numbers, weights=weights, k=1)
print(random_number[0])
確率分布のポイント
choices
関数のweights
パラメータで、各要素が選ばれる確率を設定する。k
パラメータで、生成する乱数の個数を指定できるで。
まとめ
choices
関数を使って、確率分布に基づいた乱数を生成できる- 各要素の選ばれる確率を
weights
で設定する
これで確率分布に基づく乱数生成ができるようになったな!次は乱数シードの設定と再現性について学んでいこう!
⑤ 乱数シードの設定と再現性
最後に、乱数シードの設定について学んでいくで!乱数生成は毎回異なる結果を出すんやけど、特定のシードを設定することで、同じ乱数のシーケンスを再現できるようになるんや。これが特に便利なのは、テストやデバッグの時やな。
乱数シードの設定
乱数シードは、乱数の生成アルゴリズムに与える初期値や。シードを設定することで、毎回同じ乱数の順序を生成することができるんや。これを使うと、同じ実行結果を得ることができるで。
例: シードの設定
以下の例では、シードを設定してから乱数を生成してみるで。
import random
# シードを設定
random.seed(42)
# 乱数を生成
random_number1 = random.randint(1, 10)
random_number2 = random.randint(1, 10)
print(random_number1)
print(random_number2)
# 再び同じシードを設定
random.seed(42)
# 再度乱数を生成
random_number3 = random.randint(1, 10)
random_number4 = random.randint(1, 10)
print(random_number3)
print(random_number4)
シードのポイント
seed
関数でシード値を設定することで、以降の乱数生成が再現可能になる。- 同じシードを使えば、同じ順序の乱数が得られるから、デバッグや実験に便利やで。
まとめ
seed
関数で乱数シードを設定することで、同じ乱数のシーケンスを再現できる- テストやデバッグの時に特に役立つで
これで乱数シードの設定と再現性についての講義は終わりや!これからは、いろんな場面で乱数を活用してみてな!次の章も楽しみにしててな!
【Pythonの乱数生成】シード設定で再現性を持たせる!シャッフルや確率分布の使い方も紹介!