隅歩つ

書いて理解を深める

Pythonのrandomモジュール

プログラミングのrandomは言語ごとに微妙に違うので迷うことが多い。

私はp5.jsでプログラミングを始めたので、p5.jsやJavaScriptのrandamを思い浮かべてしまいます。

今はPythonをメインにしたのでrandomの使い方がわからなくなってよく検索して調べている。

randomの種類

randomの種類を本で調べてみるとたくさん出てくる。

よく使いそうなのは5~6種類だと思う。

  • random.random()
  • random.uniform()
  • random.randint()
  • random.randrange()
  • random.choice()
  • random.sample()

randomの使い方

Pythonの場合、randomを使う時はまずインポートします。

import random

▼ 0~1の乱数

random.random()

▼ 下の例の場合、3~10のいずれかの整数

random.randint(3,10)

第2引数は範囲に含まれる(この場合は10も含まれる)。

▼ 下の例の場合、10,12,14,16,18(start,stop,step)

random.randrange(10,20,2)

第2引数は含まれず10~19の範囲になる。20は含まれない。

▼ 任意の範囲の浮動小数

random.uniform(-1,1)

random.uniformはどういう場面で使うのだろう?

リスト

▼ 下の例の場合、7,8,9のいずれか1つ

random.choice([7,8,9])

▼ 下の例の場合、10つ選ばれる

random.choices([1,2,3,4,5],k=10)
# [2, 5, 1, 3, 5, 5, 3, 3, 4, 3] ←同じ数字も選ばれる

▼ 下の例の場合、10つ選ばれる(重みあり)

random.choices([1,2,3,4,5],weights=[1,1,5,1,1],k=10)
# [2, 5, 3, 3, 3, 4, 4, 3, 3, 3] ←この場合3が多くなる

▼ sampleは複数の要素をダブりなく選べる

random.sample([1,2,3,4,5],k=3)
# [2, 5, 1]

yuuuha.hatenablog.com