基于概率的真或假输出
有没有一个标准的Python函数,可以根据输入的0到1之间的随机数,概率性地输出真(True)或假(False)?
我想表达的意思是这样的:
def decision(probability):
...code goes here...
return ...True or False...
比如说,如果输入的是0.7,那么这个函数会有70%的概率返回真(True),而有30%的概率返回假(False)。
6 个回答
1
只需使用PyProbs这个库就可以了。它非常简单易用。
>>> from pyprobs import Probability as pr
>>>
>>> # You can pass float (i.e. 0.5, 0.157), int (i.e. 1, 0) or str (i.e. '50%', '3/11')
>>> pr.prob(50/100)
False
>>> pr.prob(50/100, num=5)
[False, False, False, True, False]
3
假设有一个叫做 rand
的函数,它会返回一个介于0和1之间的数字,你可以这样定义一个叫 decision
的东西:
bool decision(float probability)
{
return rand()<probability;
}
这里假设 rand()
返回的值在 [0.0, 1.0)
这个范围内(也就是说,它可能会输出0.0,但永远不会输出1.0)。
144
这段内容是关于编程问题的讨论,主要是在讲解一些技术细节。虽然具体问题没有被直接回答,但大家分享了各自的看法和经验,帮助理解这个技术概念。
如果你对这个话题感兴趣,可以继续深入学习,看看其他人是怎么解决类似问题的,或者尝试自己动手实践一下。
记得保持好奇心,编程的世界很大,慢慢来,你会越来越懂的!
import random
def decision(probability):
return random.random() < probability