• API
• FAQ
• Tools
• Archive
SHARE
TWEET # Untitled a guest Mar 24th, 2019 48 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. #rejection sampling
2. #P(j|-a)
3. import random
4. samples = 0
5. PJA = 0
6. PnotB = 0
7. iterations = 2000000
8. for i in range(iterations): #not number of samples, number of samples will be sampled
9.     rEQ = random.random()
10.     rB = random.random()
11.     rA = random.random()
12.
13.     Pb = rB <= 0.001
14.     Peq = rEQ <= 0.002
15.
16.     if Pb and Peq:
17.         Pa = rA <= 0.95
18.     elif Pb and not Peq:
19.         Pa = rA <= 0.94
20.     elif not Pb and Peq:
21.         Pa = rA <= 0.29
22.     elif not Pb and not Peq:
23.         Pa = rA <= 0.001
24.
25.     if not Pb:
26.         PnotB += 1
27.
28.     if Pa:
29.         samples += 1
30.     else:
31.         continue    #rejection
32.
33.     rJ = random.random()
34.     PJ = rJ <= 0.9
35.
36.     if  PJ:
37.         PJA += 1
38.
39. PnotB = PnotB/iterations
40. PJA = 0 if samples == 0 else PJA / samples
41. print("P(-b)", PnotB)
42. print("P(j|a) =", PJA)
43. print("P(j|a, -b) =", PnotB*PJA)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!

Top