Links
Summary
This project contains two separate simulation projects completed for my probability class. The project implements a linear congruential random number generator to generate random values. These random values are then used to implement simulations of discrete and continous random variables. The random variables can be constructed by supplying the PDF for a discrete random variable, and the inverse CDF of the function for continous random variables. More information can be seen in the project report.
Along with the base functionality of random number generation, the project also simulates two different random processes. The first being a complex calling process, which is based off of multiple different random variables, and then a simulation of a Rayleigh random variable used in a demonstration of the central limit theorem.
Languages Used: Rust
Takeaways
This project significantly increased my understanding of probability theory. By having to implement everything (including the psuedo-random number generator) from scratch, you really know what is going on behind all of the mathematical formulas.
This project was also a great tool to help me better understand rust. I was able to make reusable modules for the random variable simulation that could be used across two projects.