Is there a standard function for Python which outputs True or False probabilistically based on the input of a random number from 0 to 1?
example of what I mean:
import random
def decision(probability):
return random.random() < probability
Given a function rand
that returns a number between 0 and 1, you can define decision
like this:
bool decision(float probability)
{
return rand()<probability;
}
Assuming that rand() returns a value in the range [0.0, 1.0)
(so can output a 0.0, will never output a 1.0).
If you want to amass a lot of data, I would suggest using a map:
from numpy import random as rn
p = 0.15
data = rn.random(100)
final_data = list(map(lambda x: x < p, data))
I use this to generate a random boolean in python with a probability:
from random import randint
n=8 # inverse of probability
rand_bool=randint(0,n*n-1)%n==0
so to expand that :
def rand_bool(prob):
s=str(prob)
p=s.index('.')
d=10**(len(s)-p)
return randint(0,d*d-1)%d<int(s[p+1:])
I came up with this myself but it seems to work.