4
還在嘗試弄清楚在Python中是否有函數來獲取隨步驟的隨機浮點值?類似randrange(開始,停止,步驟),但對於浮點數。如何在Python中使用步驟獲得隨機浮點數
還在嘗試弄清楚在Python中是否有函數來獲取隨步驟的隨機浮點值?類似randrange(開始,停止,步驟),但對於浮點數。如何在Python中使用步驟獲得隨機浮點數
import random
def randrange_float(start, stop, step):
return random.randint(0, int((stop - start)/step)) * step + start
randrange_float(2.1, 4.2, 0.3) # returns 2.4
只是乘以一些適當的常量,以獲得整數並將結果逆轉操作。
start = 1.5
stop = 4.5
step = 0.3
precision = 0.1
f = 1/precision
random.randrange(start*f, stop*f, step*f)/f
非常感謝,它的工作原理! – SkyWalker 2012-08-14 10:13:40
使用'int(round(...))'可能比使用'int(...)'安全一點,特別是如果通常情況是'stop-start'接近多個'step'。否則很難預測「停止」是否可能。 – 2012-08-14 13:33:14