The program takes in a set of random numbers and compares the expected amount of times the first number in the set would be expected to appear if the program were truly random. Methods from the numpy python package were used to calculate the mean variance from randomness over the length of the set, and matplotlib's pyplot package was used to graph this variance over time. Presumably, a good random number generator would produce a set of numbers which remind as close to zero as possible at any given time (having a set of a single,repeated number would, of course, be cheating). A random number generator may, also, appear more or less random depending on the size of the set;especially, given large differences in set size, and, to address this, the program graphs the deviation over the length of the set as well as check if a certain function can approximately describe this.
As I developed the program, I found trying to check for the "descending sine function" (sin(xy)/xy) challenging, and, though I have observed something similar to the function in data from numpy's own random number generator; the algorithm I have devised to test for the sine model rejects more broadly than I would. This is certainly an area for further research as well as adding other regression models.
Nevertheless, I am glad of the various levels of data analysis I looked through and was able to include in this project. Though debugging, I learned the finer points of numpy arrays and methods (apparently numpy.max is not the same as numpy.maximum), and I was able to test out my own ideas on pseudo-random numbers.
Log in or sign up for Devpost to join the conversation.