1
uniform(a,b)
返回範圍[a,b)中的值。如何把這個間隔變成(a,b)?Python:生成一個範圍內的隨機浮點數,排除起點
uniform(a,b)
返回範圍[a,b)中的值。如何把這個間隔變成(a,b)?Python:生成一個範圍內的隨機浮點數,排除起點
這似乎很簡單:
def my_uniform(a, b):
while True:
result = uniform(a, b)
if a < result < b:
return result
注意'制服(A,B)'可以產生上限值'B'太多,在很多情況下。 –
它可以是'[a,b]'或'(a,b)'。 [「根據等式a +(ba)* random()中的浮點舍入,終點值b可能包含也可能不包含在該範圍內。」](https://docs.python.org/3 /library/random.html?highlight=random.uniform#random.uniform) – Phillip
@Phillip:您引用的句子是正確的:可以包含'b'。舉一個極端的例子,試試'a = 1.0','b = 1.0 + 2 ** - 52'。你會看到'統一的(a,b)'一半的時間產生'a',一半的時間產生'b'。對於一個不太極端的例子,'uniform(1.0,1.25)'理論上可以產生'1.25'。 –