2015-01-01 50 views
2

我試圖產生-1和1如何使Python random.random()包括底片

之間的隨機數對,我可以讓它去消極或積極的......但不會產生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() 

回答

8

我假設你想要一個浮點數。在這種情況下,使用

x = random.uniform(-1,1) 
+0

最簡單的方法 –

+0

我想知道是否有另一個我忽略的功能。謝謝(你的)信息! – dcvl

0

可以使用random.random()產生從0隨機數爲2,則1,轉移所有結果以-1 to 1

2

因爲random.random()會給你一個介於[0.0-1.0]之間的浮點數,所以你可以通過乘以2來擴展該範圍到[0.0-2.0]。然後你可以通過減去1來將該範圍移動到[-1.0-1.0) :

import random 

randx = random.random()*2.0 - 1.0