はじめに
注意点などはこちらを参照してください。
この記事を描こうと思ったきっかけ
Pythonの計算に関して、適当な数値を入れてみてみたい。
そこでランダムな数値を精製してくれるrandomモジュールを使用してみることにしました。
そんなrandomモジュールについての備忘録のようなものです。
ようこそ、乱数の世界へ
randomモジュールをインポート
randomモジュールはPythonの標準ライブラリに含まれているため、ダウンロードは入りません。
ただし、インポートは必要です。
import random # 上部の段にこれを記述
randomモジュールの関数
random.random()
0.0以上1.0未満の浮動小数点数float型の乱数を生成します。
import random
print(random.random())
# 実行結果↓
# 0.830963714448
# 0.253643551299
# 0.906046050863 など
random.uniform(a,b)
任意の範囲(a から b の間)の浮動小数点数float型の乱数を生成する。
import random
print(random.uniform(10,20))
# 実行結果↓
# 10.4740789672
# 14.8562079851
# 10.2516560825 など
・2つの数値は大きさ順不同。
import random
print(random.uniform(1,-2))
# 実行結果↓
# -14.6138465193
# -1.29546679922
# 5.63021229752 など
・もしも同じ数だったら、その値のみ返す。
import random
print(random.uniform(10,10))
# 実行結果↓
# 10.0
引数は浮動小数点数float型でも可能。
※ bの値が範囲に含まれるかはドキュメント引用部分より、a + (b-a) * random.random()の丸めに依存。
端点の値 b が範囲に含まれるかどうかは、等式 a + (b-a) * random() における浮動小数点の丸めに依存します。 ー Pythonドキュメント:random --- 擬似乱数を生成する より引用
import random
print(random.uniform(1.234,4.321))
# 実行結果↓
# 1.93441022683
# 2.75716839399
# 3.91940634098 など
random.randrange(a,b,x)
range(a, b, x)の要素からランダムに選ばれた要素(整数int型)を返す。
a…スタート、x…ステップは省略可能。
そうした場合は、a = 0、x = 1 となる。
import random
print(list(range(10)))
print(random.randrange(10))
# 実行結果↓
# [0,1,2,3,4,5,6,7,8,9]
# 7 など
x = ステップの設定
奇数や偶数のランダム整数を生成したり、3の倍数のランダム整数を生成したりすることができる。
import random
print(list(range(2,10,2)))
print(random.randrange(2,10,2))
# 実行結果↓
# [2, 4, 6, 8]
# 4 など
random.randint(a,b)
a以上、b以下ののランダムな整数intを返す。
import random
print(random.randint(10,100))
# 実行結果↓
# 37 など
こぼれ話
1000から10000の間で、3000や6000といった百の位までが0の整数を出したい場合、
random.randint(1,10)の結果 * 1000 とすれば良い。
import random
print(random.randint(1,10) * 1000)
# 実行結果↓
# 3000
# 4000 など
参考