【发布时间】:2022-01-22 16:16:14
【问题描述】:
我需要生成一个从 0 到 1 包含 1 但不包含 0 的数字
random.uniform(0,1)函数包含0但不包含1
这怎么可能?
【问题讨论】:
-
[0,1)不保证适用于random.uniform。如果您按1-random.uniform(0,1)划分,您可能会遇到ZeroDivisionError。
我需要生成一个从 0 到 1 包含 1 但不包含 0 的数字
random.uniform(0,1)函数包含0但不包含1
这怎么可能?
【问题讨论】:
[0,1) 不保证适用于random.uniform。如果您按1-random.uniform(0,1) 划分,您可能会遇到ZeroDivisionError。
可以简单到1 - random.uniform(0,1)
【讨论】:
Numpy 的统一随机生成器在 a 低而 b 高的 [a,b) 区间上生成值。
样本在半开区间 [low, high) 上均匀分布(包括低点,但不包括高点)。换句话说,给定区间内的任何值都同样可能被uniform绘制
【讨论】:
您也可以使用:
import random as r
-r.uniform(-1, 0)
一般来说:
# random number which excludes a but excludes b
import random as r
def my_uniform(a = 0, b = 1):
return -r.uniform(-b, -a)
【讨论】: