One of the
courses that we are required to take for the Masters of Science in Computer
Science program that I am undertaking is called Seminar. It is a single credit
course that needs to be taken three times. Each time the student, with the
supervision of his instructor, picks a research paper which the student then researches,
attempting to confirm or explore the results of the paper, and then presents the
paper to the class. In addition to the presentation is a written report on the
subject outlining what they have learned from the paper. As anybody reading
this blog already knows, I am developing an Atari 2600 emulator. The sound
emulation, to do properly, requires something called a Looped-Feedback Shift
Register (LFSR) which is similar to a poly-counter which is one of the earliest
ways of generating pseudo-random numbers. This had me looking into random
number generation in general. One of the papers I was very impressed with is “PCG:
A Family of Simple Fast Space-Efficient Statistically Good Algorithms for
Random Number Generation.” The link to this paper is http://www.pcg-random.org/paper.html
and while it is a very lengthy paper, it is not too technical and goes over a
lot of details about random number generation in general in addition to
presenting a new family of random number generators.
I am
planning on going over this paper in three separate articles. First, a look at
what a random number is and what makes a good random number generator. Next,
how the generators are tested as well as a less-robust testing method that
would work for the type of things I need to do. Finally, we will look at the
PCG algorithm.
I am going
to start this series of articles in four weeks with next fortnight being a week
“off” though I may post something if I have the time. The reason for the delay
is something known as self-plagiarism. To me this is a really strange concept to
me, but some Universities will actually consider using your own material in a
paper to be a form of plagiarism. To get around this possibility I am going to wait
until my report has been submitted and use
that report as the reference to the blog so it is important that the report be
submitted before I start posting the blog. This is probably me being way
over-paranoid but it is better to be safe than sorry.
In the
meantime, I urge you to get a copy of the paper and read it. See you in a
fortnight or two.