This blog has a really interesting assortment of articles on mathematics and programming. You can use the tags to your right to find topics that interest you, or you may want to have a look at

- the problems I wrote to get your brain working;
- some twitter proofs of mathematical facts.

You can also subscribe to the blog newsletter.

In this blog post I'll show you how you can write a full interpreter for the brainf*ck programming language in just 14 lines of Python. Be prepared, however, to see some unconventional Python code!

In this problem you have to devise a strategy to beat the computer in a "guess the polynomial" game.

Let's prove that if \(k\) is an integer, then \(\gcd(k, k+1) = 1\). That is, any two consecutive integers are coprime.

Let's prove that if you want to maximise \(ab\) with \(a + b\) equal to a constant value \(k\), then you want \(a = b = \frac{k}{2}\).

This simple problem is an example of a very interesting phenomenon: if you have a large enough "universe" to consider, even randomly picked parts exhibit structured properties.

Alice and Bob are going to be locked away separately and their faith depends on their guessing random coin tosses!

In this blog post we will go over some significant changes, from implementing APL's array model to introducing dyadic operators!

Let's prove that, if a set has size \(n\), then that same set has exactly \(2^n\) subsets.

The 2020 APL programming competition was tough! In this post I share a couple of thoughts and my solutions.

If there's one thing I like about Python is how I can use it to automate boring tasks for me. Today I used it to help me manage my own blog!

The 24 Game is a well-known maths game that is played with kids in school to help them master the four basic arithmetic operations. In this blog post we will study the game in depth.

Today we are visiting a specific instance of a well-known *basic* mathematics game, the 24 Game. The "24 Game" is usually played with younger students because it helps them develop skills related to the basic arithmetic operations.

Today is the day! Today is the day we take our APL programs and interpret them, so that something like `÷ 1 2 3 -⍨ 1.1 2.2 3.3`

can output `10 5 3.33333333`

.

Take out a piece of paper and a pencil, I am going to ask you to write some letters in your sheet of paper and then I am going to challenge you to fold the sheet of paper... with a twist!

\(n\) mathematicians with numbered party hats gather around in a circle... It is a matter of life or death!

Let's build a simple APL interpreter! APL is an array-oriented programming language I picked up recently. The ease with which I can write code related to mathematics, its strange built-ins (which look like `⍴`

, `⍨`

, `⍒`

or `⍣`

) and the fact that it is executed from right to left make it a fresh learning experience!

*Py-don'ts*
are anti-tips for writing good Python code. Sometimes learning what is good isn't enough. You have to compare it with what is bad as well!

560

In high school I had a colleague that had his birthday on the same day as I did. What a coincidence, right? Right..?

Is it true that every integer you can think of has a multiple written out only with \(0\)s and \(1\)s?

I find the problem in this post rather fun to think about because it is a problem about a game that can actually be played between two players.