プログラミングの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]