Pythonでランダム実数と整数

Pythonのrandomモジュールを使って、ランダムな数字を取得してみます。

目次

  1. ランダムな実数を取得する
  2. ランダムな整数を取得する
  3. 同じ乱数を作る

ランダムな実数を取得する

randomメソッドで0以上1未満の浮動小数点数を取得できます。

F = random.random()
変数 内容
F ランダムな浮動小数点数(float)

試してみます。

>>> import random
>>> random.random()
0.08677013264299915

ランダムな整数を取得する

randrangeメソッドでランダムな整数を取得できます。

書き方が2つあります。

I = random.randrange(stop)
I = random.randrange(start, stop, step)
変数 内容
start 整数の範囲の下限
stop 整数の範囲の上限
step 省略可。整数のステップ。既定値は1
I start以上stop未満の整数(int)

試してみます。

>>> import random
>>> random.randrange(10)
6
>>> random.randrange(10)
9
>>> random.randrange(0,10)
9
>>> random.randrange(0,10)
1
>>> random.randrange(0,10,3)
9
>>> random.randrange(0,10,3)
3

同じ乱数を作る

乱数は欲しいけど、同じ乱数が出て欲しい。そんな場合には、seedの設定をします。

random.seed(a, version)
変数 内容
a タネです。省略可。既定値はNone。省略されるかNoneが指定された場合は、システム時刻が使用されます。
version 省略可。既定値は2。乱数の設定の仕方がPython3.2から変わったようです。2は新しい方の設定。

試してみます。

まず、seedに1を設定して、実数の乱数を連続して3つ生成してみます。

>>> import random
>>> random.seed(1)
>>> random.random()
0.13436424411240122
>>> random.random()
0.8474337369372327
>>> random.random()
0.763774618976614

一度Pythonを終了して、再度seedを1にして乱数を生成してみます。

>>> import random
>>> random.seed(1)
>>> random.random()
0.13436424411240122
>>> random.random()
0.8474337369372327
>>> random.random()
0.763774618976614

同じ実数が表示されてますね。

これはデバッグの時などに便利かも。

広告

Pythonのデータカテゴリの投稿