Pythonで範囲指定で乱数を得る4つの方法【random】
718, 2023-08-10
目次
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