Comparison of PRNGs to QRNGs using Monte Carlo Pi estimation
Thumbnail
Available
Extranal files
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Description
This collection contains the source code and processed data used to investigate effects of the random number source on the outcomes of simple Monte Carlo simulations. Investigation was carried out using Quantum Dice's quantum random number generator (QRNG) and various sequential and parallel pseudo-random number generators (PRNG). PRNGs include: "minimum standard" linear congruential generator (minstd_rand0), Mersenne Twister generator (mt19937), multiplicative recursive generator (Tina's random number generator library mrg5s), "yet another random number generator" (Tina's random number generator library yarn5s) in parallel and sequential executions.
The C++ code is used to generate pi estimates through sampling of [0,1]x[0,1] or using Buffon's needle experiment utilising various RNGs. Additional code is used to generate and store point distributions on [0,1]x[0,1] to asess their homogeneity and uniformity as means to explain observations made when analysing distributions of the pi data. Raw data was collected using Snakemake workflows provided in the dataset. Accumulation of raw data into provided CSV files was done using an accompanying jupyter notebook.
Distributions of the estimated pi-values were analysed using a simple sign-test, t-test, distribution fitting and likelihood-based hypothesis testing incorporated in the SciPaperVisualisation notebook. Additionally correlations within the pi-datasets and effects of rounding errors were analysed and the results are included in the same notebook. Further the homogeneity of the point-distribution on the unit square obtianed with QRNGs and PRNGs was analysed to explain the differences observed in the pi-data.