どーもTakeです。
この記事では、Pythonでランダムな数字を生成する方法について解説します!
乱数はゲームプログラミングなど様々な場面で使われます。
Python で整数・小数などの乱数の具体的な作成方法に加え
具体的にサイコロの目(乱数)、人生ゲームのルーレットの作成方法についても初心者でもわかりやすく解説します。
- 小数のランダム数字(乱数)の生成方法(0以上1未満)
- 小数のランダム数字(乱数)の生成方法(X以上Y以下(任意の範囲))
- 整数のランダム数字(乱数)の生成方法(X以上Y以下(任意の範囲))
- 配列の中身をランダムに取得
- サイコロの作り方(1~6の乱数)
- 人生ゲームのルーレット(1~9の乱数)
小数のランダム数字(乱数)(0以上1未満)
まずは Python で一番簡単な小数の乱数の生成方法について解説します。
これはrandomモジュールをインポートさせ、そのrandomモジュールの「random()」メソッドから乱数を生成できます。
注意点として下記は「0以上1未満」の範囲でランダムになってしまうという点です。
1 2 3 |
import random print(random.random()) |
小数のランダム数字(乱数)(X以上Y以下(任意の範囲))
次に任意の範囲で小数のランダム数字を生成する方法についてご紹介します。
仮に「1以上10以下の好きなランダムな数字を出したい!」とします。
その場合はrandomモジュールの「randint()」メソッドから乱数を生成します。
1 2 3 |
import random print(random.uniform(1,10)) |
実行結果は下記になります。
1 |
7.931678009692137 |
「uniform()」メソッドでは、乱数の範囲を引数で指定できます。
上記では uniform(1,10)としたため、1以上10以下のランダムな小数が生成されます。
引数は同じ数字でもOKです。その場合、引数に指定した値が表示されます。
また負の数(マイナス)が存在する場合、負の数のランダム数字も生成できます。
1 2 3 4 |
import random print(random.uniform(30,30)) print(random.uniform(-10,10)) |
実行結果は下記になります。
1 2 |
30.0 -6.104821109887803 |
整数のランダム数字(乱数)の生成方法
整数で乱数を生成する方法についてご紹介します。
仮に「1以上10以下の好きなランダムな数字を出したい!」とします。
その場合はrandomモジュールの「randint()」メソッドから乱数を生成します。
1 2 3 |
import random print(random.randint(1,10)) |
実行結果は下記になります。
1 |
9 |
先程と同様、引数は同じ数字でもOKです。その場合、引数に指定した値が表示されます。
また負の数(マイナス)が存在する場合、負の数のランダム数字も生成できます。
1 2 3 4 |
import random print(random.randint(20,20)) print(random.randint(-20,10)) |
実行結果は下記になります。
1 2 |
20 3 |
配列の中身をランダムに取得
配列の中身をランダムに抽出する方法について紹介します。
これは、配列のサイズを取得する「len」とrandomモジュールの「randint()」メソッドを組み合わせればOKです。
まずは下記ソースコードを確認ください。
1 2 3 4 5 6 |
import random arr = ['A','B','C','D'] index = random.randint(0,len(arr)-1) print(arr[index]) |
まず、arr = ['A','B','C','D']を用意し、その中のどれか一つを抽出するようにします。
lenメソッドで配列のサイズ「4」を取得し、randintで「0 ~ 配列のサイズ - 1」の値を indexに代入します。
※「- 1」する理由は、配列のインデックスの最大数が「3」だからです。
arr = ['A','B','C','D']がある場合、プログラミングの性質上 arr[0] = 'A'、arr[1] = 'B'、arr[2] = 'C'、arr[3] = 'D'となり、
arr[4] の値は存在しないからです。
最後に arr[index] を表示させれば、配列の値をランダムに抽出できます!
実行結果は下記になります。
1 |
D |
サイコロの作り方
サイコロの目は「1 ~ 6」なので、整数「1 ~ 6」までの数字をランダムに抽出すればOKです。
ソースコードは下記になります。
1 2 3 |
import random print(random.randint(1,6)) |
人生ゲームのルーレット
人生ゲームのルーレットは「1 ~ 9」なので、整数「1 ~ 9」までの数字をランダムに抽出すればOKです。
ソースコードは下記になります。
1 2 3 |
import random print(random.randint(1,9)) |
最後に
いかがでしたでしょうか?
この記事では、Pythonのランダム数字(乱数)の取得方法について解説しました。
この記事を参考にランダム数字を活用し、様々なゲームプログラミングやシステムを構築いただければ幸いです。
ではでは。