Background

Choose independently two numbers B and C at random from the interval [0, 1] with uniform density. Prove that B and C are proper probability distributions. Note that the point (B,C) is then chosen at random in the unit square.

I’ll use the runif() function to generate random numbers from the interval [0, 1] as a uniform distribution.

#Initialize B and C with n = 100000 (for greater precision).
B <- runif(100000, min = 0, max = 1)
C <- runif(100000, min = 0, max = 1)

#Visualize B and C via histogram to observe their distributions.
hist(B)

hist(C)

(a)

Find the probability that: B + C < 1/2.

Description: store B + C (large numeric variables of 100000 elements, generated via random uniform distribution function) in a variable and then calculate the probability of their combined value being less than 0.5 via (1) pnorm and (2) tracking the number of elements that fit this criteria divided by the total number of elements in B and C (n=100000).

Based on a comparison between their values and for sake of consistency moving forward, I’ll choose the second method for calculating the probability. It’s straightforward and likely quite accurate (given our n value of 100000).

With that said, I was just curious what the difference might be between this method and pnorm and I wanted to see how close their associated outputs might be.

plus <- B + C

#Calculate the probability using pnorm()
plus_mean <- mean(plus)
plus_sd <- sd(plus)
pnorm(q = 0.5, mean = plus_mean, sd = plus_sd)
## [1] 0.1103377
#Calculate the probability 
p_plus <- sum(plus < 0.5) / 100000
p_plus
## [1] 0.12593

(b)

Find the probability that: BC < 1/2.

Description: we store B * C in a variable and then calculate the probability of their multiplied value being less than 0.5 by tracking the number of elements that fit this criteria divided by the total number of elements in B and C (n=100000).

mult <- B*C

#Calculate the probability 
p_mult <- sum(mult < 0.5) / 100000
p_mult
## [1] 0.84814

(c)

Find the probability that: |B - C| < 1/2.

Description: we store the absolute value of B - C in a variable and then calculate the probability of their absolute subtracted value being less than 0.5 by tracking the number of elements that fit this criteria divided by the total number of elements in B and C (n=100000).

abs_sub <- abs(B-C)

#Calculate the probability 
p_abs_sub <- sum(abs_sub < 0.5) / 100000
p_abs_sub
## [1] 0.7507

(d)

Find the probability that: max{B,C} < 1/2.

Description: we store the maximum value between B and C in a variable and then calculate the probability of their maximum value being less than 0.5 by tracking the number of elements that fit this criteria divided by the total number of elements in B and C (n=100000).

max_val <- pmax(B,C)

#Calculate the probability 
p_max_val <- sum(max_val < 0.5) / 100000
p_max_val
## [1] 0.24885

(e)

Find the probability that: min{B,C} < 1/2.

Description: we store the maximum value between B and C in a variable and then calculate the probability of their maximum value being less than 0.5 by tracking the number of elements that fit this criteria divided by the total number of elements in B and C (n=100000).

min_val <- pmin(B,C)

#Calculate the probability 
p_min_val <- sum(min_val < 0.5) / 100000
p_min_val
## [1] 0.75038
#Using properties of probability also produces a rather close answer
p_min_val2 <- 1 - p_max_val
p_min_val2
## [1] 0.75115
((p_min_val2 - p_min_val) / p_min_val) * 100
## [1] 0.1026147

Note: the methods used to calculate p_min_val and p_min_val2 produce nearly identical probabilities :)

LS0tDQp0aXRsZTogIkRBVEEgNjA1IEhXIDUiDQphdXRob3I6ICJNYWdudXMgU2tvbmJlcmciDQpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiDQpvdXRwdXQ6DQogIG9wZW5pbnRybzo6bGFiX3JlcG9ydDogZGVmYXVsdA0KICBodG1sX2RvY3VtZW50Og0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNCmBgYHtyIGxvYWQtcGFja2FnZXMsIGluY2x1ZGU9RkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkob3BlbmludHJvKQ0KDQpgYGANCg0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQojIyMgQmFja2dyb3VuZA0KDQpDaG9vc2UgaW5kZXBlbmRlbnRseSB0d28gbnVtYmVycyBCIGFuZCBDIGF0IHJhbmRvbSBmcm9tIHRoZSBpbnRlcnZhbCBbMCwgMV0gd2l0aCB1bmlmb3JtIGRlbnNpdHkuIFByb3ZlIHRoYXQgQiBhbmQgQyBhcmUgcHJvcGVyIHByb2JhYmlsaXR5IGRpc3RyaWJ1dGlvbnMuIE5vdGUgdGhhdCB0aGUgcG9pbnQgKEIsQykgaXMgdGhlbiBjaG9zZW4gYXQgcmFuZG9tIGluIHRoZSB1bml0IHNxdWFyZS4gDQoNCipJJ2xsIHVzZSB0aGUgcnVuaWYoKSBmdW5jdGlvbiB0byBnZW5lcmF0ZSByYW5kb20gbnVtYmVycyBmcm9tIHRoZSBpbnRlcnZhbCBbMCwgMV0gYXMgYSB1bmlmb3JtIGRpc3RyaWJ1dGlvbi4qDQoNCmBgYHtyfQ0KI0luaXRpYWxpemUgQiBhbmQgQyB3aXRoIG4gPSAxMDAwMDAgKGZvciBncmVhdGVyIHByZWNpc2lvbikuDQpCIDwtIHJ1bmlmKDEwMDAwMCwgbWluID0gMCwgbWF4ID0gMSkNCkMgPC0gcnVuaWYoMTAwMDAwLCBtaW4gPSAwLCBtYXggPSAxKQ0KDQojVmlzdWFsaXplIEIgYW5kIEMgdmlhIGhpc3RvZ3JhbSB0byBvYnNlcnZlIHRoZWlyIGRpc3RyaWJ1dGlvbnMuDQpoaXN0KEIpDQpoaXN0KEMpDQpgYGANCg0KIyMjIChhKQ0KDQo8c3R5bGU+DQpkaXYuYmx1ZSB7IGJhY2tncm91bmQtY29sb3I6I2U2ZjBmZjsgYm9yZGVyLXJhZGl1czogNXB4OyBwYWRkaW5nOiA1cHg7fQ0KPC9zdHlsZT4NCjxkaXYgY2xhc3MgPSAiYmx1ZSI+DQoNCkZpbmQgdGhlIHByb2JhYmlsaXR5IHRoYXQ6ICoqQiArIEMgPCAxLzIuKioNCg0KPC9kaXY+IFxoZmlsbFxicmVhaw0KDQoqKkRlc2NyaXB0aW9uOiAqKiBzdG9yZSBCICsgQyAobGFyZ2UgbnVtZXJpYyB2YXJpYWJsZXMgb2YgMTAwMDAwIGVsZW1lbnRzLCBnZW5lcmF0ZWQgdmlhIHJhbmRvbSB1bmlmb3JtIGRpc3RyaWJ1dGlvbiBmdW5jdGlvbikgaW4gYSB2YXJpYWJsZSBhbmQgdGhlbiBjYWxjdWxhdGUgdGhlIHByb2JhYmlsaXR5IG9mIHRoZWlyICpjb21iaW5lZCogdmFsdWUgYmVpbmcgbGVzcyB0aGFuIDAuNSB2aWEgKDEpIHBub3JtIGFuZCAoMikgdHJhY2tpbmcgdGhlIG51bWJlciBvZiBlbGVtZW50cyB0aGF0IGZpdCB0aGlzIGNyaXRlcmlhIGRpdmlkZWQgYnkgdGhlIHRvdGFsIG51bWJlciBvZiBlbGVtZW50cyBpbiBCIGFuZCBDIChuPTEwMDAwMCkuDQoNCkJhc2VkIG9uIGEgY29tcGFyaXNvbiBiZXR3ZWVuIHRoZWlyIHZhbHVlcyBhbmQgZm9yIHNha2Ugb2YgY29uc2lzdGVuY3kgbW92aW5nIGZvcndhcmQsIEknbGwgY2hvb3NlIHRoZSBzZWNvbmQgbWV0aG9kIGZvciBjYWxjdWxhdGluZyB0aGUgcHJvYmFiaWxpdHkuIEl0J3Mgc3RyYWlnaHRmb3J3YXJkIGFuZCAqbGlrZWx5KiBxdWl0ZSBhY2N1cmF0ZSAoZ2l2ZW4gb3VyIG4gdmFsdWUgb2YgMTAwMDAwKS4gDQoNCldpdGggdGhhdCBzYWlkLCBJIHdhcyBqdXN0IGN1cmlvdXMgd2hhdCB0aGUgZGlmZmVyZW5jZSBtaWdodCBiZSBiZXR3ZWVuIHRoaXMgbWV0aG9kIGFuZCBwbm9ybSBhbmQgSSB3YW50ZWQgdG8gc2VlIGhvdyBjbG9zZSB0aGVpciBhc3NvY2lhdGVkIG91dHB1dHMgbWlnaHQgYmUuDQoNCmBgYHtyfQ0KcGx1cyA8LSBCICsgQw0KDQojQ2FsY3VsYXRlIHRoZSBwcm9iYWJpbGl0eSB1c2luZyBwbm9ybSgpDQpwbHVzX21lYW4gPC0gbWVhbihwbHVzKQ0KcGx1c19zZCA8LSBzZChwbHVzKQ0KcG5vcm0ocSA9IDAuNSwgbWVhbiA9IHBsdXNfbWVhbiwgc2QgPSBwbHVzX3NkKQ0KDQojQ2FsY3VsYXRlIHRoZSBwcm9iYWJpbGl0eSANCnBfcGx1cyA8LSBzdW0ocGx1cyA8IDAuNSkgLyAxMDAwMDANCnBfcGx1cw0KDQpgYGANCg0KIyMjIChiKSANCg0KPHN0eWxlPg0KZGl2LmJsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiNlNmYwZmY7IGJvcmRlci1yYWRpdXM6IDVweDsgcGFkZGluZzogNXB4O30NCjwvc3R5bGU+DQo8ZGl2IGNsYXNzID0gImJsdWUiPg0KDQpGaW5kIHRoZSBwcm9iYWJpbGl0eSB0aGF0OiAqKkJDIDwgMS8yLioqDQoNCjwvZGl2PiBcaGZpbGxcYnJlYWsNCg0KKipEZXNjcmlwdGlvbjogKiogd2Ugc3RvcmUgQiAqIEMgaW4gYSB2YXJpYWJsZSBhbmQgdGhlbiBjYWxjdWxhdGUgdGhlIHByb2JhYmlsaXR5IG9mIHRoZWlyICptdWx0aXBsaWVkKiB2YWx1ZSBiZWluZyBsZXNzIHRoYW4gMC41IGJ5IHRyYWNraW5nIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdCBmaXQgdGhpcyBjcml0ZXJpYSBkaXZpZGVkIGJ5IHRoZSB0b3RhbCBudW1iZXIgb2YgZWxlbWVudHMgaW4gQiBhbmQgQyAobj0xMDAwMDApLg0KDQpgYGB7cn0NCm11bHQgPC0gQipDDQoNCiNDYWxjdWxhdGUgdGhlIHByb2JhYmlsaXR5IA0KcF9tdWx0IDwtIHN1bShtdWx0IDwgMC41KSAvIDEwMDAwMA0KcF9tdWx0DQoNCmBgYA0KDQojIyMgKGMpIA0KDQo8c3R5bGU+DQpkaXYuYmx1ZSB7IGJhY2tncm91bmQtY29sb3I6I2U2ZjBmZjsgYm9yZGVyLXJhZGl1czogNXB4OyBwYWRkaW5nOiA1cHg7fQ0KPC9zdHlsZT4NCjxkaXYgY2xhc3MgPSAiYmx1ZSI+DQoNCkZpbmQgdGhlIHByb2JhYmlsaXR5IHRoYXQ6ICoqfEIgLSBDfCA8IDEvMi4qKg0KDQo8L2Rpdj4gXGhmaWxsXGJyZWFrDQoNCioqRGVzY3JpcHRpb246ICoqIHdlIHN0b3JlIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBCIC0gQyBpbiBhIHZhcmlhYmxlIGFuZCB0aGVuIGNhbGN1bGF0ZSB0aGUgcHJvYmFiaWxpdHkgb2YgdGhlaXIgKmFic29sdXRlIHN1YnRyYWN0ZWQqIHZhbHVlIGJlaW5nIGxlc3MgdGhhbiAwLjUgYnkgdHJhY2tpbmcgdGhlIG51bWJlciBvZiBlbGVtZW50cyB0aGF0IGZpdCB0aGlzIGNyaXRlcmlhIGRpdmlkZWQgYnkgdGhlIHRvdGFsIG51bWJlciBvZiBlbGVtZW50cyBpbiBCIGFuZCBDIChuPTEwMDAwMCkuDQoNCmBgYHtyfQ0KYWJzX3N1YiA8LSBhYnMoQi1DKQ0KDQojQ2FsY3VsYXRlIHRoZSBwcm9iYWJpbGl0eSANCnBfYWJzX3N1YiA8LSBzdW0oYWJzX3N1YiA8IDAuNSkgLyAxMDAwMDANCnBfYWJzX3N1Yg0KDQpgYGANCg0KIyMjIChkKQ0KDQo8c3R5bGU+DQpkaXYuYmx1ZSB7IGJhY2tncm91bmQtY29sb3I6I2U2ZjBmZjsgYm9yZGVyLXJhZGl1czogNXB4OyBwYWRkaW5nOiA1cHg7fQ0KPC9zdHlsZT4NCjxkaXYgY2xhc3MgPSAiYmx1ZSI+DQoNCkZpbmQgdGhlIHByb2JhYmlsaXR5IHRoYXQ6ICoqbWF4e0IsQ30gPCAxLzIuKioNCg0KPC9kaXY+IFxoZmlsbFxicmVhaw0KDQoqKkRlc2NyaXB0aW9uOiAqKiB3ZSBzdG9yZSB0aGUgbWF4aW11bSB2YWx1ZSBiZXR3ZWVuIEIgYW5kIEMgaW4gYSB2YXJpYWJsZSBhbmQgdGhlbiBjYWxjdWxhdGUgdGhlIHByb2JhYmlsaXR5IG9mIHRoZWlyICptYXhpbXVtKiB2YWx1ZSBiZWluZyBsZXNzIHRoYW4gMC41IGJ5IHRyYWNraW5nIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdCBmaXQgdGhpcyBjcml0ZXJpYSBkaXZpZGVkIGJ5IHRoZSB0b3RhbCBudW1iZXIgb2YgZWxlbWVudHMgaW4gQiBhbmQgQyAobj0xMDAwMDApLg0KDQpgYGB7cn0NCm1heF92YWwgPC0gcG1heChCLEMpDQoNCiNDYWxjdWxhdGUgdGhlIHByb2JhYmlsaXR5IA0KcF9tYXhfdmFsIDwtIHN1bShtYXhfdmFsIDwgMC41KSAvIDEwMDAwMA0KcF9tYXhfdmFsDQoNCmBgYA0KDQojIyMgKGUpIA0KDQo8c3R5bGU+DQpkaXYuYmx1ZSB7IGJhY2tncm91bmQtY29sb3I6I2U2ZjBmZjsgYm9yZGVyLXJhZGl1czogNXB4OyBwYWRkaW5nOiA1cHg7fQ0KPC9zdHlsZT4NCjxkaXYgY2xhc3MgPSAiYmx1ZSI+DQoNCkZpbmQgdGhlIHByb2JhYmlsaXR5IHRoYXQ6ICoqbWlue0IsQ30gPCAxLzIuKioNCg0KPC9kaXY+IFxoZmlsbFxicmVhaw0KDQoqKkRlc2NyaXB0aW9uOiAqKiB3ZSBzdG9yZSB0aGUgbWF4aW11bSB2YWx1ZSBiZXR3ZWVuIEIgYW5kIEMgaW4gYSB2YXJpYWJsZSBhbmQgdGhlbiBjYWxjdWxhdGUgdGhlIHByb2JhYmlsaXR5IG9mIHRoZWlyICptYXhpbXVtKiB2YWx1ZSBiZWluZyBsZXNzIHRoYW4gMC41IGJ5IHRyYWNraW5nIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdCBmaXQgdGhpcyBjcml0ZXJpYSBkaXZpZGVkIGJ5IHRoZSB0b3RhbCBudW1iZXIgb2YgZWxlbWVudHMgaW4gQiBhbmQgQyAobj0xMDAwMDApLg0KDQpgYGB7cn0NCm1pbl92YWwgPC0gcG1pbihCLEMpDQoNCiNDYWxjdWxhdGUgdGhlIHByb2JhYmlsaXR5IA0KcF9taW5fdmFsIDwtIHN1bShtaW5fdmFsIDwgMC41KSAvIDEwMDAwMA0KcF9taW5fdmFsDQoNCg0KI1VzaW5nIHByb3BlcnRpZXMgb2YgcHJvYmFiaWxpdHkgYWxzbyBwcm9kdWNlcyBhIHJhdGhlciBjbG9zZSBhbnN3ZXINCnBfbWluX3ZhbDIgPC0gMSAtIHBfbWF4X3ZhbA0KcF9taW5fdmFsMg0KDQooKHBfbWluX3ZhbDIgLSBwX21pbl92YWwpIC8gcF9taW5fdmFsKSAqIDEwMA0KYGBgDQoqTm90ZTogdGhlIG1ldGhvZHMgdXNlZCB0byBjYWxjdWxhdGUgcF9taW5fdmFsIGFuZCBwX21pbl92YWwyIHByb2R1Y2UgbmVhcmx5IGlkZW50aWNhbCBwcm9iYWJpbGl0aWVzIDopKg==