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==