回答:
random.uniform(a、b)を使用します。
>>> random.uniform(1.5, 1.9)
1.8733202628557872
Returns a random floating point number N such that a <= N <= b for a <= b and b <= N <= a for b < a
言い換えれば、出力N
は入力a
とのどちらかに等しくなる可能性がありb
ます。この場合1.5
と1.9
。
.uniform
関数を使用せずにこれを行う別の方法はありますが、代わりに.random
またはを使用しますかrandrange
?
1.5 + random.random() * (1.9 - 1.5)
はそれを実行する必要があります。ただし、仕様によると、これは正確には返されません1.9
(理論的にも)。
uniform(a, b)
として実装されてa + (b-a) * random()
戻る範囲内の乱数〔、b)または[B]丸めに応じ github.com/python/cpython/blob/...を
ポイントの右側にN桁のランダムな浮動小数点数を生成する場合は、次のようにします。
round(random.uniform(1,2), N)
2番目の引数は小数点以下の桁数です。
最も一般的には、以下を使用します。
import random
random.uniform(a, b) # range [a, b) or [a, b] depending on floating-point rounding
Pythonは必要に応じて他のディストリビューションを提供します。
あなたがいる場合はnumpy
既にインポート、あなたはそれに相当を使用することができます:
import numpy as np
np.random.uniform(a, b) # range [a, b)
繰り返しになりますが、別のディストリビューションが必要な場合numpy
は、Pythonと同じディストリビューションだけでなく、その他の多くのディストリビューションも提供します。
np.random.uniform(start, stop)
必要なnp.random.uniform(start, stop, samples)
場合、または複数のサンプルが必要な場合。それ以外の場合は、以下の回答が最適です。