rjb*_*bez 4 python random python-2.7
我试图得到一个随机布尔值,但加权百分比.例如,我希望用户传入百分比(即60),并且生成器将在60%的时间内随机选择真实.
我有的是这个:
def reset(percent=50):
prob = random.randrange(0,100)
if prob > percent:
return True
else:
return False
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?这似乎效率低下且繁琐.我不需要它是完美的,因为它只是用于模拟数据,但我需要尽可能快.
我搜索过(Google/SO)并且没有找到任何其他问题.
Mar*_*ers 18
只需返回测试:
def reset(percent=50):
return random.randrange(100) < percent
Run Code Online (Sandbox Code Playgroud)
因为<低于运算符的结果已经是布尔值.您也不需要给出起始值.
请注意,您需要使用低于您想要True返回给定百分比的值; 如果percent = 100那时你想要True所有的时间,例如当所有randrange()产生的percent值低于该值时.
| 归档时间: |
|
| 查看次数: |
8060 次 |
| 最近记录: |