Definition per Probability Theory

In probability theory, the central limit theorem (CLT) establishes that, in some situations, when independent random variables are added, their properly normalized sum tends toward a normal distribution (informally a “bell curve”) even if the original variables themselves are not normally distributed. The theorem is a key concept in probability theory because it implies that probabilistic and statistical methods that work for normal distributions can be applicable to many problems involving other types of distributions.

Create Variables for Observations

  • sides are the number of sides on each die (i.e. 6, 12, 20, etc.)
  • num.dice are the number of dice to be rolled
  • rolls are the total observations

Comment out set.seed() to achieve randomness on subsequent runs

sides <- 6
num.dice <- 2
rolls <- 1000000
set.seed(1963)  

Create a Wrapper Function

The mult.dice function simulates each individual roll of the dice taking into account the number of dice thrown as well the values of each die (i.e. 6 sides, 12 sides, 20 sides)

mult.dice <- function(){
   dice <- sample(1:sides, size = num.dice, replace = TRUE)
   return(sum(dice))
 }

Create Variables for Iterations

  • freq.rolls vector holds each of the individual rolls
  • freq.rolls.tbl is used to hold the converted freq.rolls vector.
  • The table is needed for plotting the results.
freq.rolls <- replicate(n = rolls, expr = mult.dice())
freq.rolls.tbl <- table(factor(freq.rolls))

Graph the Results

The table is now plotted to demonstrate the “shape” of the distribution.

options(scipen = 10)
plot(freq.rolls.tbl, xlab = 'Number Rolled', ylab = 'Frequency', 
     type = 'h', col = 'red', lwd = 3,
     main = paste(rolls, 'Rolls of',  num.dice, 'Dice\n', sides, 'Sides Each Die'))

Create a Frequency Table

Print the freq.rolls.tbl to look at the means of the dice rolls.

print(freq.rolls.tbl)

     2      3      4      5      6      7      8      9     10 
 27854  55783  83185 111843 139080 165843 138811 111160  83171 
    11     12 
 55354  27916 
LS0tDQp0aXRsZTogIkNlbnRyYWwgTGltaXQgVGhlb3JlbSINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0aGVtZTogdW5pdGVkDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6IDMNCiAgICB0b2NfZmxvYXQ6DQogICAgICBjb2xsYXBzZWQ6IGZhbHNlDQogICAgZGZfcHJpbnQ6IGthYmxlDQotLS0NCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQojIyBEZWZpbml0aW9uIHBlciBQcm9iYWJpbGl0eSBUaGVvcnkNCg0KKioqSW4gcHJvYmFiaWxpdHkgdGhlb3J5LCB0aGUgY2VudHJhbCBsaW1pdCB0aGVvcmVtIChDTFQpIGVzdGFibGlzaGVzIHRoYXQsIGluIHNvbWUgc2l0dWF0aW9ucywgd2hlbiBpbmRlcGVuZGVudCByYW5kb20gdmFyaWFibGVzIGFyZSBhZGRlZCwgdGhlaXIgcHJvcGVybHkgbm9ybWFsaXplZCBzdW0gdGVuZHMgdG93YXJkIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbiAoaW5mb3JtYWxseSBhIOKAnGJlbGwgY3VydmXigJ0pIGV2ZW4gaWYgdGhlIG9yaWdpbmFsIHZhcmlhYmxlcyB0aGVtc2VsdmVzIGFyZSBub3Qgbm9ybWFsbHkgZGlzdHJpYnV0ZWQuIFRoZSB0aGVvcmVtIGlzIGEga2V5IGNvbmNlcHQgaW4gcHJvYmFiaWxpdHkgdGhlb3J5IGJlY2F1c2UgaXQgaW1wbGllcyB0aGF0IHByb2JhYmlsaXN0aWMgYW5kIHN0YXRpc3RpY2FsIG1ldGhvZHMgdGhhdCB3b3JrIGZvciBub3JtYWwgZGlzdHJpYnV0aW9ucyBjYW4gYmUgYXBwbGljYWJsZSB0byBtYW55IHByb2JsZW1zIGludm9sdmluZyBvdGhlciB0eXBlcyBvZiBkaXN0cmlidXRpb25zLioqKg0KDQojIyMjIyBbV2lraXBlZGlhXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9DZW50cmFsX2xpbWl0X3RoZW9yZW0pDQoNCiMjIyBDcmVhdGUgVmFyaWFibGVzIGZvciBPYnNlcnZhdGlvbnMNCi0gc2lkZXMgYXJlIHRoZSBudW1iZXIgb2Ygc2lkZXMgb24gZWFjaCBkaWUgKGkuZS4gNiwgMTIsIDIwLCBldGMuKQ0KLSBudW0uZGljZSBhcmUgdGhlIG51bWJlciBvZiBkaWNlIHRvIGJlIHJvbGxlZA0KLSByb2xscyBhcmUgdGhlIHRvdGFsIG9ic2VydmF0aW9ucw0KDQoqKipDb21tZW50IG91dCBzZXQuc2VlZCgpIHRvIGFjaGlldmUgcmFuZG9tbmVzcyBvbiBzdWJzZXF1ZW50IHJ1bnMqKioNCg0KYGBge3J9DQpzaWRlcyA8LSA2DQpudW0uZGljZSA8LSAyDQpyb2xscyA8LSAxMDAwMDAwDQpzZXQuc2VlZCgxOTYzKSAgDQpgYGANCg0KIyMjIENyZWF0ZSBhIFdyYXBwZXIgRnVuY3Rpb24NClRoZSBtdWx0LmRpY2UgZnVuY3Rpb24gc2ltdWxhdGVzIGVhY2ggaW5kaXZpZHVhbCByb2xsIG9mIHRoZSBkaWNlIHRha2luZyBpbnRvIGFjY291bnQgdGhlIG51bWJlciBvZiBkaWNlIHRocm93biBhcyB3ZWxsIHRoZSB2YWx1ZXMgb2YgZWFjaCBkaWUgKGkuZS4gNiBzaWRlcywgMTIgc2lkZXMsIDIwIHNpZGVzKQ0KYGBge3J9DQptdWx0LmRpY2UgPC0gZnVuY3Rpb24oKXsNCiAgIGRpY2UgPC0gc2FtcGxlKDE6c2lkZXMsIHNpemUgPSBudW0uZGljZSwgcmVwbGFjZSA9IFRSVUUpDQogICByZXR1cm4oc3VtKGRpY2UpKQ0KIH0NCmBgYA0KIyMjIENyZWF0ZSBWYXJpYWJsZXMgZm9yIEl0ZXJhdGlvbnMNCi0gZnJlcS5yb2xscyB2ZWN0b3IgaG9sZHMgZWFjaCBvZiB0aGUgaW5kaXZpZHVhbCByb2xscw0KLSBmcmVxLnJvbGxzLnRibCBpcyB1c2VkIHRvIGhvbGQgdGhlIGNvbnZlcnRlZCBmcmVxLnJvbGxzIHZlY3Rvci4NCi0gVGhlIHRhYmxlIGlzIG5lZWRlZCBmb3IgcGxvdHRpbmcgdGhlIHJlc3VsdHMuDQoNCmBgYHtyfQ0KZnJlcS5yb2xscyA8LSByZXBsaWNhdGUobiA9IHJvbGxzLCBleHByID0gbXVsdC5kaWNlKCkpDQpmcmVxLnJvbGxzLnRibCA8LSB0YWJsZShmYWN0b3IoZnJlcS5yb2xscykpDQpgYGANCiMjIyBHcmFwaCB0aGUgUmVzdWx0cw0KVGhlIHRhYmxlIGlzIG5vdyBwbG90dGVkIHRvIGRlbW9uc3RyYXRlIHRoZSDigJxzaGFwZeKAnSBvZiB0aGUgZGlzdHJpYnV0aW9uLg0KYGBge3J9DQpvcHRpb25zKHNjaXBlbiA9IDEwKQ0KcGxvdChmcmVxLnJvbGxzLnRibCwgeGxhYiA9ICdOdW1iZXIgUm9sbGVkJywgeWxhYiA9ICdGcmVxdWVuY3knLCANCiAgICAgdHlwZSA9ICdoJywgY29sID0gJ3JlZCcsIGx3ZCA9IDMsDQogICAgIG1haW4gPSBwYXN0ZShyb2xscywgJ1JvbGxzIG9mJywgIG51bS5kaWNlLCAnRGljZVxuJywgc2lkZXMsICdTaWRlcyBFYWNoIERpZScpKQ0KYGBgDQojIyMgQ3JlYXRlIGEgRnJlcXVlbmN5IFRhYmxlDQpQcmludCB0aGUgZnJlcS5yb2xscy50YmwgdG8gbG9vayBhdCB0aGUgbWVhbnMgb2YgdGhlIGRpY2Ugcm9sbHMuDQpgYGB7cn0NCnByaW50KGZyZXEucm9sbHMudGJsKQ0KYGBgDQoNCg==