如何使 python random.random() 包含负数
How to make python random.random() incorporate negatives
我正在尝试生成一对介于 -1 和 1 之间的随机数。
我可以让它变成负数或正数...但不能为 x 和 y 生成一个随机数,它可能会变成负数和正数。下面是我所拥有的(这是一个来自网站的飞镖模拟游戏)。 randx 和 randy 是随机数生成恰好被用作坐标的地方。
import turtle
import math
import random
def main():
fred = turtle.Turtle()
fred.up()
wn = turtle.Screen()
wn.setworldcoordinates(-1,-1,1,1)
numdarts = 10
for i in range(numdarts):
randx = random.random()
randy = random.random()
x = randx
y = randy
fred.goto(x,y)
fred.stamp()
wn.exitonclick()
main()
我假设您需要一个浮点数。在这种情况下,使用
x = random.uniform(-1,1)
您可以使用 random.random()
生成从 0 到 2 的随机数,然后将所有结果平移 1,到 -1 to 1
。
因为 random.random()
会给你一个介于 [0.0-1.0) 之间的浮点数,你可以通过乘以 2 将该范围扩展到 [0.0-2.0)。然后你可以将该范围移动到 [-1.0- 1.0) 减去 1:
import random
randx = random.random()*2.0 - 1.0
我正在尝试生成一对介于 -1 和 1 之间的随机数。
我可以让它变成负数或正数...但不能为 x 和 y 生成一个随机数,它可能会变成负数和正数。下面是我所拥有的(这是一个来自网站的飞镖模拟游戏)。 randx 和 randy 是随机数生成恰好被用作坐标的地方。
import turtle
import math
import random
def main():
fred = turtle.Turtle()
fred.up()
wn = turtle.Screen()
wn.setworldcoordinates(-1,-1,1,1)
numdarts = 10
for i in range(numdarts):
randx = random.random()
randy = random.random()
x = randx
y = randy
fred.goto(x,y)
fred.stamp()
wn.exitonclick()
main()
我假设您需要一个浮点数。在这种情况下,使用
x = random.uniform(-1,1)
您可以使用 random.random()
生成从 0 到 2 的随机数,然后将所有结果平移 1,到 -1 to 1
。
因为 random.random()
会给你一个介于 [0.0-1.0) 之间的浮点数,你可以通过乘以 2 将该范围扩展到 [0.0-2.0)。然后你可以将该范围移动到 [-1.0- 1.0) 减去 1:
import random
randx = random.random()*2.0 - 1.0