私はpythonを学び始めています。負の数と正の数を渡してランダムな値を生成しようとしました。-1
としましょう 1
。
Pythonでこれを行うにはどうすればよいですか?
>>> import random
>>> random.uniform(-1, 1)
0.4779007751444888
>>> random.uniform(-1, 1)
-0.10028581710574902
import random
def r(minimum, maximum):
return minimum + (maximum - minimum) * random.random()
print r(-1, 1)
編集: @ San4ezrandom.uniform(-1, 1)
が正しい方法です。一からやり直す必要はありません…</p>
とにかく、次のrandom.uniform()
ようにコード化されています:
def uniform(self, a, b):
"Get a random number in the range [a, b) or [a, b] depending on rounding."
return a + (b-a) * self.random()
指定された範囲の整数が必要な場合:
print random.randrange(-1, 2)
と同じ規則を使用するrange
ため、上限は含まれていません。
random.uniform
float値が必要な場合は同様のことを行いますが、上限が含まれているかどうかは必ずしも明確ではありません
ほとんどの言語には、[0、1]の範囲の乱数を返す関数があり、必要な範囲に合わせて操作できます。Pythonでは、関数はrandom.random
です。したがって、[-1、1]の範囲では、次のように実行できます。
import random
random_number = random.random() * 2 - 1
数値を2倍にすると、[0、2]の範囲が得られ、そこから1を引くと、[-1、1]が得られます。
このようなこともできます
import random
random.choice([-1, 1])
これはリスト内包表記で機能することがわかりました:
print([x for x in [random.randint(1, 11) * -1]])
また
#int range is n1 to n2
def make_negative(n1, n2):
print([x for x in [random.randint(n1, n2) * -1]])
make_negative(1,10)