## The Birthday Problem: Advanced

Exact probabilities for counting the chance of collisions with distinct objects, using the birthday problem as a working example.

Welcome to my website. Please have a look at any of my blog posts below.
## The Birthday Problem: Advanced

## Intuitive explanations for non-intuitive problems: the Birthday Problem

## Intuitive explanations for non-intuitive problems: the Monty Hall problem

## A private blockchain for files: part 2

## A private blockchain for files: part 1

## Thoughts on Julia after 2 weeks

## Random forest classifier from scratch in Julia

## LRU cache in C++

## Regex matching with nonograms and finite state machines

## Random forest classifier from scratch in Python

Exact probabilities for counting the chance of collisions with distinct objects, using the birthday problem as a working example.

My take on the famous birthday problem.

My take on the famous Monty Hall problem.

Technical details of the blockchain file system.

A program for storing files in your own personal blockchain (because you can).

Julia is a fast, flexible and robust language. Having used Julia for 2 weeks, and Python for 7 years, I can already say I prefer Julia. It is not as mature as Python, but I believe it has the potential...

A random forest classifier in 360 lines of Julia code. It is written from (almost) scratch.

Least Recently Used (LRU) caches are a simple way to improve performance for functions with many repeated calls. This post describes an implementation in C++.

I recently solved a particular kind of puzzle, nonograms, using finite state machines for regex matching. This is a very efficient way to do regex matching and in fact formed the basis of the first regex matchers. But finite state...

A random forest classifier in 270 lines of Python code. It is written from (almost) scratch. It is modelled on Scikit-Learnâ€™s RandomForestClassifier.