Pythonで範囲指定で乱数を得る4つの方法【random】
- 作成日: 2023-08-09
- 更新日: 2023-12-24
- カテゴリ: Python
Pythonで範囲指定で乱数を得る4つの方法
Pythonのrandom
モジュールを使って範囲指定で乱数を得るには
- random.randrange()
- random.randint()
- random.uniform()
- random.triangular()
の4つの関数が使えます。
この記事ではこれらの関数の使い方を解説します。
random.randrange()
randrange()
は以下のインターフェースを持ちます。
random.randrange(stop)
random.randrange(start, stop[, step])
インターフェースは2つあり、引数の個数で使い分けます。
stop
だけを指定した場合は0
からstop
までの範囲で乱数を得ます。
start
とstop
を指定した場合はstart
とstop
の範囲で乱数を得ます。
step
を指定した場合はstep
刻みの乱数になります。
import random
print(random.randrange(10)) # 5
print(random.randrange(0, 10)) # 7
print(random.randrange(0, 10, 2)) # 8
random.randint()
randint()
は以下のインターフェースを持ちます。
random.randint(a, b)
この関数はa <= N <= b
の範囲で乱数N
を得ます。
たとえば0から10の範囲を指定した場合はその範囲の乱数を得ます。
import random
for _ in range(10):
print(random.randint(0, 10))
# 2
# 10
# 3
# 7
# 1
# 2
# 9
# 3
# 8
# 1
random.uniform()
uniform
は浮動小数点数の乱数を得ます。
インターフェースは以下になります。
random.uniform(a, b)
a <= b
であればa <= N <= b
、b < a
であればb <= N <= a
の乱数を得ます。
import random
for _ in range(10):
print(random.uniform(0, 10))
# 4.274287966939716
# 7.605267312473618
# 9.32622951783877
# 8.777803395478701
# 6.08237492473099
# 6.379581149681539
# 5.174560518835763
# 1.933791552816786
# 7.314910237323594
# 8.464211820823946
for _ in range(10):
print(random.uniform(10, 0))
# 6.233158304881506
# 9.137231552467282
# 9.443756155109728
# 0.014941848399045554
# 2.190029063095304
# 1.3980222602360453
# 4.958503198047626
# 0.08372815781262766
# 3.8257608711346602
# 1.1040841059914008
random.triangular()
triangular()
は以下のインターフェースを持ちます。
random.triangular(low, high, mode)
low <= N <= high
の範囲で最頻値mode
を持つような乱数N
を返します。
import random
for _ in range(10):
print(random.triangular(0, 10, 5))
# 3.6495528893649647
# 7.951678192451139
# 5.281139960101321
# 8.072675112575965
# 6.918927877667826
# 7.662022025617716
# 5.692626499606273
# 4.506161947124113
# 5.86207542380047
# 6.460058584929693